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; |