style: Add a low-priority selector list for pseudo-classes that have global rules

This avoids trying to match those global rules for most elements that
can't match them anyways.

Differential Revision: https://phabricator.services.mozilla.com/D147640
This commit is contained in:
Emilio Cobos Álvarez 2022-06-09 12:16:26 +00:00 committed by Martin Robinson
parent 1162204bad
commit c283b32991
2 changed files with 86 additions and 15 deletions

View file

@ -407,24 +407,24 @@ where
}
});
let state_changes = self.state_changes;
if !state_changes.is_empty() {
self.collect_state_dependencies(&map.state_affecting_selectors, state_changes)
}
self.collect_state_dependencies(&map.state_affecting_selectors)
}
fn collect_state_dependencies(
&mut self,
map: &'selectors SelectorMap<StateDependency>,
state_changes: ElementState,
) {
if self.state_changes.is_empty() {
return;
}
map.lookup_with_additional(
self.lookup_element,
self.matching_context.quirks_mode(),
self.removed_id,
self.classes_removed,
self.state_changes,
|dependency| {
if !dependency.state.intersects(state_changes) {
if !dependency.state.intersects(self.state_changes) {
return true;
}
self.scan_dependency(&dependency.dep);