style: Make <use> shadow trees lookup keyframe rules in the containing tree.

The same thing we do for rule matching.

Differential Revision: https://phabricator.services.mozilla.com/D14548
This commit is contained in:
Emilio Cobos Álvarez 2018-12-17 13:14:19 +00:00
parent 31838b1e6f
commit b59ec2e699
2 changed files with 53 additions and 38 deletions

View file

@ -17,7 +17,7 @@ use crate::media_queries::Device;
use crate::properties::{self, CascadeMode, ComputedValues};
use crate::properties::{AnimationRules, PropertyDeclarationBlock};
use crate::rule_cache::{RuleCache, RuleCacheConditions};
use crate::rule_collector::RuleCollector;
use crate::rule_collector::{RuleCollector, containing_shadow_ignoring_svg_use};
use crate::rule_tree::{CascadeLevel, RuleTree, ShadowCascadeOrder, StrongRuleNode, StyleSource};
use crate::selector_map::{PrecomputedHashMap, PrecomputedHashSet, SelectorMap, SelectorMapEntry};
use crate::selector_parser::{PerPseudoElementMap, PseudoElement, SelectorImpl, SnapshotMap};
@ -1187,7 +1187,9 @@ impl Stylist {
}
}
if let Some(shadow) = element.containing_shadow() {
// Use the same rules to look for the containing host as we do for rule
// collection.
if let Some(shadow) = containing_shadow_ignoring_svg_use(element) {
if let Some(data) = shadow.style_data() {
try_find_in!(data);
}