|
@@ -2699,10 +2699,11 @@ NonnullOwnPtr<StyleComputer::RuleCache> StyleComputer::make_rule_cache_for_casca
|
|
selector.specificity(),
|
|
selector.specificity(),
|
|
cascade_origin,
|
|
cascade_origin,
|
|
false,
|
|
false,
|
|
- false,
|
|
|
|
SelectorEngine::can_use_fast_matches(selector),
|
|
SelectorEngine::can_use_fast_matches(selector),
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ bool contains_root_pseudo_class = false;
|
|
|
|
+
|
|
for (auto const& simple_selector : selector.compound_selectors().last().simple_selectors) {
|
|
for (auto const& simple_selector : selector.compound_selectors().last().simple_selectors) {
|
|
if (!matching_rule.contains_pseudo_element) {
|
|
if (!matching_rule.contains_pseudo_element) {
|
|
if (simple_selector.type == CSS::Selector::SimpleSelector::Type::PseudoElement) {
|
|
if (simple_selector.type == CSS::Selector::SimpleSelector::Type::PseudoElement) {
|
|
@@ -2710,10 +2711,10 @@ NonnullOwnPtr<StyleComputer::RuleCache> StyleComputer::make_rule_cache_for_casca
|
|
++num_pseudo_element_rules;
|
|
++num_pseudo_element_rules;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if (!matching_rule.contains_root_pseudo_class) {
|
|
|
|
|
|
+ if (!contains_root_pseudo_class) {
|
|
if (simple_selector.type == CSS::Selector::SimpleSelector::Type::PseudoClass
|
|
if (simple_selector.type == CSS::Selector::SimpleSelector::Type::PseudoClass
|
|
&& simple_selector.pseudo_class().type == CSS::PseudoClass::Root) {
|
|
&& simple_selector.pseudo_class().type == CSS::PseudoClass::Root) {
|
|
- matching_rule.contains_root_pseudo_class = true;
|
|
|
|
|
|
+ contains_root_pseudo_class = true;
|
|
++num_root_rules;
|
|
++num_root_rules;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -2752,7 +2753,7 @@ NonnullOwnPtr<StyleComputer::RuleCache> StyleComputer::make_rule_cache_for_casca
|
|
if (!added_to_bucket) {
|
|
if (!added_to_bucket) {
|
|
if (matching_rule.contains_pseudo_element) {
|
|
if (matching_rule.contains_pseudo_element) {
|
|
rule_cache->pseudo_element_rules.append(move(matching_rule));
|
|
rule_cache->pseudo_element_rules.append(move(matching_rule));
|
|
- } else if (matching_rule.contains_root_pseudo_class) {
|
|
|
|
|
|
+ } else if (contains_root_pseudo_class) {
|
|
rule_cache->root_rules.append(move(matching_rule));
|
|
rule_cache->root_rules.append(move(matching_rule));
|
|
} else {
|
|
} else {
|
|
for (auto const& simple_selector : selector.compound_selectors().last().simple_selectors) {
|
|
for (auto const& simple_selector : selector.compound_selectors().last().simple_selectors) {
|