diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index b5b6fb73bd2..eca4ba619e7 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -2171,12 +2171,14 @@ fn static_assert() { <%call expr="impl_coord_copy('vertical_align', 'mVerticalAlign')"> + % for kind in ["before", "after"]: // Temp fix for Bugzilla bug 24000. // Map 'auto' and 'avoid' to false, and 'always', 'left', and 'right' to true. // "A conforming user agent may interpret the values 'left' and 'right' // as 'always'." - CSS2.1, section 13.3.1 - pub fn set_page_break_before(&mut self, v: longhands::page_break_before::computed_value::T) { - use computed_values::page_break_before::T; + pub fn set_page_break_${kind}(&mut self, v: longhands::page_break_${kind}::computed_value::T) { + use computed_values::page_break_${kind}::T; + let result = match v { T::auto => false, T::always => true, @@ -2184,26 +2186,22 @@ fn static_assert() { T::left => true, T::right => true }; - self.gecko.mBreakBefore = result; + self.gecko.mBreak${kind.title()} = result; } - ${impl_simple_copy('page_break_before', 'mBreakBefore')} + ${impl_simple_copy('page_break_' + kind, 'mBreak' + kind.title())} // Temp fix for Bugzilla bug 24000. - // See set_page_break_before for detail. - pub fn set_page_break_after(&mut self, v: longhands::page_break_after::computed_value::T) { - use computed_values::page_break_after::T; - let result = match v { - T::auto => false, - T::always => true, - T::avoid => false, - T::left => true, - T::right => true - }; - self.gecko.mBreakAfter = result; - } + // See set_page_break_before/after for detail. + pub fn clone_page_break_${kind}(&self) -> longhands::page_break_${kind}::computed_value::T { + use computed_values::page_break_${kind}::T; - ${impl_simple_copy('page_break_after', 'mBreakAfter')} + match self.gecko.mBreak${kind.title()} { + true => T::always, + false => T::auto, + } + } + % endfor pub fn set_scroll_snap_points_x(&mut self, v: longhands::scroll_snap_points_x::computed_value::T) { match v.0 { diff --git a/components/style/properties/longhand/box.mako.rs b/components/style/properties/longhand/box.mako.rs index a2fbd2d97df..15009d0b86b 100644 --- a/components/style/properties/longhand/box.mako.rs +++ b/components/style/properties/longhand/box.mako.rs @@ -201,7 +201,8 @@ ${helpers.single_keyword("position", "static absolute relative fixed", // https://drafts.csswg.org/css-logical-props/#float-clear extra_specified="inline-start inline-end" needs_conversion="True" - animation_value_type="none" + gecko_inexhaustive="True" + animation_value_type="discrete" gecko_enum_prefix="StyleClear" gecko_ffi_name="mBreakType" spec="https://www.w3.org/TR/CSS2/visuren.html#flow-control"> @@ -2034,12 +2035,12 @@ ${helpers.single_keyword("page-break-after", "auto always avoid left right", products="gecko", spec="https://drafts.csswg.org/css2/page.html#propdef-page-break-after", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.single_keyword("page-break-before", "auto always avoid left right", products="gecko", spec="https://drafts.csswg.org/css2/page.html#propdef-page-break-before", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.single_keyword("page-break-inside", "auto avoid", products="gecko", @@ -2087,7 +2088,8 @@ ${helpers.single_keyword("transform-box", gecko_enum_prefix="StyleGeometryBox", products="gecko", spec="https://drafts.csswg.org/css-transforms/#transform-box", - animation_value_type="none")} + gecko_inexhaustive="True", + animation_value_type="discrete")} // `auto` keyword is not supported in gecko yet. ${helpers.single_keyword("transform-style", @@ -2357,7 +2359,8 @@ ${helpers.single_keyword("-moz-orient", gecko_ffi_name="mOrient", gecko_enum_prefix="StyleOrient", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-orient)", - animation_value_type="none")} + gecko_inexhaustive="True", + animation_value_type="discrete")} <%helpers:longhand name="will-change" products="gecko" animation_value_type="none" spec="https://drafts.csswg.org/css-will-change/#will-change">