diff --git a/components/style/properties/longhand/box.mako.rs b/components/style/properties/longhand/box.mako.rs index 851beb6267c..95f868af743 100644 --- a/components/style/properties/longhand/box.mako.rs +++ b/components/style/properties/longhand/box.mako.rs @@ -2096,8 +2096,10 @@ ${helpers.single_keyword("transform-style", const LAYOUT = 0x02, const STYLE = 0x04, const PAINT = 0x08, - const STRICT = SIZE.bits | LAYOUT.bits | STYLE.bits | PAINT.bits, - const CONTENT = LAYOUT.bits | STYLE.bits | PAINT.bits, + const STRICT = 0x10, + const STRICT_BITS = SIZE.bits | LAYOUT.bits | STYLE.bits | PAINT.bits, + const CONTENT = 0x20, + const CONTENT_BITS = LAYOUT.bits | STYLE.bits | PAINT.bits, } } @@ -2148,11 +2150,11 @@ ${helpers.single_keyword("transform-style", return Ok(result) } if input.try(|input| input.expect_ident_matching("strict")).is_ok() { - result.insert(STRICT); + result.insert(STRICT | STRICT_BITS); return Ok(result) } if input.try(|input| input.expect_ident_matching("content")).is_ok() { - result.insert(CONTENT); + result.insert(CONTENT | CONTENT_BITS); return Ok(result) } diff --git a/tests/unit/style/parsing/containment.rs b/tests/unit/style/parsing/containment.rs index d4cffe9f1a5..2ef6a08659e 100644 --- a/tests/unit/style/parsing/containment.rs +++ b/tests/unit/style/parsing/containment.rs @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use parsing::parse; +use style_traits::ToCss; #[test] fn contain_longhand_should_parse_correctly() { @@ -13,11 +14,20 @@ fn contain_longhand_should_parse_correctly() { assert_eq!(none, SpecifiedValue::empty()); let strict = parse_longhand!(contain, "strict"); - assert_eq!(strict, contain::STRICT); + assert_eq!(strict, contain::STRICT | contain::STRICT_BITS); + + let strict = parse_longhand!(contain, "content"); + assert_eq!(strict, contain::CONTENT | contain::CONTENT_BITS); let style_paint = parse_longhand!(contain, "style paint"); assert_eq!(style_paint, contain::STYLE | contain::PAINT); + assert_roundtrip_with_context!(contain::parse, "strict"); + assert_roundtrip_with_context!(contain::parse, "size layout style paint"); + + assert_roundtrip_with_context!(contain::parse, "content"); + assert_roundtrip_with_context!(contain::parse, "layout style paint"); + // Assert that the `2px` is not consumed, which would trigger parsing failure in real use assert_parser_exhausted!(contain::parse, "layout 2px", false); }