diff options
20 files changed, 210 insertions, 217 deletions
diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index aeacf2bbefc..eca4ba619e7 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -1072,7 +1072,7 @@ fn static_assert() { <% skip_position_longhands = " ".join(x.ident for x in SIDES + GRID_LINES) %> <%self:impl_trait style_struct_name="Position" - skip_longhands="${skip_position_longhands} z-index box-sizing order align-content + skip_longhands="${skip_position_longhands} z-index order align-content justify-content align-self justify-self align-items justify-items grid-auto-rows grid-auto-columns grid-auto-flow grid-template-areas grid-template-rows grid-template-columns"> @@ -1159,17 +1159,6 @@ fn static_assert() { .expect("mJustifyItems contains valid flags")) } - pub fn set_box_sizing(&mut self, v: longhands::box_sizing::computed_value::T) { - use computed_values::box_sizing::T; - use gecko_bindings::structs::StyleBoxSizing; - // TODO: guess what to do with box-sizing: padding-box - self.gecko.mBoxSizing = match v { - T::content_box => StyleBoxSizing::Content, - T::border_box => StyleBoxSizing::Border - } - } - ${impl_simple_copy('box_sizing', 'mBoxSizing')} - pub fn set_order(&mut self, v: longhands::order::computed_value::T) { self.gecko.mOrder = v; } @@ -2182,12 +2171,14 @@ fn static_assert() { <%call expr="impl_coord_copy('vertical_align', 'mVerticalAlign')"></%call> + % 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, @@ -2195,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 { @@ -2825,48 +2812,125 @@ fn static_assert() { <%def name="simple_image_array_property(name, shorthand, field_name)"> <% image_layers_field = "mImage" if shorthand == "background" else "mMask" + copy_simple_image_array_property(name, shorthand, image_layers_field, field_name) %> + + pub fn set_${shorthand}_${name}<I>(&mut self, v: I) + where I: IntoIterator<Item=longhands::${shorthand}_${name}::computed_value::single_value::T>, + I::IntoIter: ExactSizeIterator + { + use gecko_bindings::structs::nsStyleImageLayers_LayerType as LayerType; + let v = v.into_iter(); + + unsafe { + Gecko_EnsureImageLayersLength(&mut self.gecko.${image_layers_field}, v.len(), + LayerType::${shorthand.title()}); + } + + self.gecko.${image_layers_field}.${field_name}Count = v.len() as u32; + for (servo, geckolayer) in v.zip(self.gecko.${image_layers_field}.mLayers.iter_mut()) { + geckolayer.${field_name} = { + ${caller.body()} + }; + } + } +</%def> + +<%def name="copy_simple_image_array_property(name, shorthand, layers_field_name, field_name)"> pub fn copy_${shorthand}_${name}_from(&mut self, other: &Self) { use gecko_bindings::structs::nsStyleImageLayers_LayerType as LayerType; - let count = other.gecko.${image_layers_field}.${field_name}Count; + let count = other.gecko.${layers_field_name}.${field_name}Count; unsafe { - Gecko_EnsureImageLayersLength(&mut self.gecko.${image_layers_field}, + Gecko_EnsureImageLayersLength(&mut self.gecko.${layers_field_name}, count as usize, LayerType::${shorthand.title()}); } - for (layer, other) in self.gecko.${image_layers_field}.mLayers.iter_mut() - .zip(other.gecko.${image_layers_field}.mLayers.iter()) + for (layer, other) in self.gecko.${layers_field_name}.mLayers.iter_mut() + .zip(other.gecko.${layers_field_name}.mLayers.iter()) .take(count as usize) { layer.${field_name} = other.${field_name}; } - self.gecko.${image_layers_field}.${field_name}Count = count; + self.gecko.${layers_field_name}.${field_name}Count = count; } +</%def> +<%def name="impl_simple_image_array_property(name, shorthand, layer_field_name, field_name, struct_name)"> + <% + ident = "%s_%s" % (shorthand, name) + style_struct = next(x for x in data.style_structs if x.name == struct_name) + longhand = next(x for x in style_struct.longhands if x.ident == ident) + keyword = longhand.keyword + %> - pub fn set_${shorthand}_${name}<I>(&mut self, v: I) - where I: IntoIterator<Item=longhands::${shorthand}_${name}::computed_value::single_value::T>, + <% copy_simple_image_array_property(name, shorthand, layer_field_name, field_name) %> + + pub fn set_${ident}<I>(&mut self, v: I) + where I: IntoIterator<Item=longhands::${ident}::computed_value::single_value::T>, I::IntoIter: ExactSizeIterator { + use properties::longhands::${ident}::single_value::computed_value::T as Keyword; use gecko_bindings::structs::nsStyleImageLayers_LayerType as LayerType; + let v = v.into_iter(); unsafe { - Gecko_EnsureImageLayersLength(&mut self.gecko.${image_layers_field}, v.len(), + Gecko_EnsureImageLayersLength(&mut self.gecko.${layer_field_name}, v.len(), LayerType::${shorthand.title()}); } - self.gecko.${image_layers_field}.${field_name}Count = v.len() as u32; - for (servo, geckolayer) in v.zip(self.gecko.${image_layers_field}.mLayers.iter_mut()) { + self.gecko.${layer_field_name}.${field_name}Count = v.len() as u32; + for (servo, geckolayer) in v.zip(self.gecko.${layer_field_name}.mLayers.iter_mut()) { geckolayer.${field_name} = { - ${caller.body()} + match servo { + % for value in keyword.values_for("gecko"): + Keyword::${to_rust_ident(value)} => + structs::${keyword.gecko_constant(value)} ${keyword.maybe_cast('u8')}, + % endfor + } }; } } + + pub fn clone_${ident}(&self) -> longhands::${ident}::computed_value::T + { + use properties::longhands::${ident}::single_value::computed_value::T as Keyword; + + % if keyword.needs_cast(): + % for value in keyword.values_for('gecko'): + const ${keyword.casted_constant_name(value, "u8")} : u8 = + structs::${keyword.gecko_constant(value)} as u8; + % endfor + % endif + + longhands::${ident}::computed_value::T ( + self.gecko.${layer_field_name}.mLayers.iter() + .take(self.gecko.${layer_field_name}.${field_name}Count as usize) + .map(|ref layer| { + match layer.${field_name} { + % for value in longhand.keyword.values_for("gecko"): + % if keyword.needs_cast(): + ${keyword.casted_constant_name(value, "u8")} + % else: + structs::${keyword.gecko_constant(value)} + % endif + => Keyword::${to_rust_ident(value)}, + % endfor + x => panic!("Found unexpected value in style struct for ${ident} property: {:?}", x), + } + }).collect() + ) + } </%def> + <%def name="impl_common_image_layer_properties(shorthand)"> <% - image_layers_field = "mImage" if shorthand == "background" else "mMask" + if shorthand == "background": + image_layers_field = "mImage" + struct_name = "Background" + else: + image_layers_field = "mMask" + struct_name = "SVG" %> <%self:simple_image_array_property name="repeat" shorthand="${shorthand}" field_name="mRepeat"> @@ -2894,40 +2958,8 @@ fn static_assert() { } </%self:simple_image_array_property> - <%self:simple_image_array_property name="clip" shorthand="${shorthand}" field_name="mClip"> - use gecko_bindings::structs::StyleGeometryBox; - use properties::longhands::${shorthand}_clip::single_value::computed_value::T; - - match servo { - T::border_box => StyleGeometryBox::BorderBox, - T::padding_box => StyleGeometryBox::PaddingBox, - T::content_box => StyleGeometryBox::ContentBox, - % if shorthand == "mask": - T::fill_box => StyleGeometryBox::FillBox, - T::stroke_box => StyleGeometryBox::StrokeBox, - T::view_box => StyleGeometryBox::ViewBox, - T::no_clip => StyleGeometryBox::NoClip, - % elif shorthand == "background": - T::text => StyleGeometryBox::Text, - % endif - } - </%self:simple_image_array_property> - - <%self:simple_image_array_property name="origin" shorthand="${shorthand}" field_name="mOrigin"> - use gecko_bindings::structs::StyleGeometryBox; - use properties::longhands::${shorthand}_origin::single_value::computed_value::T; - - match servo { - T::border_box => StyleGeometryBox::BorderBox, - T::padding_box => StyleGeometryBox::PaddingBox, - T::content_box => StyleGeometryBox::ContentBox, - % if shorthand == "mask": - T::fill_box => StyleGeometryBox::FillBox, - T::stroke_box => StyleGeometryBox::StrokeBox, - T::view_box => StyleGeometryBox::ViewBox, - % endif - } - </%self:simple_image_array_property> + <% impl_simple_image_array_property("clip", shorthand, image_layers_field, "mClip", struct_name) %> + <% impl_simple_image_array_property("origin", shorthand, image_layers_field, "mOrigin", struct_name) %> % for orientation in ["x", "y"]: pub fn copy_${shorthand}_position_${orientation}_from(&mut self, other: &Self) { @@ -3148,38 +3180,8 @@ fn static_assert() { skip_additionals="*"> <% impl_common_image_layer_properties("background") %> - - <%self:simple_image_array_property name="attachment" shorthand="background" field_name="mAttachment"> - use properties::longhands::background_attachment::single_value::computed_value::T; - match servo { - T::scroll => structs::NS_STYLE_IMAGELAYER_ATTACHMENT_SCROLL as u8, - T::fixed => structs::NS_STYLE_IMAGELAYER_ATTACHMENT_FIXED as u8, - T::local => structs::NS_STYLE_IMAGELAYER_ATTACHMENT_LOCAL as u8, - } - </%self:simple_image_array_property> - - <%self:simple_image_array_property name="blend_mode" shorthand="background" field_name="mBlendMode"> - use properties::longhands::background_blend_mode::single_value::computed_value::T; - - match servo { - T::normal => structs::NS_STYLE_BLEND_NORMAL as u8, - T::multiply => structs::NS_STYLE_BLEND_MULTIPLY as u8, - T::screen => structs::NS_STYLE_BLEND_SCREEN as u8, - T::overlay => structs::NS_STYLE_BLEND_OVERLAY as u8, - T::darken => structs::NS_STYLE_BLEND_DARKEN as u8, - T::lighten => structs::NS_STYLE_BLEND_LIGHTEN as u8, - T::color_dodge => structs::NS_STYLE_BLEND_COLOR_DODGE as u8, - T::color_burn => structs::NS_STYLE_BLEND_COLOR_BURN as u8, - T::hard_light => structs::NS_STYLE_BLEND_HARD_LIGHT as u8, - T::soft_light => structs::NS_STYLE_BLEND_SOFT_LIGHT as u8, - T::difference => structs::NS_STYLE_BLEND_DIFFERENCE as u8, - T::exclusion => structs::NS_STYLE_BLEND_EXCLUSION as u8, - T::hue => structs::NS_STYLE_BLEND_HUE as u8, - T::saturation => structs::NS_STYLE_BLEND_SATURATION as u8, - T::color => structs::NS_STYLE_BLEND_COLOR as u8, - T::luminosity => structs::NS_STYLE_BLEND_LUMINOSITY as u8, - } - </%self:simple_image_array_property> + <% impl_simple_image_array_property("attachment", "background", "mImage", "mAttachment", "Background") %> + <% impl_simple_image_array_property("blend_mode", "background", "mImage", "mBlendMode", "Background") %> </%self:impl_trait> <%self:impl_trait style_struct_name="List" @@ -4034,27 +4036,8 @@ clip-path skip_additionals="*"> <% impl_common_image_layer_properties("mask") %> - - <%self:simple_image_array_property name="mode" shorthand="mask" field_name="mMaskMode"> - use properties::longhands::mask_mode::single_value::computed_value::T; - - match servo { - T::alpha => structs::NS_STYLE_MASK_MODE_ALPHA as u8, - T::luminance => structs::NS_STYLE_MASK_MODE_LUMINANCE as u8, - T::match_source => structs::NS_STYLE_MASK_MODE_MATCH_SOURCE as u8, - } - </%self:simple_image_array_property> - <%self:simple_image_array_property name="composite" shorthand="mask" field_name="mComposite"> - use properties::longhands::mask_composite::single_value::computed_value::T; - - match servo { - T::add => structs::NS_STYLE_MASK_COMPOSITE_ADD as u8, - T::subtract => structs::NS_STYLE_MASK_COMPOSITE_SUBTRACT as u8, - T::intersect => structs::NS_STYLE_MASK_COMPOSITE_INTERSECT as u8, - T::exclude => structs::NS_STYLE_MASK_COMPOSITE_EXCLUDE as u8, - } - </%self:simple_image_array_property> - + <% impl_simple_image_array_property("mode", "mask", "mMask", "mMaskMode", "SVG") %> + <% impl_simple_image_array_property("composite", "mask", "mMask", "mComposite", "SVG") %> <% impl_shape_source("clip_path", "mClipPath") %> </%self:impl_trait> diff --git a/components/style/properties/helpers/animated_properties.mako.rs b/components/style/properties/helpers/animated_properties.mako.rs index 39e3a6a14a1..7c09b62c8af 100644 --- a/components/style/properties/helpers/animated_properties.mako.rs +++ b/components/style/properties/helpers/animated_properties.mako.rs @@ -349,7 +349,7 @@ impl AnimatedProperty { AnimatedProperty::${prop.camel_case}(ref from, ref to) => { // https://w3c.github.io/web-animations/#discrete-animation-type % if prop.animation_value_type == "discrete": - let value = if progress < 0.5 { *from } else { *to }; + let value = if progress < 0.5 { from.clone() } else { to.clone() }; % else: let value = match from.interpolate(to, progress) { Ok(value) => value, @@ -591,9 +591,9 @@ impl Animatable for AnimationValue { &AnimationValue::${prop.camel_case}(ref to)) => { % if prop.animation_value_type == "discrete": if self_portion > other_portion { - Ok(AnimationValue::${prop.camel_case}(*from)) + Ok(AnimationValue::${prop.camel_case}(from.clone())) } else { - Ok(AnimationValue::${prop.camel_case}(*to)) + Ok(AnimationValue::${prop.camel_case}(to.clone())) } % else: from.add_weighted(to, self_portion, other_portion) diff --git a/components/style/properties/longhand/background.mako.rs b/components/style/properties/longhand/background.mako.rs index 60dc1e39e35..7a3c1d41cb6 100644 --- a/components/style/properties/longhand/background.mako.rs +++ b/components/style/properties/longhand/background.mako.rs @@ -144,21 +144,24 @@ ${helpers.predefined_type("background-image", "ImageLayer", ${helpers.single_keyword("background-attachment", "scroll fixed" + (" local" if product == "gecko" else ""), vector=True, + gecko_constant_prefix="NS_STYLE_IMAGELAYER_ATTACHMENT", spec="https://drafts.csswg.org/css-backgrounds/#the-background-attachment", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.single_keyword("background-clip", "border-box padding-box content-box", extra_gecko_values="text", vector=True, extra_prefixes="webkit", + gecko_enum_prefix="StyleGeometryBox", spec="https://drafts.csswg.org/css-backgrounds/#the-background-clip", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.single_keyword("background-origin", "padding-box border-box content-box", vector=True, extra_prefixes="webkit", + gecko_enum_prefix="StyleGeometryBox", spec="https://drafts.csswg.org/css-backgrounds/#the-background-origin", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.predefined_type("background-size", "BackgroundSize", initial_value="computed::LengthOrPercentageOrAuto::Auto.into()", @@ -173,5 +176,6 @@ ${helpers.single_keyword("background-blend-mode", """normal multiply screen overlay darken lighten color-dodge color-burn hard-light soft-light difference exclusion hue saturation color luminosity""", - vector=True, products="gecko", animation_value_type="none", + gecko_constant_prefix="NS_STYLE_BLEND", + vector=True, products="gecko", animation_value_type="discrete", spec="https://drafts.fxtf.org/compositing/#background-blend-mode")} diff --git a/components/style/properties/longhand/border.mako.rs b/components/style/properties/longhand/border.mako.rs index bd6c6549f6d..eb876c40d97 100644 --- a/components/style/properties/longhand/border.mako.rs +++ b/components/style/properties/longhand/border.mako.rs @@ -181,7 +181,7 @@ ${helpers.single_keyword("box-decoration-break", "slice clone", gecko_enum_prefix="StyleBoxDecorationBreak", gecko_inexhaustive=True, spec="https://drafts.csswg.org/css-break/#propdef-box-decoration-break", - products="gecko", animation_value_type="none")} + products="gecko", animation_value_type="discrete")} ${helpers.single_keyword("-moz-float-edge", "content-box margin-box", gecko_ffi_name="mFloatEdge", @@ -189,7 +189,7 @@ ${helpers.single_keyword("-moz-float-edge", "content-box margin-box", gecko_inexhaustive=True, products="gecko", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-float-edge)", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.predefined_type("border-image-source", "ImageLayer", initial_value="Either::First(None_)", diff --git a/components/style/properties/longhand/box.mako.rs b/components/style/properties/longhand/box.mako.rs index 7bec5361348..15009d0b86b 100644 --- a/components/style/properties/longhand/box.mako.rs +++ b/components/style/properties/longhand/box.mako.rs @@ -152,9 +152,8 @@ ${helpers.single_keyword("-moz-top-layer", "none top", spec="Internal (not web-exposed)")} ${helpers.single_keyword("position", "static absolute relative fixed", - need_clone="True", extra_gecko_values="sticky", - animation_value_type="none", + animation_value_type="discrete", flags="CREATES_STACKING_CONTEXT ABSPOS_CB", spec="https://drafts.csswg.org/css-position/#position-property")} @@ -163,8 +162,7 @@ ${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" - need_clone="True" + animation_value_type="discrete" gecko_enum_prefix="StyleFloat" gecko_inexhaustive="True" gecko_ffi_name="mFloat" @@ -203,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"> @@ -382,7 +381,7 @@ ${helpers.single_keyword("-servo-overflow-clip-box", "padding-box content-box", may be standardized in the future (https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-clip-box)")} ${helpers.single_keyword("overflow-clip-box", "padding-box content-box", - products="gecko", animation_value_type="none", internal=True, + products="gecko", animation_value_type="discrete", internal=True, spec="Internal, not web-exposed, \ may be standardized in the future (https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-clip-box)")} @@ -392,14 +391,14 @@ ${helpers.single_keyword("overflow-clip-box", "padding-box content-box", // FIXME(pcwalton, #2742): Implement scrolling for `scroll` and `auto`. ${helpers.single_keyword("overflow-x", "visible hidden scroll auto", - need_clone=True, animation_value_type="none", + need_clone=True, animation_value_type="discrete", extra_gecko_values="-moz-hidden-unscrollable", custom_consts=overflow_custom_consts, gecko_constant_prefix="NS_STYLE_OVERFLOW", spec="https://drafts.csswg.org/css-overflow/#propdef-overflow-x")} // FIXME(pcwalton, #2742): Implement scrolling for `scroll` and `auto`. -<%helpers:longhand name="overflow-y" need_clone="True" animation_value_type="none" +<%helpers:longhand name="overflow-y" need_clone="True" animation_value_type="discrete" spec="https://drafts.csswg.org/css-overflow/#propdef-overflow-y"> pub use super::overflow_x::{SpecifiedValue, parse, get_initial_value, computed_value}; </%helpers:longhand> @@ -2005,14 +2004,14 @@ ${helpers.single_keyword("scroll-behavior", "auto smooth", products="gecko", spec="https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.single_keyword("scroll-snap-type-x", "none mandatory proximity", products="gecko", gecko_constant_prefix="NS_STYLE_SCROLL_SNAP_TYPE", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-type-x)", - animation_value_type="none")} + animation_value_type="discrete")} <%helpers:longhand products="gecko" name="scroll-snap-type-y" animation_value_type="none" spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-type-x)"> @@ -2029,26 +2028,26 @@ ${helpers.single_keyword("isolation", products="gecko", spec="https://drafts.fxtf.org/compositing/#isolation", flags="CREATES_STACKING_CONTEXT", - animation_value_type="none")} + animation_value_type="discrete")} // TODO add support for logical values recto and verso ${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", gecko_ffi_name="mBreakInside", gecko_constant_prefix="NS_STYLE_PAGE_BREAK", spec="https://drafts.csswg.org/css2/page.html#propdef-page-break-inside", - animation_value_type="none")} + animation_value_type="discrete")} // CSS Basic User Interface Module Level 3 // http://dev.w3.org/csswg/css-ui @@ -2057,7 +2056,7 @@ ${helpers.single_keyword("resize", "none both horizontal vertical", products="gecko", spec="https://drafts.csswg.org/css-ui/#propdef-resize", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.predefined_type("perspective", @@ -2082,14 +2081,15 @@ ${helpers.single_keyword("backface-visibility", "visible hidden", spec="https://drafts.csswg.org/css-transforms/#backface-visibility-property", extra_prefixes="moz webkit", - animation_value_type="none")} + animation_value_type="discrete")} ${helpers.single_keyword("transform-box", "border-box fill-box view-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", @@ -2098,7 +2098,7 @@ ${helpers.single_keyword("transform-style", spec="https://drafts.csswg.org/css-transforms/#transform-style-property", extra_prefixes="moz webkit", flags="CREATES_STACKING_CONTEXT FIXPOS_CB", - animation_value_type="none")} + animation_value_type="discrete")} <%helpers:longhand name="transform-origin" animation_value_type="ComputedValue" extra_prefixes="moz webkit" boxed="True" spec="https://drafts.csswg.org/css-transforms/#transform-origin-property"> @@ -2359,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"> diff --git a/components/style/properties/longhand/column.mako.rs b/components/style/properties/longhand/column.mako.rs index 88a17a4c0f6..3d01d20b895 100644 --- a/components/style/properties/longhand/column.mako.rs +++ b/components/style/properties/longhand/column.mako.rs @@ -37,7 +37,7 @@ ${helpers.predefined_type("column-gap", spec="https://drafts.csswg.org/css-multicol/#propdef-column-gap")} ${helpers.single_keyword("column-fill", "balance auto", extra_prefixes="moz", - products="gecko", animation_value_type="none", + products="gecko", animation_value_type="discrete", spec="https://drafts.csswg.org/css-multicol/#propdef-column-fill")} ${helpers.predefined_type("column-rule-width", "BorderWidth", "Au::from_px(3)", @@ -55,12 +55,12 @@ ${helpers.predefined_type("column-rule-color", "CSSColor", spec="https://drafts.csswg.org/css-multicol/#propdef-column-rule-color")} ${helpers.single_keyword("column-span", "none all", - products="gecko", animation_value_type="none", + products="gecko", animation_value_type="discrete", spec="https://drafts.csswg.org/css-multicol/#propdef-column-span")} ${helpers.single_keyword("column-rule-style", "none hidden dotted dashed solid double groove ridge inset outset", products="gecko", extra_prefixes="moz", gecko_constant_prefix="NS_STYLE_BORDER_STYLE", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-multicol/#propdef-column-rule-style")} diff --git a/components/style/properties/longhand/effects.mako.rs b/components/style/properties/longhand/effects.mako.rs index 0374ae0dafb..6c01cb8e3e2 100644 --- a/components/style/properties/longhand/effects.mako.rs +++ b/components/style/properties/longhand/effects.mako.rs @@ -522,6 +522,6 @@ ${helpers.single_keyword("mix-blend-mode", """normal multiply screen overlay darken lighten color-dodge color-burn hard-light soft-light difference exclusion hue saturation color luminosity""", gecko_constant_prefix="NS_STYLE_BLEND", - animation_value_type="none", + animation_value_type="discrete", flags="CREATES_STACKING_CONTEXT", spec="https://drafts.fxtf.org/compositing/#propdef-mix-blend-mode")} diff --git a/components/style/properties/longhand/font.mako.rs b/components/style/properties/longhand/font.mako.rs index 88292db54c8..37410b1be82 100644 --- a/components/style/properties/longhand/font.mako.rs +++ b/components/style/properties/longhand/font.mako.rs @@ -330,7 +330,7 @@ ${helpers.single_keyword_system("font-style", gecko_constant_prefix="NS_FONT_STYLE", gecko_ffi_name="mFont.style", spec="https://drafts.csswg.org/css-fonts/#propdef-font-style", - animation_value_type="none")} + animation_value_type="discrete")} <% font_variant_caps_custom_consts= { "small-caps": "SMALLCAPS", @@ -346,7 +346,7 @@ ${helpers.single_keyword_system("font-variant-caps", gecko_ffi_name="mFont.variantCaps", spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-caps", custom_consts=font_variant_caps_custom_consts, - animation_value_type="none")} + animation_value_type="discrete")} <%helpers:longhand name="font-weight" need_clone="True" animation_value_type="ComputedValue" spec="https://drafts.csswg.org/css-fonts/#propdef-font-weight"> @@ -1193,7 +1193,7 @@ ${helpers.single_keyword_system("font-kerning", gecko_ffi_name="mFont.kerning", gecko_constant_prefix="NS_FONT_KERNING", spec="https://drafts.csswg.org/css-fonts/#propdef-font-kerning", - animation_value_type="none")} + animation_value_type="discrete")} /// FIXME: Implement proper handling of each values. /// https://github.com/servo/servo/issues/15957 @@ -1772,7 +1772,7 @@ ${helpers.single_keyword_system("font-variant-position", gecko_ffi_name="mFont.variantPosition", gecko_constant_prefix="NS_FONT_VARIANT_POSITION", spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-position", - animation_value_type="none")} + animation_value_type="discrete")} <%helpers:longhand name="font-feature-settings" products="gecko" animation_value_type="none" extra_prefixes="moz" boxed="True" @@ -2390,8 +2390,7 @@ ${helpers.single_keyword("-moz-osx-font-smoothing", gecko_ffi_name="mFont.smoothing", products="gecko", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth)", - animation_value_type="none", - need_clone=True)} + animation_value_type="discrete")} ${helpers.predefined_type("-moz-min-font-size-ratio", "Percentage", diff --git a/components/style/properties/longhand/inherited_box.mako.rs b/components/style/properties/longhand/inherited_box.mako.rs index c482e03dd62..09c43a20186 100644 --- a/components/style/properties/longhand/inherited_box.mako.rs +++ b/components/style/properties/longhand/inherited_box.mako.rs @@ -23,11 +23,10 @@ ${helpers.single_keyword("writing-mode", rl=horizontal-tb rl-tb=horizontal-tb \ tb=vertical-rl tb-rl=vertical-rl", experimental=True, - need_clone=True, - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-writing-modes/#propdef-writing-mode")} -${helpers.single_keyword("direction", "ltr rtl", need_clone=True, animation_value_type="none", +${helpers.single_keyword("direction", "ltr rtl", animation_value_type="discrete", spec="https://drafts.csswg.org/css-writing-modes/#propdef-direction", needs_conversion=True)} @@ -35,15 +34,14 @@ ${helpers.single_keyword("text-orientation", "mixed upright sideways", extra_gecko_aliases="sideways-right=sideways", products="gecko", - need_clone=True, - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-writing-modes/#propdef-text-orientation")} // CSS Color Module Level 4 // https://drafts.csswg.org/css-color/ ${helpers.single_keyword("color-adjust", "economy exact", products="gecko", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-color/#propdef-color-adjust")} <% image_rendering_custom_consts = { "crisp-edges": "CRISPEDGES", @@ -55,7 +53,7 @@ ${helpers.single_keyword("image-rendering", extra_gecko_values="optimizespeed optimizequality -moz-crisp-edges", extra_servo_values="pixelated crisp-edges", custom_consts=image_rendering_custom_consts, - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-images/#propdef-image-rendering")} // Image Orientation diff --git a/components/style/properties/longhand/inherited_svg.mako.rs b/components/style/properties/longhand/inherited_svg.mako.rs index f02cccafaa4..2dfa696c2dc 100644 --- a/components/style/properties/longhand/inherited_svg.mako.rs +++ b/components/style/properties/longhand/inherited_svg.mako.rs @@ -10,27 +10,25 @@ inherited=True, gecko_name="SVG") %> -// TODO(emilio): Should some of these types be animatable? - // Section 10 - Text ${helpers.single_keyword("text-anchor", "start middle end", products="gecko", - animation_value_type="none", + animation_value_type="discrete", spec="https://www.w3.org/TR/SVG/text.html#TextAnchorProperty")} // Section 11 - Painting: Filling, Stroking and Marker Symbols ${helpers.single_keyword("color-interpolation", "srgb auto linearrgb", products="gecko", - animation_value_type="none", + animation_value_type="discrete", spec="https://www.w3.org/TR/SVG11/painting.html#ColorInterpolationProperty")} ${helpers.single_keyword("color-interpolation-filters", "linearrgb auto srgb", products="gecko", gecko_constant_prefix="NS_STYLE_COLOR_INTERPOLATION", - animation_value_type="none", + animation_value_type="discrete", spec="https://www.w3.org/TR/SVG11/painting.html#ColorInterpolationFiltersProperty")} ${helpers.predefined_type( @@ -48,13 +46,13 @@ ${helpers.predefined_type("fill-opacity", "Opacity", "1.0", ${helpers.single_keyword("fill-rule", "nonzero evenodd", gecko_enum_prefix="StyleFillRule", gecko_inexhaustive=True, - products="gecko", animation_value_type="none", + products="gecko", animation_value_type="discrete", spec="https://www.w3.org/TR/SVG11/painting.html#FillRuleProperty")} ${helpers.single_keyword("shape-rendering", "auto optimizespeed crispedges geometricprecision", products="gecko", - animation_value_type="none", + animation_value_type="discrete", spec="https://www.w3.org/TR/SVG11/painting.html#ShapeRenderingProperty")} ${helpers.predefined_type( @@ -114,7 +112,7 @@ ${helpers.single_keyword("clip-rule", "nonzero evenodd", products="gecko", gecko_enum_prefix="StyleFillRule", gecko_inexhaustive=True, - animation_value_type="none", + animation_value_type="discrete", spec="https://www.w3.org/TR/SVG11/masking.html#ClipRuleProperty")} ${helpers.predefined_type("marker-start", "UrlOrNone", "Either::Second(None_)", @@ -267,7 +265,6 @@ ${helpers.predefined_type("marker-end", "UrlOrNone", "Either::Second(None_)", impl ComputedValueAsSpecified for SpecifiedValue { } </%helpers:longhand> - <%helpers:vector_longhand name="-moz-context-properties" animation_value_type="none" products="gecko" diff --git a/components/style/properties/longhand/inherited_table.mako.rs b/components/style/properties/longhand/inherited_table.mako.rs index 61229c3228f..424d74a5b4c 100644 --- a/components/style/properties/longhand/inherited_table.mako.rs +++ b/components/style/properties/longhand/inherited_table.mako.rs @@ -8,16 +8,16 @@ ${helpers.single_keyword("border-collapse", "separate collapse", gecko_constant_prefix="NS_STYLE_BORDER", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-tables/#propdef-border-collapse")} ${helpers.single_keyword("empty-cells", "show hide", gecko_constant_prefix="NS_STYLE_TABLE_EMPTY_CELLS", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-tables/#propdef-empty-cells")} ${helpers.single_keyword("caption-side", "top bottom", extra_gecko_values="right left top-outside bottom-outside", needs_conversion="True", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-tables/#propdef-caption-side")} <%helpers:longhand name="border-spacing" animation_value_type="ComputedValue" boxed="True" diff --git a/components/style/properties/longhand/inherited_text.mako.rs b/components/style/properties/longhand/inherited_text.mako.rs index 83b0cf26179..3884e001282 100644 --- a/components/style/properties/longhand/inherited_text.mako.rs +++ b/components/style/properties/longhand/inherited_text.mako.rs @@ -1155,24 +1155,24 @@ ${helpers.predefined_type("-webkit-text-stroke-width", "BorderWidth", "Au::from_ // CSS Ruby Layout Module Level 1 // https://drafts.csswg.org/css-ruby/ ${helpers.single_keyword("ruby-align", "space-around start center space-between", - products="gecko", animation_value_type="none", + products="gecko", animation_value_type="discrete", spec="https://drafts.csswg.org/css-ruby/#ruby-align-property")} ${helpers.single_keyword("ruby-position", "over under", - products="gecko", animation_value_type="none", + products="gecko", animation_value_type="discrete", spec="https://drafts.csswg.org/css-ruby/#ruby-position-property")} // CSS Writing Modes Module Level 3 // https://drafts.csswg.org/css-writing-modes-3/ ${helpers.single_keyword("text-combine-upright", "none all", - products="gecko", animation_value_type="none", need_clone=True, + products="gecko", animation_value_type="discrete", spec="https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright")} // SVG 1.1: Section 11 - Painting: Filling, Stroking and Marker Symbols ${helpers.single_keyword("text-rendering", "auto optimizespeed optimizelegibility geometricprecision", - animation_value_type="none", + animation_value_type="discrete", spec="https://www.w3.org/TR/SVG11/painting.html#TextRenderingProperty")} ${helpers.single_keyword("-moz-control-character-visibility", diff --git a/components/style/properties/longhand/list.mako.rs b/components/style/properties/longhand/list.mako.rs index 7ec59f29e14..01b19d7d4fd 100644 --- a/components/style/properties/longhand/list.mako.rs +++ b/components/style/properties/longhand/list.mako.rs @@ -6,7 +6,7 @@ <% data.new_style_struct("List", inherited=True) %> -${helpers.single_keyword("list-style-position", "outside inside", animation_value_type="none", +${helpers.single_keyword("list-style-position", "outside inside", animation_value_type="discrete", spec="https://drafts.csswg.org/css-lists/#propdef-list-style-position")} // TODO(pcwalton): Implement the full set of counter styles per CSS-COUNTER-STYLES [1] 6.1: diff --git a/components/style/properties/longhand/pointing.mako.rs b/components/style/properties/longhand/pointing.mako.rs index e04a2fc09b6..5c1f929efe6 100644 --- a/components/style/properties/longhand/pointing.mako.rs +++ b/components/style/properties/longhand/pointing.mako.rs @@ -151,7 +151,7 @@ // NB: `pointer-events: auto` (and use of `pointer-events` in anything that isn't SVG, in fact) // is nonstandard, slated for CSS4-UI. // TODO(pcwalton): SVG-only values. -${helpers.single_keyword("pointer-events", "auto none", animation_value_type="none", +${helpers.single_keyword("pointer-events", "auto none", animation_value_type="discrete", extra_gecko_values="visiblepainted visiblefill visiblestroke visible painted fill stroke all", spec="https://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty")} @@ -159,14 +159,15 @@ ${helpers.single_keyword("-moz-user-input", "auto none enabled disabled", products="gecko", gecko_ffi_name="mUserInput", gecko_enum_prefix="StyleUserInput", gecko_inexhaustive=True, - animation_value_type="none", + animation_value_type="discrete", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-user-input)")} ${helpers.single_keyword("-moz-user-modify", "read-only read-write write-only", products="gecko", gecko_ffi_name="mUserModify", gecko_enum_prefix="StyleUserModify", needs_conversion=True, - animation_value_type="none", + gecko_inexhaustive=True, + animation_value_type="discrete", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-user-modify)")} ${helpers.single_keyword("-moz-user-focus", @@ -174,7 +175,7 @@ ${helpers.single_keyword("-moz-user-focus", products="gecko", gecko_ffi_name="mUserFocus", gecko_enum_prefix="StyleUserFocus", gecko_inexhaustive=True, - animation_value_type="none", + animation_value_type="discrete", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-user-focus)")} ${helpers.predefined_type("caret-color", diff --git a/components/style/properties/longhand/position.mako.rs b/components/style/properties/longhand/position.mako.rs index 754fc94732b..ebf4265cd0d 100644 --- a/components/style/properties/longhand/position.mako.rs +++ b/components/style/properties/longhand/position.mako.rs @@ -37,11 +37,11 @@ ${helpers.predefined_type("z-index", "IntegerOrAuto", // Flex container properties ${helpers.single_keyword("flex-direction", "row row-reverse column column-reverse", spec="https://drafts.csswg.org/css-flexbox/#flex-direction-property", - extra_prefixes="webkit", animation_value_type="none")} + extra_prefixes="webkit", animation_value_type="discrete")} ${helpers.single_keyword("flex-wrap", "nowrap wrap wrap-reverse", spec="https://drafts.csswg.org/css-flexbox/#flex-wrap-property", - extra_prefixes="webkit", animation_value_type="none")} + extra_prefixes="webkit", animation_value_type="discrete")} % if product == "servo": // FIXME: Update Servo to support the same Syntax as Gecko. @@ -205,10 +205,13 @@ ${helpers.single_keyword("box-sizing", "content-box border-box", extra_prefixes="moz webkit", spec="https://drafts.csswg.org/css-ui/#propdef-box-sizing", - animation_value_type="none")} + gecko_enum_prefix="StyleBoxSizing", + custom_consts={ "content-box": "Content", "border-box": "Border" }, + gecko_inexhaustive=True, + animation_value_type="discrete")} ${helpers.single_keyword("object-fit", "fill contain cover none scale-down", - products="gecko", animation_value_type="none", + products="gecko", animation_value_type="discrete", spec="https://drafts.csswg.org/css-images/#propdef-object-fit")} ${helpers.predefined_type("object-position", diff --git a/components/style/properties/longhand/svg.mako.rs b/components/style/properties/longhand/svg.mako.rs index 801c376c8ed..c9704795b8a 100644 --- a/components/style/properties/longhand/svg.mako.rs +++ b/components/style/properties/longhand/svg.mako.rs @@ -6,16 +6,15 @@ <% data.new_style_struct("SVG", inherited=False, gecko_name="SVGReset") %> -// TODO: Which of these should be animatable properties? ${helpers.single_keyword("dominant-baseline", """auto use-script no-change reset-size ideographic alphabetic hanging mathematical central middle text-after-edge text-before-edge""", products="gecko", - animation_value_type="none", + animation_value_type="discrete", spec="https://www.w3.org/TR/SVG11/text.html#DominantBaselineProperty")} ${helpers.single_keyword("vector-effect", "none non-scaling-stroke", - products="gecko", animation_value_type="none", + products="gecko", animation_value_type="discrete", spec="https://www.w3.org/TR/SVGTiny12/painting.html#VectorEffectProperty")} // Section 13 - Gradients and Patterns @@ -55,7 +54,7 @@ ${helpers.predefined_type( // CSS Masking Module Level 1 // https://drafts.fxtf.org/css-masking ${helpers.single_keyword("mask-type", "luminance alpha", - products="gecko", animation_value_type="none", + products="gecko", animation_value_type="discrete", spec="https://drafts.fxtf.org/css-masking/#propdef-mask-type")} ${helpers.predefined_type("clip-path", "basic_shape::ClippingShape", @@ -68,7 +67,7 @@ ${helpers.single_keyword("mask-mode", "match-source alpha luminance", vector=True, products="gecko", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.fxtf.org/css-masking/#propdef-mask-mode")} <%helpers:vector_longhand name="mask-repeat" products="gecko" animation_value_type="none" extra_prefixes="webkit" @@ -104,7 +103,8 @@ ${helpers.single_keyword("mask-clip", vector=True, products="gecko", extra_prefixes="webkit", - animation_value_type="none", + gecko_enum_prefix="StyleGeometryBox", + animation_value_type="discrete", spec="https://drafts.fxtf.org/css-masking/#propdef-mask-clip")} ${helpers.single_keyword("mask-origin", @@ -113,7 +113,8 @@ ${helpers.single_keyword("mask-origin", vector=True, products="gecko", extra_prefixes="webkit", - animation_value_type="none", + gecko_enum_prefix="StyleGeometryBox", + animation_value_type="discrete", spec="https://drafts.fxtf.org/css-masking/#propdef-mask-origin")} <%helpers:longhand name="mask-size" products="gecko" animation_value_type="ComputedValue" extra_prefixes="webkit" @@ -138,7 +139,7 @@ ${helpers.single_keyword("mask-composite", vector=True, products="gecko", extra_prefixes="webkit", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.fxtf.org/css-masking/#propdef-mask-composite")} ${helpers.predefined_type("mask-image", "ImageLayer", diff --git a/components/style/properties/longhand/table.mako.rs b/components/style/properties/longhand/table.mako.rs index b64deb64606..fb34efe22c5 100644 --- a/components/style/properties/longhand/table.mako.rs +++ b/components/style/properties/longhand/table.mako.rs @@ -7,7 +7,7 @@ <% data.new_style_struct("Table", inherited=False) %> ${helpers.single_keyword("table-layout", "auto fixed", - gecko_ffi_name="mLayoutStrategy", animation_value_type="none", + gecko_ffi_name="mLayoutStrategy", animation_value_type="discrete", spec="https://drafts.csswg.org/css-tables/#propdef-table-layout")} <%helpers:longhand name="-x-span" products="gecko" diff --git a/components/style/properties/longhand/text.mako.rs b/components/style/properties/longhand/text.mako.rs index dcad735c667..9cfc5dece4d 100644 --- a/components/style/properties/longhand/text.mako.rs +++ b/components/style/properties/longhand/text.mako.rs @@ -153,7 +153,7 @@ ${helpers.single_keyword("unicode-bidi", "normal embed isolate bidi-override isolate-override plaintext", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-writing-modes/#propdef-unicode-bidi")} // FIXME: This prop should be animatable. @@ -274,7 +274,7 @@ ${helpers.single_keyword("unicode-bidi", ${helpers.single_keyword("text-decoration-style", "solid double dotted dashed wavy -moz-none", products="gecko", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-text-decor/#propdef-text-decoration-style")} ${helpers.predefined_type( diff --git a/components/style/properties/longhand/ui.mako.rs b/components/style/properties/longhand/ui.mako.rs index 26186e3e3b6..e06a6feb41c 100644 --- a/components/style/properties/longhand/ui.mako.rs +++ b/components/style/properties/longhand/ui.mako.rs @@ -13,7 +13,7 @@ // we should probably remove from gecko (https://bugzilla.mozilla.org/show_bug.cgi?id=1328331) ${helpers.single_keyword("ime-mode", "auto normal active disabled inactive", products="gecko", gecko_ffi_name="mIMEMode", - animation_value_type="none", + animation_value_type="discrete", spec="https://drafts.csswg.org/css-ui/#input-method-editor")} ${helpers.single_keyword("-moz-user-select", "auto text none all element elements" + @@ -28,13 +28,15 @@ ${helpers.single_keyword("-moz-user-select", "auto text none all element element ${helpers.single_keyword("-moz-window-dragging", "default drag no-drag", products="gecko", gecko_ffi_name="mWindowDragging", gecko_enum_prefix="StyleWindowDragging", - animation_value_type="none", + gecko_inexhaustive=True, + animation_value_type="discrete", spec="None (Nonstandard Firefox-only property)")} ${helpers.single_keyword("-moz-window-shadow", "none default menu tooltip sheet", products="gecko", gecko_ffi_name="mWindowShadow", gecko_constant_prefix="NS_STYLE_WINDOW_SHADOW", - animation_value_type="none", + gecko_inexhaustive=True, + animation_value_type="discrete", internal=True, spec="None (Nonstandard internal property)")} diff --git a/components/style/properties/longhand/xul.mako.rs b/components/style/properties/longhand/xul.mako.rs index e4b443364ab..34b3de89e0b 100644 --- a/components/style/properties/longhand/xul.mako.rs +++ b/components/style/properties/longhand/xul.mako.rs @@ -12,14 +12,15 @@ ${helpers.single_keyword("-moz-box-align", "stretch start center baseline end", products="gecko", gecko_ffi_name="mBoxAlign", gecko_enum_prefix="StyleBoxAlign", gecko_inexhaustive=True, - animation_value_type="none", + animation_value_type="discrete", alias="-webkit-box-align", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-align)")} ${helpers.single_keyword("-moz-box-direction", "normal reverse", products="gecko", gecko_ffi_name="mBoxDirection", gecko_enum_prefix="StyleBoxDirection", - animation_value_type="none", + gecko_inexhaustive=True, + animation_value_type="discrete", alias="-webkit-box-direction", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-direction)")} @@ -33,21 +34,24 @@ ${helpers.single_keyword("-moz-box-orient", "horizontal vertical", products="gecko", gecko_ffi_name="mBoxOrient", extra_gecko_aliases="inline-axis=horizontal block-axis=vertical", gecko_enum_prefix="StyleBoxOrient", - animation_value_type="none", + gecko_inexhaustive=True, + animation_value_type="discrete", alias="-webkit-box-orient", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-orient)")} ${helpers.single_keyword("-moz-box-pack", "start center end justify", products="gecko", gecko_ffi_name="mBoxPack", gecko_enum_prefix="StyleBoxPack", - animation_value_type="none", + gecko_inexhaustive=True, + animation_value_type="discrete", alias="-webkit-box-pack", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-pack)")} ${helpers.single_keyword("-moz-stack-sizing", "stretch-to-fit ignore ignore-horizontal ignore-vertical", products="gecko", gecko_ffi_name="mStackSizing", gecko_enum_prefix="StyleStackSizing", - animation_value_type="none", + gecko_inexhaustive=True, + animation_value_type="discrete", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-stack-sizing)")} ${helpers.predefined_type("-moz-box-ordinal-group", "Integer", "0", |