Issue #2135 - Don't discard event state mask when matching ::slotted() or :host arguments

This should fix issues with selectors like :host(:hover) that continue to be matched although the cursor is no longer hovering over those elements.
This commit is contained in:
FranklinDM 2023-03-24 19:34:55 +08:00 • committed by roytam1
commit f169940742

View file

@ -1997,11 +1997,9 @@ static bool SelectorMatches(Element* aElement,
return false; return false;
} }
NodeMatchContext nodeContext(EventStates(),
aNodeMatchContext.mIsRelevantLink);
if (!SelectorListMatches(aElement, if (!SelectorListMatches(aElement,
pseudoClass, pseudoClass,
nodeContext, aNodeMatchContext,
aTreeMatchContext)) { aTreeMatchContext)) {
return false; return false;
} }
@ -2049,7 +2047,7 @@ static bool SelectorMatches(Element* aElement,
// Match if any selector in the argument list matches. // Match if any selector in the argument list matches.
// FIXME: What this effectively does is bypass the "featureless" // FIXME: What this effectively does is bypass the "featureless"
// selector check under SelectorMatches. // selector check under SelectorMatches.
NodeMatchContext nodeContext(EventStates(), NodeMatchContext nodeContext(aNodeMatchContext.mStateMask,
aNodeMatchContext.mIsRelevantLink); aNodeMatchContext.mIsRelevantLink);
if (!SelectorListMatches(aElement, if (!SelectorListMatches(aElement,
pseudoClass, pseudoClass,