aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/style/properties/gecko.mako.rs239
-rw-r--r--components/style/properties/helpers/animated_properties.mako.rs6
-rw-r--r--components/style/properties/longhand/background.mako.rs12
-rw-r--r--components/style/properties/longhand/border.mako.rs4
-rw-r--r--components/style/properties/longhand/box.mako.rs39
-rw-r--r--components/style/properties/longhand/column.mako.rs6
-rw-r--r--components/style/properties/longhand/effects.mako.rs2
-rw-r--r--components/style/properties/longhand/font.mako.rs11
-rw-r--r--components/style/properties/longhand/inherited_box.mako.rs12
-rw-r--r--components/style/properties/longhand/inherited_svg.mako.rs15
-rw-r--r--components/style/properties/longhand/inherited_table.mako.rs6
-rw-r--r--components/style/properties/longhand/inherited_text.mako.rs8
-rw-r--r--components/style/properties/longhand/list.mako.rs2
-rw-r--r--components/style/properties/longhand/pointing.mako.rs9
-rw-r--r--components/style/properties/longhand/position.mako.rs11
-rw-r--r--components/style/properties/longhand/svg.mako.rs17
-rw-r--r--components/style/properties/longhand/table.mako.rs2
-rw-r--r--components/style/properties/longhand/text.mako.rs4
-rw-r--r--components/style/properties/longhand/ui.mako.rs8
-rw-r--r--components/style/properties/longhand/xul.mako.rs14
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",