diff --git a/components/style/properties/declaration_block.rs b/components/style/properties/declaration_block.rs index 2cb5cba4874..f10da7a7cb4 100644 --- a/components/style/properties/declaration_block.rs +++ b/components/style/properties/declaration_block.rs @@ -288,10 +288,15 @@ impl PropertyDeclarationBlock { } let important_count = &mut self.important_count; let mut removed_at_least_one = false; + let longhands = &mut self.longhands; self.declarations.retain(|&(ref declaration, importance)| { - let remove = declaration.id().is_or_is_longhand_of(property); + let id = declaration.id(); + let remove = id.is_or_is_longhand_of(property); if remove { removed_at_least_one = true; + if let PropertyDeclarationId::Longhand(id) = id { + longhands.remove(id) + } if importance.important() { *important_count -= 1 } @@ -299,9 +304,8 @@ impl PropertyDeclarationBlock { !remove }); - if let PropertyId::Longhand(id) = *property { + if let PropertyId::Longhand(_) = *property { debug_assert!(removed_at_least_one); - self.longhands.remove(id); } removed_at_least_one } diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 38d378f9e93..d554b574926 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -11024,6 +11024,12 @@ {} ] ], + "css/bug_1345483.html": [ + [ + "/_mozilla/css/bug_1345483.html", + {} + ] + ], "css/empty-keyframes.html": [ [ "/_mozilla/css/empty-keyframes.html", @@ -20613,6 +20619,10 @@ "2ebf9c8f963a2f3971a3c1b64b6b01825eacdedc", "support" ], + "css/bug_1345483.html": [ + "41b55af9d5c95910b1af74c0fbffb24e20bbe869", + "testharness" + ], "css/button_css_width.html": [ "bb88fcb6c5856a1f5199599938e1b9c84aa8ea77", "reftest" diff --git a/tests/wpt/mozilla/tests/css/bug_1345483.html b/tests/wpt/mozilla/tests/css/bug_1345483.html new file mode 100644 index 00000000000..87d0d357c63 --- /dev/null +++ b/tests/wpt/mozilla/tests/css/bug_1345483.html @@ -0,0 +1,15 @@ + + +