diff --git a/components/style/matching.rs b/components/style/matching.rs index 211f04acbab..1c158505e97 100644 --- a/components/style/matching.rs +++ b/components/style/matching.rs @@ -655,6 +655,7 @@ pub trait MatchMethods : TNode { } }; + let damage; if self.is_text_node() { // Text nodes get a copy of the parent style. This ensures // that during fragment construction any non-inherited @@ -663,9 +664,11 @@ pub trait MatchMethods : TNode { let mut data_ref = self.mutate_data().unwrap(); let mut data = &mut *data_ref; let cloned_parent_style = parent_style.unwrap().clone(); + damage = Self::ConcreteRestyleDamage::compute(data.style.as_ref(), + &*cloned_parent_style); data.style = Some(cloned_parent_style); } else { - let damage = { + damage = { let mut data_ref = self.mutate_data().unwrap(); let mut data = &mut *data_ref; let (mut damage, final_style) = self.cascade_node_pseudo_element( @@ -706,13 +709,15 @@ pub trait MatchMethods : TNode { // This method needs to borrow the data as mutable, so make sure data_ref goes out of // scope first. - self.set_restyle_damage(damage); - self.set_can_be_fragmented(parent.map_or(false, |p| { p.can_be_fragmented() || parent_style.as_ref().unwrap().is_multicol() })); } + + // This method needs to borrow the data as mutable, so make sure data_ref goes out of + // scope first. + self.set_restyle_damage(damage); } } diff --git a/tests/wpt/metadata-css/css21_dev/html4/run-in-display-none-between-003.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/run-in-display-none-between-003.htm.ini deleted file mode 100644 index ec1d723ee59..00000000000 --- a/tests/wpt/metadata-css/css21_dev/html4/run-in-display-none-between-003.htm.ini +++ /dev/null @@ -1,3 +0,0 @@ -[run-in-display-none-between-003.htm] - type: reftest - expected: FAIL diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 7ea42099e65..b214e9e3e77 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -4560,6 +4560,18 @@ "url": "/_mozilla/css/text_align_start_end.html" } ], + "css/text_damage_a.html": [ + { + "path": "css/text_damage_a.html", + "references": [ + [ + "/_mozilla/css/text_damage_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/text_damage_a.html" + } + ], "css/text_decoration_cached.html": [ { "path": "css/text_decoration_cached.html", @@ -10760,6 +10772,18 @@ "url": "/_mozilla/css/text_align_start_end.html" } ], + "css/text_damage_a.html": [ + { + "path": "css/text_damage_a.html", + "references": [ + [ + "/_mozilla/css/text_damage_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/text_damage_a.html" + } + ], "css/text_decoration_cached.html": [ { "path": "css/text_decoration_cached.html", diff --git a/tests/wpt/mozilla/tests/css/text_damage_a.html b/tests/wpt/mozilla/tests/css/text_damage_a.html new file mode 100644 index 00000000000..428e804c119 --- /dev/null +++ b/tests/wpt/mozilla/tests/css/text_damage_a.html @@ -0,0 +1,14 @@ + + + +