| Index: third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
| diff --git a/third_party/WebKit/Source/core/css/SelectorChecker.cpp b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
| index 532dfd82e3911facd01cfd03ee3f0c5717e3415c..cd7b522d97bcf4f40563d7ff99a70615038d84a1 100644
|
| --- a/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
| +++ b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
| @@ -745,7 +745,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context,
|
| parent->setChildrenAffectedByLastChildRules();
|
| element.setAffectedByLastChildRules();
|
| }
|
| - if (!parent->isFinishedParsingChildren())
|
| + if (!m_isQuerySelector && !parent->isFinishedParsingChildren())
|
| return false;
|
| return isLastChild(element);
|
| }
|
| @@ -754,7 +754,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context,
|
| if (ContainerNode* parent = element.parentElementOrDocumentFragment()) {
|
| if (m_mode == ResolvingStyle)
|
| parent->setChildrenAffectedByBackwardPositionalRules();
|
| - if (!parent->isFinishedParsingChildren())
|
| + if (!m_isQuerySelector && !parent->isFinishedParsingChildren())
|
| return false;
|
| return isLastOfType(element, element.tagQName());
|
| }
|
| @@ -767,7 +767,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context,
|
| element.setAffectedByFirstChildRules();
|
| element.setAffectedByLastChildRules();
|
| }
|
| - if (!parent->isFinishedParsingChildren())
|
| + if (!m_isQuerySelector && !parent->isFinishedParsingChildren())
|
| return false;
|
| return isFirstChild(element) && isLastChild(element);
|
| }
|
| @@ -779,7 +779,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context,
|
| parent->setChildrenAffectedByForwardPositionalRules();
|
| parent->setChildrenAffectedByBackwardPositionalRules();
|
| }
|
| - if (!parent->isFinishedParsingChildren())
|
| + if (!m_isQuerySelector && !parent->isFinishedParsingChildren())
|
| return false;
|
| return isFirstOfType(element, element.tagQName()) &&
|
| isLastOfType(element, element.tagQName());
|
| @@ -807,7 +807,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context,
|
| if (ContainerNode* parent = element.parentElementOrDocumentFragment()) {
|
| if (m_mode == ResolvingStyle)
|
| parent->setChildrenAffectedByBackwardPositionalRules();
|
| - if (!parent->isFinishedParsingChildren())
|
| + if (!m_isQuerySelector && !parent->isFinishedParsingChildren())
|
| return false;
|
| return selector.matchNth(NthIndexCache::nthLastChildIndex(element));
|
| }
|
| @@ -816,7 +816,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context,
|
| if (ContainerNode* parent = element.parentElementOrDocumentFragment()) {
|
| if (m_mode == ResolvingStyle)
|
| parent->setChildrenAffectedByBackwardPositionalRules();
|
| - if (!parent->isFinishedParsingChildren())
|
| + if (!m_isQuerySelector && !parent->isFinishedParsingChildren())
|
| return false;
|
| return selector.matchNth(NthIndexCache::nthLastOfTypeIndex(element));
|
| }
|
|
|