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