style: Check custom properties for changes when computing damage. draft
authorCameron McCormack <cam@mcc.id.au>
Thu, 13 Jul 2017 16:52:58 +0800
changeset 608215 47ba06b370d484fc08a9bbb356c608a5b01967d1
parent 607967 30ea2905130e85f9e1d8d56fa3097901eec6514b
child 608216 728cad53680f7c5ead3fb23510226969e3201a9d
push id68205
push userbmo:cam@mcc.id.au
push dateThu, 13 Jul 2017 08:57:29 +0000
milestone56.0a1
style: Check custom properties for changes when computing damage. MozReview-Commit-ID: HjI68mLPIhm
servo/components/style/servo/restyle_damage.rs
--- a/servo/components/style/servo/restyle_damage.rs
+++ b/servo/components/style/servo/restyle_damage.rs
@@ -59,17 +59,22 @@ impl HeapSizeOf for ServoRestyleDamage {
 
 impl ServoRestyleDamage {
     /// Compute the `StyleDifference` (including the appropriate restyle damage)
     /// for a given style change between `old` and `new`.
     pub fn compute_style_difference(old: &ServoComputedValues,
                                     new: &ServoComputedValues)
                                     -> StyleDifference {
         let damage = compute_damage(old, new);
-        let change = if damage.is_empty() { StyleChange::Unchanged } else { StyleChange::Changed };
+        let change =
+            if damage.is_empty() && old.get_custom_properties() == new.get_custom_properties() {
+                StyleChange::Unchanged
+            } else {
+                StyleChange::Changed
+            };
         StyleDifference::new(damage, change)
     }
 
     /// Returns a bitmask that represents a flow that needs to be rebuilt and
     /// reflowed.
     ///
     /// FIXME(bholley): Do we ever actually need this? Shouldn't
     /// RECONSTRUCT_FLOW imply everything else?