Implements simple discrete animatable properties

This commit is contained in:
daisuke 2017-05-29 16:08:09 +09:00
parent fecfd306c5
commit 917dbdfdbd
17 changed files with 56 additions and 65 deletions

View file

@ -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_)",

View file

@ -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"
@ -382,7 +380,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 +390,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 +2003,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,7 +2027,7 @@ ${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",
@ -2048,7 +2046,7 @@ ${helpers.single_keyword("page-break-inside",
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 +2055,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,7 +2080,7 @@ ${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",
@ -2098,7 +2096,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">

View file

@ -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")}

View file

@ -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")}

View file

@ -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",

View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -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",

View file

@ -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:

View file

@ -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,7 +159,7 @@ ${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",
@ -174,7 +174,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",

View file

@ -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.
@ -208,7 +208,7 @@ ${helpers.single_keyword("box-sizing",
animation_value_type="none")}
${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",

View file

@ -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",

View file

@ -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"

View file

@ -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(

View file

@ -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" +

View file

@ -12,7 +12,7 @@ ${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)")}