Chromium Code Reviews| 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 52d3fdb35f245d0efa6996c191c4f893c12b6914..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.document().containsMultipleElementsWithId(selector->value())) { |
|
hayato
2016/04/14 07:29:58
Using document() here looks a bug to me.
rune
2016/04/14 08:48:01
Yes. Perhaps fix that in a separate CL.
Reported
|
| - 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; |