Index: Source/core/css/SelectorChecker.cpp |
diff --git a/Source/core/css/SelectorChecker.cpp b/Source/core/css/SelectorChecker.cpp |
index b835c5fe160cdd831d939313a4cf20a4e432aca4..a27b1a8758c2baf4a1d344f53edc8e4aba87e7d0 100644 |
--- a/Source/core/css/SelectorChecker.cpp |
+++ b/Source/core/css/SelectorChecker.cpp |
@@ -262,7 +262,7 @@ SelectorChecker::Match SelectorChecker::matchSelector(const SelectorCheckingCont |
if (!context.element->isInShadowTree() || !context.previousElement) |
return SelectorFailsCompletely; |
} else { |
- if ((!context.elementStyle && m_mode == ResolvingStyle) || m_mode == QueryingRules) |
+ if ((!context.inRightmostCompound && m_mode == ResolvingStyle) || m_mode == QueryingRules) |
return SelectorFailsLocally; |
PseudoId pseudoId = CSSSelector::pseudoId(context.selector->pseudoType()); |
@@ -323,7 +323,7 @@ SelectorChecker::Match SelectorChecker::matchForSubSelector(const SelectorChecki |
// to follow the pseudo elements. |
nextContext.hasScrollbarPseudo = dynamicPseudo != NOPSEUDO && (context.scrollbar || dynamicPseudo == SCROLLBAR_CORNER || dynamicPseudo == RESIZER); |
nextContext.hasSelectionPseudo = dynamicPseudo == SELECTION; |
- if ((context.elementStyle || m_mode == CollectingCSSRules || m_mode == CollectingStyleRules || m_mode == QueryingRules) && dynamicPseudo != NOPSEUDO |
+ if ((context.inRightmostCompound || m_mode == CollectingCSSRules || m_mode == CollectingStyleRules || m_mode == QueryingRules) && dynamicPseudo != NOPSEUDO |
&& !nextContext.hasSelectionPseudo |
&& !(nextContext.hasScrollbarPseudo && nextContext.selector->match() == CSSSelector::PseudoClass)) |
return SelectorFailsCompletely; |
@@ -374,7 +374,7 @@ SelectorChecker::Match SelectorChecker::matchForRelation(const SelectorCheckingC |
return SelectorFailsCompletely; |
} |
nextContext.isSubSelector = false; |
- nextContext.elementStyle = 0; |
+ nextContext.inRightmostCompound = false; |
if (nextContext.selector->isShadowPseudoElement()) |
return matchForPseudoShadow(nextContext, context.element->containingShadowRoot(), result); |
@@ -393,7 +393,7 @@ SelectorChecker::Match SelectorChecker::matchForRelation(const SelectorCheckingC |
return matchForShadowDistributed(nextContext, *context.element, result); |
nextContext.isSubSelector = false; |
- nextContext.elementStyle = 0; |
+ nextContext.inRightmostCompound = false; |
if (nextContext.selector->isShadowPseudoElement()) |
return matchForPseudoShadow(nextContext, context.element->parentNode(), result); |
@@ -416,7 +416,7 @@ SelectorChecker::Match SelectorChecker::matchForRelation(const SelectorCheckingC |
if (!nextContext.element) |
return SelectorFailsAllSiblings; |
nextContext.isSubSelector = false; |
- nextContext.elementStyle = 0; |
+ nextContext.inRightmostCompound = false; |
return matchSelector(nextContext, result); |
case CSSSelector::IndirectAdjacent: |
@@ -430,7 +430,7 @@ SelectorChecker::Match SelectorChecker::matchForRelation(const SelectorCheckingC |
} |
nextContext.element = ElementTraversal::previousSibling(*context.element); |
nextContext.isSubSelector = false; |
- nextContext.elementStyle = 0; |
+ nextContext.inRightmostCompound = false; |
for (; nextContext.element; nextContext.element = ElementTraversal::previousSibling(*nextContext.element)) { |
Match match = matchSelector(nextContext, result); |
if (match == SelectorMatches || match == SelectorFailsAllSiblings || match == SelectorFailsCompletely) |
@@ -449,7 +449,7 @@ SelectorChecker::Match SelectorChecker::matchForRelation(const SelectorCheckingC |
return SelectorFailsCompletely; |
nextContext.element = shadowHost; |
nextContext.isSubSelector = false; |
- nextContext.elementStyle = 0; |
+ nextContext.inRightmostCompound = false; |
return matchSelector(nextContext, result); |
} |
@@ -464,7 +464,7 @@ SelectorChecker::Match SelectorChecker::matchForRelation(const SelectorCheckingC |
} |
nextContext.isSubSelector = false; |
- nextContext.elementStyle = 0; |
+ nextContext.inRightmostCompound = false; |
for (nextContext.element = parentOrShadowHostButDisallowEscapingUserAgentShadowTree(*context.element); nextContext.element; nextContext.element = parentOrShadowHostButDisallowEscapingUserAgentShadowTree(*nextContext.element)) { |
Match match = matchSelector(nextContext, result); |
if (match == SelectorMatches || match == SelectorFailsCompletely) |
@@ -489,7 +489,7 @@ SelectorChecker::Match SelectorChecker::matchForShadowDistributed(const Selector |
collectDestinationInsertionPoints(element, insertionPoints); |
SelectorCheckingContext nextContext(context); |
nextContext.isSubSelector = false; |
- nextContext.elementStyle = 0; |
+ nextContext.inRightmostCompound = false; |
for (const auto& insertionPoint : insertionPoints) { |
nextContext.element = insertionPoint; |
// TODO(esprehn): Why does SharingRules have a special case? |
@@ -730,7 +730,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context, u |
} |
if (m_mode == ResolvingStyle) { |
element.setStyleAffectedByEmpty(); |
- if (context.elementStyle) |
+ if (context.inRightmostCompound) |
context.elementStyle->setEmptyState(result); |
else if (element.computedStyle() && (element.document().styleEngine().usesSiblingRules() || element.computedStyle()->unique())) |
element.mutableComputedStyle()->setEmptyState(result); |
@@ -860,7 +860,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context, u |
return element.isLink() && context.visitedMatchType == VisitedMatchEnabled; |
case CSSSelector::PseudoDrag: |
if (m_mode == ResolvingStyle) { |
- if (context.elementStyle) |
+ if (context.inRightmostCompound) |
context.elementStyle->setAffectedByDrag(); |
else |
element.setChildrenOrSiblingsAffectedByDrag(); |
@@ -868,7 +868,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context, u |
return element.layoutObject() && element.layoutObject()->isDragging(); |
case CSSSelector::PseudoFocus: |
if (m_mode == ResolvingStyle) { |
- if (context.elementStyle) |
+ if (context.inRightmostCompound) |
context.elementStyle->setAffectedByFocus(); |
else |
element.setChildrenOrSiblingsAffectedByFocus(); |
@@ -876,7 +876,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context, u |
return matchesFocusPseudoClass(element); |
case CSSSelector::PseudoHover: |
if (m_mode == ResolvingStyle) { |
- if (context.elementStyle) |
+ if (context.inRightmostCompound) |
context.elementStyle->setAffectedByHover(); |
else |
element.setChildrenOrSiblingsAffectedByHover(); |
@@ -888,7 +888,7 @@ bool SelectorChecker::checkPseudoClass(const SelectorCheckingContext& context, u |
return element.hovered(); |
case CSSSelector::PseudoActive: |
if (m_mode == ResolvingStyle) { |
- if (context.elementStyle) |
+ if (context.inRightmostCompound) |
context.elementStyle->setAffectedByActive(); |
else |
element.setChildrenOrSiblingsAffectedByActive(); |
@@ -1099,7 +1099,7 @@ bool SelectorChecker::checkPseudoHost(const SelectorCheckingContext& context, un |
if (selector.pseudoType() == CSSSelector::PseudoHost) |
break; |
- hostContext.elementStyle = 0; |
+ hostContext.inRightmostCompound = false; |
nextElement = ComposedTreeTraversal::parentElement(*nextElement); |
} while (nextElement); |
} |