Bug 1361938 - Don't process visited rules during animation-only restyle. r?jryans
MozReview-Commit-ID: GEKzOanu0VD
--- a/servo/components/style/matching.rs
+++ b/servo/components/style/matching.rs
@@ -1247,18 +1247,20 @@ pub trait MatchMethods : TElement {
fn replace_rules(&self,
replacements: RestyleReplacements,
context: &StyleContext<Self>,
data: &mut ElementData)
-> bool {
let mut result = false;
result |= self.replace_rules_internal(replacements, context, data,
CascadeVisitedMode::Unvisited);
- result |= self.replace_rules_internal(replacements, context, data,
- CascadeVisitedMode::Visited);
+ if !context.shared.traversal_flags.for_animation_only() {
+ result |= self.replace_rules_internal(replacements, context, data,
+ CascadeVisitedMode::Visited);
+ }
result
}
/// Updates the rule nodes without re-running selector matching, using just
/// the rule tree, for a specific visited mode.
///
/// Returns true if an !important rule was replaced.
fn replace_rules_internal(&self,