| Index: third_party/WebKit/Source/core/dom/SelectorQuery.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/SelectorQuery.cpp b/third_party/WebKit/Source/core/dom/SelectorQuery.cpp
|
| index 76151d5b7a6e76c76c574bdb5273c2663968327e..0335588ad655fb49ccb8cbd411e0d799d90ce268 100644
|
| --- a/third_party/WebKit/Source/core/dom/SelectorQuery.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/SelectorQuery.cpp
|
| @@ -261,8 +261,8 @@ void SelectorDataList::findTraverseRootsAndExecute(ContainerNode& rootNode, type
|
| bool startFromParent = false;
|
|
|
| for (const CSSSelector* selector = m_selectors[0]; selector; selector = selector->tagHistory()) {
|
| - if (selector->match() == CSSSelector::Id && !rootNode.treeScope().containsMultipleElementsWithId(selector->value())) {
|
| - Element* element = rootNode.treeScope().getElementById(selector->value());
|
| + if (selector->match() == CSSSelector::Id && rootNode.isInTreeScope() && !rootNode.rootTreeScope().containsMultipleElementsWithId(selector->value())) {
|
| + Element* element = rootNode.rootTreeScope().getElementById(selector->value());
|
| ContainerNode* adjustedNode = &rootNode;
|
| if (element && (isTreeScopeRoot(rootNode) || element->isDescendantOf(&rootNode)))
|
| adjustedNode = element;
|
|
|