diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs index 1cfa678cb3f..974f7bc6d52 100644 --- a/components/script/dom/cssstyledeclaration.rs +++ b/components/script/dom/cssstyledeclaration.rs @@ -2,6 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use cssparser::CssStringWriter; use dom_struct::dom_struct; use html5ever::local_name; use servo_arc::Arc; @@ -14,7 +15,7 @@ use style::properties::{ use style::selector_parser::PseudoElement; use style::shared_lock::Locked; use style::stylesheets::{CssRuleType, Origin}; -use style_traits::ParsingMode; +use style_traits::{CssWriter, ParsingMode, ToCss}; use crate::dom::bindings::codegen::Bindings::CSSStyleDeclarationBinding::CSSStyleDeclarationMethods; use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; @@ -431,13 +432,11 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration { fn IndexedGetter(&self, index: u32) -> Option { self.owner.with_block(|pdb| { let declaration = pdb.declarations().get(index as usize)?; - let important = pdb.declarations_importance().get(index as usize)?; - let mut css = String::new(); - declaration.to_css(&mut css).unwrap(); - if important { - css += " !important"; - } - Some(DOMString::from(css)) + let mut dest = String::new(); + let mut writer = CssStringWriter::new(&mut dest); + let mut writer = CssWriter::new(&mut writer); + declaration.id().to_css(&mut writer).ok()?; + Some(DOMString::from(dest)) }) } diff --git a/tests/wpt/meta-legacy-layout/css/css-variables/variable-invalidation.html.ini b/tests/wpt/meta-legacy-layout/css/css-variables/variable-invalidation.html.ini deleted file mode 100644 index 7daf62425b1..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-variables/variable-invalidation.html.ini +++ /dev/null @@ -1,13 +0,0 @@ -[variable-invalidation.html] - [css rule test] - expected: FAIL - - [css rule test important] - expected: FAIL - - [inline style test] - expected: FAIL - - [inline style test important] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/cssom/css-style-declaration-modifications.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/css-style-declaration-modifications.html.ini deleted file mode 100644 index 1fdb93b2c88..00000000000 --- a/tests/wpt/meta-legacy-layout/css/cssom/css-style-declaration-modifications.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[css-style-declaration-modifications.html] - bug: https://github.com/servo/servo/issues/21579 - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/cssom/cssom-getPropertyValue-common-checks.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/cssom-getPropertyValue-common-checks.html.ini index 9d2a86495cf..a0380baf2b7 100644 --- a/tests/wpt/meta-legacy-layout/css/cssom/cssom-getPropertyValue-common-checks.html.ini +++ b/tests/wpt/meta-legacy-layout/css/cssom/cssom-getPropertyValue-common-checks.html.ini @@ -1,18 +1,3 @@ [cssom-getPropertyValue-common-checks.html] [All properties (except 'all') can serialize their initial value (computed)] expected: FAIL - - [All shorthands can serialize their longhands set to 'initial'] - expected: FAIL - - [All aliases can serialize target property set to 'initial'] - expected: FAIL - - [Can't serialize shorthand when longhands are set to different css-wide keywords] - expected: FAIL - - [Can't serialize shorthand when longhands have different priority] - expected: FAIL - - [Can't serialize shorthand set to 'initial' when some longhand is missing] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-custom-properties.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-custom-properties.html.ini deleted file mode 100644 index 595199d7d35..00000000000 --- a/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-custom-properties.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[cssstyledeclaration-custom-properties.html] - [Custom properties are included in computed style] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-setter-declarations.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-setter-declarations.html.ini deleted file mode 100644 index 375449fbab5..00000000000 --- a/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-setter-declarations.html.ini +++ /dev/null @@ -1,13 +0,0 @@ -[cssstyledeclaration-setter-declarations.html] - [setProperty with longhand should update only the declaration being set] - expected: FAIL - - [property setter should update only the declaration being set] - expected: FAIL - - [setProperty with shorthand should update only the declarations being set] - expected: FAIL - - [longhand property setter should update only the decoarations being set] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-setter-logical.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-setter-logical.html.ini deleted file mode 100644 index 766bba44bd6..00000000000 --- a/tests/wpt/meta-legacy-layout/css/cssom/cssstyledeclaration-setter-logical.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[cssstyledeclaration-setter-logical.html] - [newly set declaration should be after all declarations in the same logical property group but have different logical kind] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/cssom/inline-style-001.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/inline-style-001.html.ini deleted file mode 100644 index f4ee0e32a0d..00000000000 --- a/tests/wpt/meta-legacy-layout/css/cssom/inline-style-001.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[inline-style-001.html] - bug: https://github.com/servo/servo/issues/21579 - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/cssom/serialize-all-longhands.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/serialize-all-longhands.html.ini index 3c3b25495c2..e91cd17f217 100644 --- a/tests/wpt/meta-legacy-layout/css/cssom/serialize-all-longhands.html.ini +++ b/tests/wpt/meta-legacy-layout/css/cssom/serialize-all-longhands.html.ini @@ -1,6 +1,3 @@ [serialize-all-longhands.html] - [Specified style] - expected: FAIL - [Computed style] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/cssom/variable-names.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/variable-names.html.ini index fda55097480..c26e46f5522 100644 --- a/tests/wpt/meta-legacy-layout/css/cssom/variable-names.html.ini +++ b/tests/wpt/meta-legacy-layout/css/cssom/variable-names.html.ini @@ -1,19 +1,6 @@ [variable-names.html] - [custom property '--a'] - expected: FAIL - [custom property '--a;b'] expected: FAIL - [custom property '---'] - expected: FAIL - [custom property '--\\'] expected: FAIL - - [custom property '--ab'] - expected: FAIL - - [custom property '--0'] - expected: FAIL - diff --git a/tests/wpt/meta/css/css-variables/variable-invalidation.html.ini b/tests/wpt/meta/css/css-variables/variable-invalidation.html.ini deleted file mode 100644 index 7daf62425b1..00000000000 --- a/tests/wpt/meta/css/css-variables/variable-invalidation.html.ini +++ /dev/null @@ -1,13 +0,0 @@ -[variable-invalidation.html] - [css rule test] - expected: FAIL - - [css rule test important] - expected: FAIL - - [inline style test] - expected: FAIL - - [inline style test important] - expected: FAIL - diff --git a/tests/wpt/meta/css/cssom/css-style-declaration-modifications.html.ini b/tests/wpt/meta/css/cssom/css-style-declaration-modifications.html.ini deleted file mode 100644 index feaafb3d7b2..00000000000 --- a/tests/wpt/meta/css/cssom/css-style-declaration-modifications.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[css-style-declaration-modifications.html] - expected: TIMEOUT diff --git a/tests/wpt/meta/css/cssom/cssom-getPropertyValue-common-checks.html.ini b/tests/wpt/meta/css/cssom/cssom-getPropertyValue-common-checks.html.ini index 9d2a86495cf..50c8b190095 100644 --- a/tests/wpt/meta/css/cssom/cssom-getPropertyValue-common-checks.html.ini +++ b/tests/wpt/meta/css/cssom/cssom-getPropertyValue-common-checks.html.ini @@ -2,17 +2,5 @@ [All properties (except 'all') can serialize their initial value (computed)] expected: FAIL - [All shorthands can serialize their longhands set to 'initial'] - expected: FAIL - - [All aliases can serialize target property set to 'initial'] - expected: FAIL - - [Can't serialize shorthand when longhands are set to different css-wide keywords] - expected: FAIL - - [Can't serialize shorthand when longhands have different priority] - expected: FAIL - - [Can't serialize shorthand set to 'initial' when some longhand is missing] + [All shorthands (except 'all') can serialize their longhands set to their initial value] expected: FAIL diff --git a/tests/wpt/meta/css/cssom/cssstyledeclaration-custom-properties.html.ini b/tests/wpt/meta/css/cssom/cssstyledeclaration-custom-properties.html.ini deleted file mode 100644 index 595199d7d35..00000000000 --- a/tests/wpt/meta/css/cssom/cssstyledeclaration-custom-properties.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[cssstyledeclaration-custom-properties.html] - [Custom properties are included in computed style] - expected: FAIL - diff --git a/tests/wpt/meta/css/cssom/cssstyledeclaration-setter-declarations.html.ini b/tests/wpt/meta/css/cssom/cssstyledeclaration-setter-declarations.html.ini deleted file mode 100644 index d4fd1f1a2c0..00000000000 --- a/tests/wpt/meta/css/cssom/cssstyledeclaration-setter-declarations.html.ini +++ /dev/null @@ -1,13 +0,0 @@ -[cssstyledeclaration-setter-declarations.html] - [setProperty with longhand should update only the declaration being set] - expected: FAIL - - [longhand property setter should update only the decoarations being set] - expected: FAIL - - [property setter should update only the declaration being set] - expected: FAIL - - [setProperty with shorthand should update only the declarations being set] - expected: FAIL - diff --git a/tests/wpt/meta/css/cssom/cssstyledeclaration-setter-logical.html.ini b/tests/wpt/meta/css/cssom/cssstyledeclaration-setter-logical.html.ini deleted file mode 100644 index 766bba44bd6..00000000000 --- a/tests/wpt/meta/css/cssom/cssstyledeclaration-setter-logical.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[cssstyledeclaration-setter-logical.html] - [newly set declaration should be after all declarations in the same logical property group but have different logical kind] - expected: FAIL - diff --git a/tests/wpt/meta/css/cssom/inline-style-001.html.ini b/tests/wpt/meta/css/cssom/inline-style-001.html.ini deleted file mode 100644 index c0b1d2475d7..00000000000 --- a/tests/wpt/meta/css/cssom/inline-style-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[inline-style-001.html] - expected: TIMEOUT diff --git a/tests/wpt/meta/css/cssom/serialize-all-longhands.html.ini b/tests/wpt/meta/css/cssom/serialize-all-longhands.html.ini deleted file mode 100644 index 3c3b25495c2..00000000000 --- a/tests/wpt/meta/css/cssom/serialize-all-longhands.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[serialize-all-longhands.html] - [Specified style] - expected: FAIL - - [Computed style] - expected: FAIL diff --git a/tests/wpt/meta/css/cssom/variable-names.html.ini b/tests/wpt/meta/css/cssom/variable-names.html.ini index 2b00fa4e7c4..c26e46f5522 100644 --- a/tests/wpt/meta/css/cssom/variable-names.html.ini +++ b/tests/wpt/meta/css/cssom/variable-names.html.ini @@ -1,19 +1,6 @@ [variable-names.html] - [custom property '--a'] - expected: FAIL - - [custom property '---'] - expected: FAIL - - [custom property '--ab'] - expected: FAIL - - [custom property '--0'] - expected: FAIL - [custom property '--a;b'] expected: FAIL [custom property '--\\'] expected: FAIL -