mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
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:
parent
1162204bad
commit
c283b32991
2 changed files with 86 additions and 15 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue