| Index: Source/core/html/HTMLNameCollection.cpp
|
| diff --git a/Source/core/html/HTMLNameCollection.cpp b/Source/core/html/HTMLNameCollection.cpp
|
| index 1dc5242539e21b70e6ac34e5767da4c6ec5db638..9941f554c5191b8492263245955535ad84a8c25f 100644
|
| --- a/Source/core/html/HTMLNameCollection.cpp
|
| +++ b/Source/core/html/HTMLNameCollection.cpp
|
| @@ -27,6 +27,8 @@
|
| #include "core/dom/Element.h"
|
| #include "core/dom/ElementTraversal.h"
|
| #include "core/dom/NodeRareData.h"
|
| +#include "core/html/HTMLEmbedElement.h"
|
| +#include "core/html/HTMLObjectElement.h"
|
|
|
| namespace WebCore {
|
|
|
| @@ -78,10 +80,13 @@ Element* HTMLNameCollection::virtualItemAfter(unsigned& offsetInArray, Element*
|
| // find images, forms, applets, embeds, objects and iframes by name,
|
| // applets and object by id, and images by id but only if they have
|
| // a name attribute (this very strange rule matches IE)
|
| - if (current->hasTagName(formTag) || current->hasTagName(embedTag) || current->hasTagName(iframeTag)) {
|
| + if (current->hasTagName(formTag)
|
| + || current->hasTagName(iframeTag)
|
| + || (current->hasTagName(embedTag) && toHTMLEmbedElement(current)->isExposed())) {
|
| if (current->getNameAttribute() == m_name)
|
| return current;
|
| - } else if (current->hasTagName(appletTag) || current->hasTagName(objectTag)) {
|
| + } else if (current->hasTagName(appletTag)
|
| + || (current->hasTagName(objectTag) && toHTMLObjectElement(current)->isExposed())) {
|
| if (current->getNameAttribute() == m_name || current->getIdAttribute() == m_name)
|
| return current;
|
| } else if (current->hasTagName(imgTag)) {
|
|
|