| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| { |
| // This file specifies all the CSS properties we support and the necessary |
| // information for our code generation. The various supported arguments |
| // are described below with example usage |
| |
| parameters: { |
| // - alias_for: "other-property" |
| // Properties specifying alias_for should be virtually identical to the |
| // properties they alias. Minor parsing differences are allowed as long as |
| // the CSSValues created are of the same format of the aliased property. |
| alias_for: { |
| }, |
| |
| // - longhands: ["property", "other-property"] |
| // The property is a shorthand for several other properties. |
| longhands: { |
| }, |
| |
| // - property_methods: ["method1", "method2"] |
| // List of methods that are implemented in the CSSProperty for this |
| // property. |
| property_methods: { |
| default: [], |
| valid_type: "list", |
| valid_values: [ |
| "ParseSingleValue", |
| "ParseShorthand", |
| "CSSValueFromComputedStyleInternal", |
| "ColorIncludingFallback", |
| "InitialValue" |
| ], |
| }, |
| |
| // Suppresses code generation for the specified style builder functions. |
| // This allows us to provide hand-written style builder functions in cases |
| // where it's needed. |
| style_builder_custom_functions: { |
| default: [], |
| valid_type: "list", |
| valid_values: [ |
| "initial", |
| "inherit", |
| "value", |
| ], |
| }, |
| |
| // Affects how the style building functions are generated. |
| // |
| // Several property groups (e.g. color properties) deviate from the default |
| // style builder application, yet there are enough of these properties that |
| // we want to generate code for them rather than having manually written |
| // style builder functions. |
| style_builder_template: { |
| valid_values: [ |
| "animation", |
| "auto", |
| "background_layer", |
| "border_image", |
| "color", |
| "counter", |
| "empty", |
| "grid", |
| // The legacy template means that regular code generation should not be |
| // be performed, and that the property is hard-coded in |
| // style_builder_functions.cc.tmpl. |
| "legacy", |
| "mask_box", |
| "mask_layer", |
| "transition", |
| "visited_color", |
| ], |
| }, |
| |
| // Additional arguments to 'style_builder_template' may be provided here. |
| style_builder_template_args: { |
| default: {}, |
| valid_type: "dict" |
| }, |
| |
| // - is_descriptor |
| // Whether it is a CSS descriptor. Descriptors define the characteristics of |
| // an at-rule. E.g. @font-face is an at-rule, and src is a valid descriptor |
| // for @font-face. Descriptors and CSS properties with the same name are |
| // handled together in this file. |
| // TODO(crbug.com/752745): Don't use CSSPropertyID for descriptors. |
| // - is_property |
| // Whether it is a CSS property. If this is false then is_descriptor must be |
| // true. |
| is_descriptor: { |
| default: false, |
| valid_type: "bool", |
| }, |
| is_property: { |
| default: true, |
| valid_type: "bool", |
| }, |
| |
| // - independent |
| // This property affects only one field on ComputedStyle, and can be set |
| // directly during inheritance instead of forcing a recalc. |
| // StyleResolver and StyleAdjuster are not invoked when these properties |
| // are changed on a parent. Recalcs only happen if at least one |
| // non-independent inherited property is changed in the parent. |
| independent: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - semi_independent_variable |
| // This property affects to the {Inherited, NonInherited}Variable data fields so that we |
| // can assume that the custom properties might not depend on any other property. We can |
| // handle these properties so that they are excluded from the shared Inherited/NohInherited |
| // logic, like the Equal and inheritance functions. |
| semi_independent_variable: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - affected_by_all |
| // The affected_by_all flag indicates whether a change to the CSS property |
| // "all" affects this property. |
| // c.f. https://drafts.csswg.org/css-cascade/#all-shorthand |
| // Descriptors (is_property: false) are never affected by changes to the |
| // all property. |
| affected_by_all: { |
| default: true, |
| valid_type: "bool", |
| }, |
| |
| // - interpolable |
| // The interpolable flag indicates whether a property can be animated |
| // smoothly. If this flag is set, the property should also be added to the |
| // switch statements in CSSPropertyEquality and CSSInterpolationTypesMap. |
| interpolable: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - inherited |
| // The property will inherit by default if no value is specified, typically |
| // mentioned in specifications as "Inherited: yes" |
| inherited: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - compositable |
| // The property can be animated by the compositor |
| compositable: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - computable |
| // |
| // Whether or not a property appears on CSSStyleDeclaration. |
| // |
| // By default a property is computable if it's all of the following: |
| // |
| // - Not an alias |
| // - A property (as opposed to a descriptor) |
| // - A longhand |
| // |
| // Otherwise the property is (by default) _not_ computable. |
| // |
| // If an explicit true/false value is provided, this overrides the default, |
| // and the property unconditionally becomes computable/not-computable |
| // according to the value specified. |
| // |
| // Internal properties (-internal-*) are never computable, and using this |
| // flag on internal properties is an error. |
| computable: { |
| valid_type: "bool", |
| }, |
| |
| // - runtime_flag |
| // The name of the flag on RuntimeEnabledFeatures |
| // (e.g. "CSSOverscrollBehavior") that conditionally enables the |
| // property. |
| // This doesn't currently work with alias_for. |
| runtime_flag: { |
| valid_type: "str", |
| }, |
| |
| // - field_group |
| // Name of the group that this field belongs to. Fields in the same group |
| // are stored together as a nested class inside ComputedStyle and |
| // dynamically allocated on use. |
| // Leave this out if the field is stored directly on ComputedStyle. |
| // If you want to auto group this property use: field_group: "*[->subgroup]" |
| // If you use the auto grouping function check if your property is in |
| // css_properties_ranking.json5 |
| // - If yes, only provide: field_group: "*" |
| // - If no, you can specify a subgroup following the asterisk: |
| // field_group: "*[->subgroup]" |
| field_group: { |
| valid_type: "str", |
| }, |
| |
| // - field_size |
| // Number of bits needed to store this field. |
| field_size: { |
| valid_type: "int", |
| }, |
| |
| // - field_template |
| // Affects how the interface to this field is generated. |
| // TODO(sashab, meade): Remove this once TypedOM types are specified for |
| // every property, since this value can be inferred from that. |
| field_template: { |
| valid_values: [ |
| // Field is stored as an enum and has a initial/getter/setter/resetter. |
| // If include_paths is empty, we would also generate the corresponding |
| // enum definition in ComputedStyleConstants.h. |
| "keyword", |
| // Field can take on any subset of values from a list of keywords. |
| "multi_keyword", |
| // Semantically equivalent to keyword, but the type is represented as a |
| // bit flag field as with multi_keyword as a performance optimization |
| // for matching multiple values. |
| "bitset_keyword", |
| // Field stores a primitive value like int/bool. The type is specified |
| // by type_name. The interface has a initial/getter/setter/resetter. |
| "primitive", |
| // Field is stored as a bool, whose default value is false |
| // and can only be set to true. Has a initial/getter/setter. |
| "monotonic_flag", |
| // Field has type specified at type_name and has a getter/setter. |
| // Also has a setter taking an rvalue reference. Cannot be packed. |
| "external", |
| // Field is stored as a wrapper_pointer_name to a class. |
| "pointer", |
| // Preset "length" for external and Length class |
| // This preset represents alias templates that will be replace by |
| // entries in CSSFieldAlias.json5. |
| "<[a-z]+>" |
| ], |
| }, |
| |
| // - include_paths: ["path/to/file1.h", "path/to/file2.h"] |
| // List of files containing the definitions of types in 'type_name'. Each of |
| // these files will appear as a #include in ComputedStyleBase.h. For |
| // example, if the type_name is 'Vector<String>', include_paths should be |
| // ["third_party/blink/renderer/platform/wtf/vector.h", |
| // "third_party/blink/renderer/platform/wtf/text/wtf_string.h"] |
| include_paths: { |
| default: [], |
| }, |
| |
| // Name of the pointer type that wraps this field (e.g. scoped_refptr). |
| wrapper_pointer_name: { |
| valid_type: "str", |
| valid_values: ["scoped_refptr", "Persistent", "std::unique_ptr"], |
| }, |
| |
| // - keywords: ["keyword1", "keyword2"] |
| // This specifies all valid keyword values for the property. |
| // TODO(sashab): Once all properties are represented here, delete |
| // CSSValueKeywords.in and use this list instead. |
| keywords: { |
| default: [], |
| }, |
| |
| // - default_value: "keyword-value" |
| // This specifies the default value for this field. |
| // - for keyword fields, this is the initial keyword |
| // - for other fields, this is a string containg the C++ expression |
| // that is used to initialise the field. |
| default_value: { |
| }, |
| |
| // Flags which go into CSSOMTypes: |
| // - typedom_types: ["Keyword", "Type", "OtherType"] |
| // The property can take types specified in typedom_types for CSS Typed OM. |
| // - separator |
| // The property supports a list of values, and when there is more than one, |
| // it is separated with this character. |
| typedom_types: { |
| default: [], |
| valid_type: "list", |
| valid_values: [ |
| "Angle", |
| "Flex", |
| "Frequency", |
| "Keyword", |
| "Length", |
| "Number", |
| "Percentage", |
| "Position", |
| "Resolution", |
| "Time", |
| "Transform", |
| "Unparsed", |
| "Image" |
| ], |
| }, |
| separator: { |
| valid_values: [",", " ", "/"], |
| }, |
| |
| // The remaining arguments are used for the StyleBuilder and allow us to |
| // succinctly describe how to apply properties. When default handlers are |
| // not sufficient, we should prefer to use converter, and failing that |
| // define custom property handlers in CSSProperty subclasses. We should only |
| // use style_builder_functions.tmpl to define handlers when there are |
| // multiple properties requiring the same handling, but converter doesn't |
| // suffice. |
| |
| // - font |
| // The default property handlers call into the FontBuilder instead of |
| // setting values directly onto the ComputedStyle |
| font: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - name_for_methods: "BlendMode" |
| // Tweaks how we choose defaults for getter, setter, initial and type_name. |
| // For example, setting this to BlendMode will make us use a setter of |
| // setBlendMode |
| // - initial |
| // The static function to invoke on ComputedStyleInitialValues |
| // or FontBuilder to retrieve the initial value. |
| // Defaults to e.g. InitialBorderBottomLeft. |
| // - getter |
| // The ComputedStyle getter, defaults to e.g. BorderBottomLeft |
| // - setter |
| // The ComputedStyle setter, defaults to e.g. GetBorderBottomLeft |
| // - type_name |
| // The computed type for the property. Only required for the default value |
| // application, defaults to e.g. EDisplay |
| name_for_methods: { |
| }, |
| initial: { |
| }, |
| getter: { |
| }, |
| setter: { |
| }, |
| type_name: { |
| }, |
| |
| // - custom_function: Any function specified in the list is not |
| // automatically generated in ComputedStyle. Use this when a generated |
| // function is not correct. |
| computed_style_custom_functions: { |
| default: [], |
| valid_type: "list", |
| valid_values: ["initial", "getter", "setter", "reset", "mutable"], |
| }, |
| |
| // - converter: "ConvertRadius" |
| // The StyleBuilder will call the specified function on |
| // StyleBuilderConverter to convert a CSSValue to an appropriate platform |
| // value |
| converter: { |
| }, |
| |
| // - logical_property_group: used for properties that depend on writing-mode |
| // and/or text-direction (e.g. css-logical), and for their physical counterparts. |
| // Represents the "logical property group" described by css-logical |
| // (https://drafts.csswg.org/css-logical/#logical-property-group). |
| logical_property_group: { |
| // A name identifying the logical property group. All logical and physical |
| // properties in the same group should have the same name. |
| // |
| // In terms of code generation, each value corresponds to 2 functions in |
| // CSSDirectionAwareResolver. E.g. a value of "foo-bar" would correspond to: |
| // - CSSDirectionAwareResolver::LogicalFooBarMapping(), containing the |
| // properties of the group with a flow-relative mapping logic. |
| // - CSSDirectionAwareResolver::PhysicalFooBarMapping(), containing the |
| // properties of the group with a physical mapping logic. |
| name: { |
| valid_type: "str", |
| valid_values: ["border", "border-color", "border-radius", |
| "border-style", "border-width", "contain-intrinsic-size", |
| "inset", "margin", "max-size", "min-size", "overflow", |
| "padding", "scroll-margin", "scroll-padding", "size", |
| "visited-border-color"], |
| }, |
| // The name of the mapping function used to convert between equivalent |
| // logical and physical properties within the same group. Corresponds to |
| // a function in CSSDirectionAwareResolver. E.g. a value of "baz" |
| // corresponds to CSSDirectionAwareResolver::ResolveBaz(...). |
| // |
| // Also identifies the mapping logic of the group |
| // (https://drafts.csswg.org/css-logical-1/#mapping-logic) |
| resolver: { |
| valid_type: "str", |
| valid_values: [ |
| // Mapping logic: flow-relative (logical) |
| "block", "inline", |
| "block-start", "block-end", "inline-start", "inline-end", |
| "start-start", "start-end", "end-start", "end-end", |
| // Mapping logic: physical |
| "vertical", "horizontal", |
| "top", "bottom", "left", "right", |
| "top-left", "top-right", "bottom-right", "bottom-left", |
| ], |
| }, |
| }, |
| |
| // - surrogate_for: "other-property" |
| // |
| // A surrogate is a property which acts like another property. Unlike an |
| // alias (which is resolved as parse-time), a surrogate exists alongside |
| // the original in the parsed rule, and in the cascade. |
| // |
| // However, surrogates modify the same fields on ComputedStyle. Examples of |
| // surrogates are: |
| // |
| // * -webkit-writing-mode (surrogate of writing-mode) |
| // * inline-size (surrogate for width, or height) |
| // * All css-logical properties in general |
| // |
| // Note that for properties that use logical_property_group, |
| // 'surrogate_for' should not be set, as the mapping is determined at |
| // run-time (depending og e.g. 'direction'). |
| surrogate_for: { |
| valid_type: "str", |
| }, |
| |
| // - priority: "High" |
| // The priority level for computing the property. Properties with the same |
| // priority level are grouped and computed in alphabetical order. |
| priority: { |
| default: "Low", |
| valid_values: ["High", "Low"], |
| }, |
| |
| // - layout_dependent |
| // The resolved value used for getComputedStyle() depends on layout for this |
| // property, which means we may need to update layout to return the correct |
| // value from getComputedStyle(). Setting this to true will override |
| // IsLayoutDependentProperty() to return true and require a custom |
| // IsLayoutDependent() which typically checks for LayoutObject existence and |
| // type. |
| layout_dependent: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - visited_property_for: "other-property" |
| // CSS properties that are allowed in :visited selectors each have an |
| // internal "companion" property with the visited value. For privacy reasons |
| // CSSOM APIs must return computed values as if links aren't visited, but |
| // for rendering purposes we need the value with the :visited rules applied. |
| // |
| // This means that the regular property (e.g. background-color) represents |
| // the value as seen by CSSOM, and the -internal-visited counterpart (e.g. |
| // -internal-visited-background-color) represents the same property as seen |
| // by painting. |
| visited_property_for: { |
| valid_type: "str", |
| }, |
| |
| // - valid_for_first_letter: true |
| // |
| // https://drafts.csswg.org/css-pseudo-4/#first-letter-styling |
| valid_for_first_letter: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - valid_for_first_line: true |
| // |
| // https://drafts.csswg.org/css-pseudo-4/#first-line-styling |
| valid_for_first_line: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - valid_for_cue: true |
| // |
| // https://w3c.github.io/webvtt/#the-cue-pseudo-element |
| valid_for_cue: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - valid_for_marker: true |
| // |
| // https://drafts.csswg.org/css-pseudo-4/#marker-pseudo |
| valid_for_marker: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - valid_for_highlight: true |
| // |
| // https://drafts.csswg.org/css-pseudo-4/#highlight-styling |
| valid_for_highlight: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - is_border |
| // The property, when used by the author, will disable any native |
| // appearance on UI elements. |
| is_border: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - is_background |
| // The property, when used by the author, will disable any native |
| // appearance on UI elements. |
| is_background: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - is_border_radius |
| // The property, when used by the author, will disable any native |
| // appearance on UI elements. |
| is_border_radius: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - is_highlight_colors |
| // The property participates in paired cascade, such that when encountered |
| // in highlight styles, we make all other highlight color properties default |
| // to initial, rather than the UA default. |
| // https://drafts.csswg.org/css-pseudo-4/#highlight-cascade |
| is_highlight_colors: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - is_animation_property |
| // The property is a longhand of the 'animation' or 'transition' shorthands. |
| is_animation_property: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - tree_scoped_value: true |
| // Whether the property takes a tree-scoped reference as its value. |
| // https://drafts.csswg.org/css-scoping/#css-tree-scoped-reference |
| tree_scoped_value: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| }, |
| |
| // Members in the data objects should appear in the same order as in the |
| // parameters object above |
| data: [ |
| // Properties with StyleBuilder handling |
| |
| // Animation Priority properties |
| { |
| name: "animation-delay", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "Delay", |
| }, |
| typedom_types: ["Time"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "animation-direction", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| keywords: ["normal", "reverse", "alternate", "alternate-reverse"], |
| typedom_types: ["Keyword"], |
| separator: ",", |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "Direction", |
| }, |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "animation-duration", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| separator: ",", |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "Duration", |
| }, |
| typedom_types: ["Time"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "animation-fill-mode", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "FillMode", |
| }, |
| keywords: ["none", "forwards", "backwards", "both"], |
| typedom_types: ["Keyword"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "animation-iteration-count", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| keywords: ["infinite"], |
| separator: ",", |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "IterationCount", |
| }, |
| keywords: ["infinite"], |
| typedom_types: ["Keyword", "Number"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "animation-name", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "Name", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| separator: ",", |
| valid_for_marker: true, |
| tree_scoped_value: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "animation-play-state", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "PlayState", |
| }, |
| keywords: ["running", "paused"], |
| typedom_types: ["Keyword"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "animation-timeline", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "Timeline", |
| }, |
| keywords: ["none", "auto"], |
| typedom_types: ["Keyword"], |
| separator: ",", |
| valid_for_marker: true, |
| runtime_flag: "CSSScrollTimeline", |
| is_animation_property: true, |
| }, |
| { |
| name: "animation-timing-function", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "TimingFunction", |
| }, |
| keywords: [ |
| "linear", |
| "ease", |
| "ease-in", |
| "ease-out", |
| "ease-in-out", |
| "jump-both", |
| "jump-end", |
| "jump-none", |
| "jump-start", |
| "step-start", |
| "step-end" |
| ], |
| typedom_types: ["Keyword"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "transition-delay", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "transition", |
| style_builder_template_args: { |
| attribute: "Delay", |
| }, |
| typedom_types: ["Time"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "transition-duration", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| typedom_types: ["Keyword", "Time"], |
| separator: ",", |
| style_builder_template: "transition", |
| style_builder_template_args: { |
| attribute: "Duration", |
| }, |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "transition-property", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "transition", |
| style_builder_template_args: { |
| attribute: "Property", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| { |
| name: "transition-timing-function", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "transition", |
| style_builder_template_args: { |
| attribute: "TimingFunction", |
| }, |
| keywords: [ |
| "linear", |
| "ease", |
| "ease-in", |
| "ease-out", |
| "ease-in-out", |
| "jump-both", |
| "jump-end", |
| "jump-none", |
| "jump-start", |
| "step-start", |
| "step-end"], |
| typedom_types: ["Keyword"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| }, |
| |
| // High Priority and all other font properties. |
| // Other properties can depend upon high priority properties |
| // (e.g. font-size / ems) |
| { |
| name: "color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| inherited: true, |
| // color isn't strictly independent of all other properties; |
| // it determines currentColor, which in turn can affect the used value of |
| // other properties (such as border colors, stops in gradients, etc.). |
| // However, changes to color generally also trigger paint invalidation, |
| // and paint invalidation resolves the color anew. (For the special case |
| // of gradient stops, we have logic within ComputedStyle::AdjustDiffForBackgroundVisuallyEqual |
| // that forces paint invalidation, recomputing the gradient and repainting |
| // the element.) |
| independent: true, |
| field_group: "inherited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(Color::kBlack)", |
| type_name: "StyleColor", |
| computed_style_custom_functions: ["getter"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: "High", |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| valid_for_highlight: true, |
| is_highlight_colors: true, |
| }, |
| { |
| name: "direction", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| affected_by_all: false, |
| inherited: true, |
| field_template: "keyword", |
| include_paths: ["third_party/blink/renderer/platform/text/text_direction.h"], |
| keywords: ["ltr", "rtl"], |
| typedom_types: ["Keyword"], |
| default_value: "ltr", |
| type_name: "TextDirection", |
| style_builder_custom_functions: ["value"], |
| priority: "High", |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-family", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "FamilyDescription", |
| type_name: "FontDescription::FamilyDescription", |
| style_builder_custom_functions: ["initial", "inherit"], |
| converter: "ConvertFontFamily", |
| priority: "High", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| tree_scoped_value: true, |
| }, |
| { |
| name: "font-kerning", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "Kerning", |
| type_name: "FontDescription::Kerning", |
| priority: "High", |
| keywords: ["auto", "normal", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-optical-sizing", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "FontOpticalSizing", |
| type_name: "OpticalSizing", |
| priority: "High", |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-palette", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal" ], |
| inherited: true, |
| font: true, |
| runtime_flag: "FontPalette", |
| converter: "ConvertFontPalette", |
| type_name: "FontPalette", |
| priority: "High", |
| keywords: ["normal", "light", "dark"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-size", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "Size", |
| getter: "GetSize", |
| converter: "ConvertFontSize", |
| priority: "High", |
| keywords: ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "larger", "smaller", "-webkit-xxx-large"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-size-adjust", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| runtime_flag: "CSSFontSizeAdjust", |
| font: true, |
| name_for_methods: "SizeAdjust", |
| converter: "ConvertFontSizeAdjust", |
| priority: "High", |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Number"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-stretch", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "Stretch", |
| converter: "ConvertFontStretch", |
| priority: "High", |
| keywords: [ |
| "normal", "ultra-condensed", "extra-condensed", "condensed", |
| "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded" |
| ], |
| typedom_types: ["Keyword", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-style", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "Style", |
| converter: "ConvertFontStyle", |
| priority: "High", |
| keywords: ["normal", "italic", "oblique"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-variant-ligatures", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantLigatures", |
| type_name: "VariantLigatures", |
| converter: "ConvertFontVariantLigatures", |
| priority: "High", |
| keywords: [ |
| "normal", "none", "common-ligatures", "no-common-ligatures", |
| "discretionary-ligatures", "no-discretionary-ligatures", |
| "historical-ligatures", "no-historical-ligatures", "contextual", |
| "no-contextual" |
| ], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-variant-caps", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantCaps", |
| converter: "ConvertFontVariantCaps", |
| priority: "High", |
| keywords: [ |
| "normal", "small-caps", "all-small-caps", "petite-caps", |
| "all-petite-caps", "unicase", "titling-caps" |
| ], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-variant-east-asian", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantEastAsian", |
| converter: "ConvertFontVariantEastAsian", |
| priority: "High", |
| keywords: [ |
| "normal", "jis78", "jis83", "jis90", "jis04", "simplified", |
| "traditional", "full-width", "proportional-width", "ruby" |
| ], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-variant-numeric", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantNumeric", |
| converter: "ConvertFontVariantNumeric", |
| priority: "High", |
| keywords: [ |
| "normal", "lining-nums", "oldstyle-nums", "proportional-nums", |
| "tabular-nums", "diagonal-fractions", "stacked-fractions", "ordinal", |
| "slashed-zero" |
| ], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-weight", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "Weight", |
| converter: "ConvertFontWeight", |
| priority: "High", |
| keywords: ["normal", "bold", "bolder", "lighter"], |
| typedom_types: ["Keyword", "Number"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-synthesis-weight", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| runtime_flag: "FontSynthesis", |
| font: true, |
| name_for_methods: "FontSynthesisWeight", |
| type_name: "FontDescription::FontSynthesisWeight", |
| priority: "High", |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-synthesis-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| runtime_flag: "FontSynthesis", |
| font: true, |
| name_for_methods: "FontSynthesisStyle", |
| type_name: "FontDescription::FontSynthesisStyle", |
| priority: "High", |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-synthesis-small-caps", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| runtime_flag: "FontSynthesis", |
| font: true, |
| name_for_methods: "FontSynthesisSmallCaps", |
| type_name: "FontDescription::FontSynthesisSmallCaps", |
| priority: "High", |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "font-feature-settings", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "FeatureSettings", |
| converter: "ConvertFontFeatureSettings", |
| priority: "High", |
| keywords: ["normal"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| computable: false, |
| }, |
| { |
| name: "font-variation-settings", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "VariationSettings", |
| converter: "ConvertFontVariationSettings", |
| priority: "High", |
| keywords: ["normal"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| computable: false, |
| }, |
| { |
| name: "-webkit-font-smoothing", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| type_name: "FontSmoothingMode", |
| priority: "High", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| }, |
| { |
| name: "forced-color-adjust", |
| field_group: "*", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| runtime_flag: "ForcedColors", |
| field_template: "keyword", |
| priority: "High", |
| keywords: ["auto", "none", "preserve-parent-color"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| valid_for_highlight: true, |
| computable: false, |
| }, |
| { |
| name: "-webkit-locale", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| style_builder_custom_functions: ["value"], |
| priority: "High", |
| }, |
| { |
| name: "math-depth", |
| default_value: 0, |
| field_group: "*", |
| field_template: "primitive", |
| inherited: true, |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "CSSMathDepth", |
| style_builder_custom_functions: ["value"], |
| type_name: "short", |
| typedom_types: ["Number"], |
| }, |
| { |
| name: "text-orientation", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["sideways", "mixed", "upright"], |
| typedom_types: ["Keyword"], |
| default_value: "mixed", |
| getter: "GetTextOrientation", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: "High", |
| computable: false, |
| }, |
| { |
| name: "-webkit-text-orientation", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| type_name: "TextOrientation", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: "High", |
| surrogate_for: "text-orientation", |
| }, |
| { |
| name: "writing-mode", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_template: "keyword", |
| include_paths: ["third_party/blink/renderer/platform/text/writing_mode.h"], |
| keywords: ["horizontal-tb", "vertical-rl", "vertical-lr"], |
| typedom_types: ["Keyword"], |
| default_value: "horizontal-tb", |
| type_name: "WritingMode", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: "High", |
| }, |
| { |
| name: "-webkit-writing-mode", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| type_name: "WritingMode", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: "High", |
| surrogate_for: "writing-mode", |
| }, |
| { |
| name: "text-rendering", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| type_name: "TextRenderingMode", |
| keywords: ["auto", "optimizespeed", "optimizelegibility", "geometricprecision"], |
| typedom_types: ["Keyword"], |
| priority: "High", |
| }, |
| { |
| name: "zoom", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| field_group: "visual", |
| field_template: "primitive", |
| default_value: "1.0", |
| type_name: "float", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: "High", |
| }, |
| { |
| name: "accent-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_auto_color.h"], |
| type_name: "StyleAutoColor", |
| computed_style_custom_functions: ["getter"], |
| keywords: ["auto", "currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| runtime_flag: "CSSAccentColor", |
| default_value: "StyleAutoColor::AutoColor()", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| computable: true, |
| }, |
| { |
| name: "align-content", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_content_alignment_data.h"], |
| default_value: "StyleContentAlignmentData(ContentPosition::kNormal, ContentDistributionType::kDefault, OverflowAlignment::kDefault)", |
| type_name: "StyleContentAlignmentData", |
| converter: "ConvertContentAlignmentData", |
| }, |
| { |
| name: "align-items", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_self_alignment_data.h"], |
| default_value: "StyleSelfAlignmentData(ItemPosition::kNormal, OverflowAlignment::kDefault)", |
| type_name: "StyleSelfAlignmentData", |
| converter: "ConvertSelfOrDefaultAlignmentData", |
| }, |
| { |
| name: "alignment-baseline", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["auto", "baseline", "alphabetic", "ideographic", "middle", |
| "central", "mathematical", "before-edge", "text-before-edge", |
| "after-edge", "text-after-edge", "hanging"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| }, |
| { |
| name: "align-self", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_self_alignment_data.h"], |
| default_value: "StyleSelfAlignmentData(ItemPosition::kAuto, OverflowAlignment::kDefault)", |
| type_name: "StyleSelfAlignmentData", |
| converter: "ConvertSelfOrDefaultAlignmentData", |
| }, |
| { |
| name: "aspect-ratio", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "external", |
| keywords: ["auto"], |
| default_value: "StyleAspectRatio(EAspectRatioType::kAuto, gfx::SizeF())", |
| type_name: "StyleAspectRatio", |
| converter: "ConvertAspectRatio", |
| include_paths: ["third_party/blink/renderer/core/style/style_aspect_ratio.h"], |
| computable: false, |
| }, |
| { |
| name: "backdrop-filter", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_filter_data.h"], |
| wrapper_pointer_name: "Persistent", |
| default_value: "MakeGarbageCollected<StyleFilterData>()", |
| type_name: "StyleFilterData", |
| computed_style_custom_functions: ["initial", "getter","setter"], |
| style_builder_custom_functions: ["value"], |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "backface-visibility", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["visible", "hidden"], |
| typedom_types: ["Keyword"], |
| default_value: "visible", |
| }, |
| { |
| name: "background-attachment", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: ["scroll", "fixed", "local"], |
| typedom_types: ["Keyword"], |
| separator: " ", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "Attachment", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| is_background: true, |
| }, |
| { |
| name: "background-blend-mode", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: [ |
| "normal", "multiply", "screen", "overlay", "darken", "lighten", |
| "color-dodge", "color-burn", "hard-light", "soft-light", "difference", |
| "exclusion", "hue", "saturation", "color", "luminosity" |
| ], |
| typedom_types: ["Keyword"], |
| separator: " ", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "BlendMode", |
| fill_type_getter: "GetBlendMode", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| is_background: true, |
| }, |
| { |
| name: "background-clip", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: ["border-box", "padding-box", "content-box"], |
| typedom_types: ["Keyword"], |
| separator: " ", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "Clip", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| is_background: true, |
| }, |
| { |
| name: "background-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| compositable: true, |
| field_group: "background", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(Color::kTransparent)", |
| type_name: "StyleColor", |
| computed_style_custom_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialBackgroundColor", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_highlight: true, |
| is_background: true, |
| is_highlight_colors: true, |
| }, |
| { |
| name: "background-image", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword", "Image"], |
| separator: " ", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "Image", |
| fill_type_getter: "GetImage", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| is_background: true, |
| }, |
| { |
| name: "background-origin", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: ["border-box", "padding-box", "content-box"], |
| typedom_types: ["Keyword"], |
| separator: " ", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "Origin", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| is_background: true, |
| }, |
| { |
| name: "background-position-x", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "PositionX", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| is_background: true, |
| computable: false, |
| }, |
| { |
| name: "background-position-y", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "PositionY", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| is_background: true, |
| computable: false, |
| }, |
| { |
| name: "background-repeat-x", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "RepeatX", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| computable: false, |
| }, |
| { |
| name: "background-repeat-y", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "RepeatY", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| computable: false, |
| }, |
| { |
| name: "background-size", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| keywords: ["auto", "cover", "contain"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| separator: " ", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "Size", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| is_background: true, |
| }, |
| { |
| name: "baseline-shift", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->misc", |
| field_template: "external", |
| type_name: "Length", |
| default_value: "Length::Fixed()", |
| style_builder_custom_functions: ["inherit", "value"], |
| keywords: ["baseline", "sub", "super"], |
| typedom_types: ["Keyword", "Percentage", "Length"], |
| }, |
| { |
| name: "border-bottom-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_custom_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-color", |
| resolver: "bottom", |
| }, |
| }, |
| { |
| name: "border-bottom-left-radius", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_size.h"], |
| default_value: "LengthSize(Length::Fixed(0), Length::Fixed(0))", |
| type_name: "LengthSize", |
| converter: "ConvertRadius", |
| typedom_types: ["Length", "Percentage"], |
| valid_for_first_letter: true, |
| is_border: true, |
| is_border_radius: true, |
| logical_property_group: { |
| name: "border-radius", |
| resolver: "bottom-left", |
| }, |
| }, |
| { |
| name: "border-bottom-right-radius", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_size.h"], |
| default_value: "LengthSize(Length::Fixed(0), Length::Fixed(0))", |
| type_name: "LengthSize", |
| converter: "ConvertRadius", |
| typedom_types: ["Length", "Percentage"], |
| valid_for_first_letter: true, |
| is_border: true, |
| is_border_radius: true, |
| logical_property_group: { |
| name: "border-radius", |
| resolver: "bottom-right", |
| }, |
| }, |
| { |
| name: "border-bottom-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "surround", |
| field_template: "keyword", |
| keywords: [ |
| "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", |
| "dashed", "solid", "double" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| type_name: "EBorderStyle", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-style", |
| resolver: "bottom", |
| }, |
| }, |
| { |
| name: "border-bottom-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/layout_unit.h"], |
| keywords: ["thin", "medium", "thick"], |
| default_value: "LayoutUnit(3)", |
| typedom_types: ["Keyword", "Length"], |
| type_name: "LayoutUnit", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-width", |
| resolver: "bottom", |
| }, |
| }, |
| { |
| name: "border-collapse", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["separate", "collapse"], |
| typedom_types: ["Keyword"], |
| default_value: "separate", |
| }, |
| { |
| name: "border-image-outset", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| interpolable: true, |
| typedom_types: ["Length", "Number"], |
| style_builder_template: "border_image", |
| style_builder_template_args: { |
| modifier_type: "Outset", |
| }, |
| valid_for_first_letter: true, |
| is_border: true, |
| }, |
| { |
| name: "border-image-repeat", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| keywords: ["stretch", "repeat", "round", "space"], |
| typedom_types: ["Keyword"], |
| style_builder_template: "border_image", |
| style_builder_template_args: { |
| modifier_type: "Repeat", |
| }, |
| valid_for_first_letter: true, |
| is_border: true, |
| }, |
| { |
| name: "border-image-slice", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| interpolable: true, |
| typedom_types: ["Number", "Percentage"], |
| style_builder_template: "border_image", |
| style_builder_template_args: { |
| modifier_type: "Slice", |
| }, |
| valid_for_first_letter: true, |
| is_border: true, |
| }, |
| { |
| name: "border-image-source", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| interpolable: true, |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Image"], |
| style_builder_custom_functions: ["value"], |
| valid_for_first_letter: true, |
| is_border: true, |
| }, |
| { |
| name: "border-image-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| interpolable: true, |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage", "Number"], |
| style_builder_template: "border_image", |
| style_builder_template_args: { |
| modifier_type: "Width", |
| }, |
| valid_for_first_letter: true, |
| is_border: true, |
| }, |
| { |
| name: "border-left-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_custom_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-color", |
| resolver: "left", |
| }, |
| }, |
| { |
| name: "border-left-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "surround", |
| field_template: "keyword", |
| keywords: [ |
| "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", |
| "dashed", "solid", "double" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| type_name: "EBorderStyle", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-style", |
| resolver: "left", |
| }, |
| }, |
| { |
| name: "border-left-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/layout_unit.h"], |
| keywords: ["thin", "medium", "thick"], |
| default_value: "LayoutUnit(3)", |
| typedom_types: ["Keyword", "Length"], |
| type_name: "LayoutUnit", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-width", |
| resolver: "left", |
| }, |
| }, |
| { |
| name: "border-right-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_custom_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-color", |
| resolver: "right", |
| }, |
| }, |
| { |
| name: "border-right-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "surround", |
| field_template: "keyword", |
| keywords: [ |
| "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", |
| "dashed", "solid", "double" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| type_name: "EBorderStyle", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-style", |
| resolver: "right", |
| }, |
| }, |
| { |
| name: "border-right-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/layout_unit.h"], |
| keywords: ["thin", "medium", "thick"], |
| default_value: "LayoutUnit(3)", |
| typedom_types: ["Keyword", "Length"], |
| type_name: "LayoutUnit", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-width", |
| resolver: "right", |
| }, |
| }, |
| { |
| name: "border-top-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_custom_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-color", |
| resolver: "top", |
| }, |
| }, |
| { |
| name: "border-top-left-radius", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_size.h"], |
| default_value: "LengthSize(Length::Fixed(0), Length::Fixed(0))", |
| type_name: "LengthSize", |
| converter: "ConvertRadius", |
| typedom_types: ["Length", "Percentage"], |
| valid_for_first_letter: true, |
| is_border: true, |
| is_border_radius: true, |
| logical_property_group: { |
| name: "border-radius", |
| resolver: "top-left", |
| }, |
| }, |
| { |
| name: "border-top-right-radius", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_size.h"], |
| default_value: "LengthSize(Length::Fixed(0), Length::Fixed(0))", |
| type_name: "LengthSize", |
| converter: "ConvertRadius", |
| typedom_types: ["Length", "Percentage"], |
| valid_for_first_letter: true, |
| is_border: true, |
| is_border_radius: true, |
| logical_property_group: { |
| name: "border-radius", |
| resolver: "top-right", |
| }, |
| }, |
| { |
| name: "border-top-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "surround", |
| field_template: "keyword", |
| keywords: [ |
| "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", |
| "dashed", "solid", "double" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| type_name: "EBorderStyle", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-style", |
| resolver: "top", |
| }, |
| }, |
| { |
| name: "border-top-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/layout_unit.h"], |
| keywords: ["thin", "medium", "thick"], |
| default_value: "LayoutUnit(3)", |
| typedom_types: ["Keyword", "Length"], |
| type_name: "LayoutUnit", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-width", |
| resolver: "top", |
| }, |
| }, |
| { |
| name: "bottom", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "surround", |
| field_template: "<length>", |
| keywords: ["auto"], |
| default_value: "Length()", |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "inset", |
| resolver: "bottom", |
| }, |
| }, |
| { |
| name: "box-shadow", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/core/style/shadow_list.h"], |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| type_name: "ShadowList", |
| converter: "ConvertShadowList", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| }, |
| { |
| name: "box-sizing", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "box", |
| field_template: "keyword", |
| keywords: ["content-box", "border-box"], |
| typedom_types: ["Keyword"], |
| default_value: "content-box", |
| }, |
| { |
| name: "break-after", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| // Storage for this property also covers these legacy properties: |
| // page-break-after, -webkit-column-break-after |
| field_template: "keyword", |
| keywords: [ |
| "auto", "avoid", "avoid-column", "avoid-page", "column", "left", "page", |
| "recto", "right", "verso" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| type_name: "EBreakBetween", |
| }, |
| { |
| name: "break-before", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| // Storage for this property also covers these legacy properties: |
| // page-break-before, -webkit-column-break-before |
| field_template: "keyword", |
| keywords: [ |
| "auto", "avoid", "avoid-column", "avoid-page", "column", "left", "page", |
| "recto", "right", "verso" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| type_name: "EBreakBetween", |
| }, |
| { |
| name: "break-inside", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| // Storage for this property also covers these legacy properties: |
| // page-break-inside, -webkit-column-break-inside |
| field_template: "keyword", |
| keywords: ["auto", "avoid", "avoid-column", "avoid-page"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| }, |
| { |
| name: "buffered-rendering", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["auto", "dynamic", "static"], |
| default_value: "auto", |
| }, |
| { |
| name: "caption-side", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["top", "bottom"], |
| typedom_types: ["Keyword"], |
| default_value: "top", |
| }, |
| { |
| name: "caret-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_auto_color.h"], |
| default_value: "StyleAutoColor::AutoColor()", |
| type_name: "StyleAutoColor", |
| computed_style_custom_functions: ["getter"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| keywords: ["auto", "currentcolor"], |
| typedom_types: ["Keyword"], |
| valid_for_highlight: true, |
| }, |
| { |
| name: "clear", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| computed_style_custom_functions: ["getter"], |
| keywords: ["none", "left", "right", "both", "inline-start", "inline-end"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| }, |
| { |
| name: "clip", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "visual", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_box.h"], |
| default_value: "LengthBox()", |
| type_name: "LengthBox", |
| computed_style_custom_functions: ["setter"], |
| style_builder_template: "auto", |
| converter: "ConvertClip", |
| keywords: ["auto"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "clip-path", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/clip_path_operation.h"], |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| type_name: "ClipPathOperation", |
| computed_style_custom_functions: ["getter", "setter"], |
| converter: "ConvertClipPath", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "clip-rule", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| // TODO(fs): Convert this to a keyword (requires enum massage). |
| field_template: "primitive", |
| field_size: 1, |
| include_paths: ["third_party/blink/renderer/platform/graphics/graphics_types.h"], |
| type_name: "WindRule", |
| keywords: ["nonzero", "evenodd"], |
| default_value: "RULE_NONZERO", |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "color-interpolation", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| field_template: "keyword", |
| type_name: "EColorInterpolation", |
| keywords: ["auto", "srgb", "linearrgb"], |
| default_value: "srgb", |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "color-interpolation-filters", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| field_template: "keyword", |
| type_name: "EColorInterpolation", |
| keywords: ["auto", "srgb", "linearrgb"], |
| default_value: "linearrgb", |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "color-rendering", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["auto", "optimizespeed", "optimizequality"], |
| default_value: "auto", |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "color-scheme", |
| field_group: "*", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| inherited: true, |
| include_paths: ["third_party/blink/public/mojom/frame/color_scheme.mojom-blink.h"], |
| type_name: "Vector<AtomicString>", |
| default_value: "Vector<AtomicString, 0>()", |
| field_template: "external", |
| valid_for_highlight: true, |
| computable: false, |
| }, |
| { |
| name: "column-fill", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["balance", "auto"], |
| default_value: "balance", |
| getter: "GetColumnFill", |
| typedom_types: ["Keyword"], |
| computable: false, |
| }, |
| { |
| name: "contain", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_size: 5, |
| field_template: "primitive", |
| default_value: "kContainsNone", |
| name_for_methods: "Contain", |
| type_name: "unsigned", |
| converter: "ConvertFlags<Containment>", |
| keywords: ["none", "strict", "content", "size", "layout", "style", "paint", "inline-size", "block-size"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| }, |
| { |
| name: "contain-intrinsic-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_intrinsic_length.h"], |
| keywords: ["auto", "none"], |
| default_value: "absl::nullopt", |
| type_name: "absl::optional<StyleIntrinsicLength>", |
| converter: "ConvertIntrinsicDimension", |
| }, |
| { |
| name: "contain-intrinsic-height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_intrinsic_length.h"], |
| keywords: ["auto", "none"], |
| default_value: "absl::optional<StyleIntrinsicLength>()", |
| type_name: "absl::optional<StyleIntrinsicLength>", |
| converter: "ConvertIntrinsicDimension", |
| }, |
| { |
| name: "container-name", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| type_name: "AtomicString", |
| default_value: "AtomicString()", |
| field_group: "*", |
| field_template: "external", |
| converter: "ConvertContainerName", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| runtime_flag: "CSSContainerQueries", |
| }, |
| { |
| name: "container-type", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: ["none", "block-size", "inline-size", "size"], |
| field_group: "*", |
| field_size: 2, |
| field_template: "primitive", |
| default_value: "kContainerTypeNone", |
| type_name: "unsigned", |
| converter: "ConvertFlags<EContainerType>", |
| typedom_types: ["Keyword"], |
| runtime_flag: "CSSContainerQueries", |
| }, |
| { |
| name: "content", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/content_data.h"], |
| wrapper_pointer_name: "Persistent", |
| default_value: "nullptr", |
| separator: ",", |
| type_name: "ContentData", |
| computed_style_custom_functions: ["getter", "setter"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| valid_for_marker: true, |
| tree_scoped_value: true, |
| }, |
| { |
| name: "counter-increment", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_template: "counter", |
| style_builder_template_args: { |
| action: "Increment", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| }, |
| { |
| name: "counter-reset", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_template: "counter", |
| style_builder_template_args: { |
| action: "Reset", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| }, |
| { |
| name: "counter-set", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_template: "counter", |
| style_builder_template_args: { |
| action: "Set", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| }, |
| { |
| name: "cursor", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_template: "keyword", |
| keywords: [ |
| "auto", "default", "none", "context-menu", "help", "pointer", |
| "progress", "wait", "cell", "crosshair", "text", "vertical-text", |
| "alias", "copy", "move", "no-drop", "not-allowed", "e-resize", |
| "n-resize", "ne-resize", "nw-resize", "s-resize", "se-resize", |
| "sw-resize", "w-resize", "ew-resize", "ns-resize", "nesw-resize", |
| "nwse-resize", "col-resize", "row-resize", "all-scroll", "zoom-in", |
| "zoom-out", "grab", "grabbing" |
| ], |
| default_value: "auto", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| typedom_types: ["Keyword"], |
| valid_for_highlight: true, |
| }, |
| { |
| name: "cx", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->geometry", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| typedom_types: ["Length", "Percentage"], |
| converter: "ConvertLength", |
| }, |
| { |
| name: "cy", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->geometry", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| typedom_types: ["Length", "Percentage"], |
| converter: "ConvertLength", |
| }, |
| { |
| name: "d", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->geometry", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/core/style/style_path.h"], |
| wrapper_pointer_name: "scoped_refptr", |
| type_name: "StylePath", |
| default_value: "nullptr", |
| converter: "ConvertPathOrNone", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "display", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: [ |
| "inline", "block", "list-item", "inline-block", "table", "inline-table", |
| "table-row-group", "table-header-group", "table-footer-group", |
| "table-row", "table-column-group", "table-column", "table-cell", |
| "table-caption", "-webkit-box", "-webkit-inline-box", "flex", |
| "inline-flex", "grid", "inline-grid", "contents", "flow-root", "none" |
| ], |
| typedom_types: ["Keyword"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| }, |
| { |
| name: "dominant-baseline", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["auto", "alphabetic", "ideographic", "middle", "central", "mathematical", "hanging", |
| "use-script", "no-change", "reset-size", "text-after-edge", "text-before-edge"], |
| default_value: "auto", |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "empty-cells", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["show", "hide"], |
| typedom_types: ["Keyword"], |
| default_value: "show", |
| }, |
| { |
| name: "fill", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| inherited: true, |
| field_group: "svg->fill", |
| field_template: "external", |
| type_name: "SVGPaint", |
| include_paths: ["third_party/blink/renderer/core/style/svg_paint.h"], |
| default_value: "SVGPaint(Color::kBlack)", |
| name_for_methods: "FillPaint", |
| converter: "ConvertSVGPaint", |
| style_builder_template: "color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialFillPaint", |
| }, |
| valid_for_highlight: true, |
| }, |
| { |
| name: "fill-opacity", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "svg->fill", |
| field_template: "primitive", |
| type_name: "float", |
| default_value: "1", |
| converter: "ConvertAlpha", |
| typedom_types: ["Number"], |
| }, |
| { |
| name: "fill-rule", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| // TODO(fs): Convert this to a keyword (requires enum massage). |
| field_template: "primitive", |
| field_size: 1, |
| include_paths: ["third_party/blink/renderer/platform/graphics/graphics_types.h"], |
| type_name: "WindRule", |
| keywords: ["nonzero", "evenodd"], |
| default_value: "RULE_NONZERO", |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "filter", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_filter_data.h"], |
| wrapper_pointer_name: "Persistent", |
| default_value: "MakeGarbageCollected<StyleFilterData>()", |
| type_name: "StyleFilterData", |
| computed_style_custom_functions: ["initial", "getter", "setter"], |
| style_builder_custom_functions: ["value"], |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "flex-basis", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length::Auto()", |
| converter: "ConvertLengthSizing", |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| keywords: ["auto", "fit-content", "min-content", "max-content", "content"], |
| }, |
| { |
| name: "flex-direction", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| typedom_types: ["Keyword"], |
| keywords: ["row", "row-reverse", "column", "column-reverse"], |
| default_value: "row", |
| }, |
| { |
| name: "flex-grow", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0f", |
| type_name: "float", |
| typedom_types: ["Number"], |
| }, |
| { |
| name: "flex-shrink", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "1.0f", |
| type_name: "float", |
| typedom_types: ["Number"], |
| }, |
| { |
| name: "flex-wrap", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| typedom_types: ["Keyword"], |
| keywords: ["nowrap", "wrap", "wrap-reverse"], |
| default_value: "nowrap", |
| }, |
| { |
| name: "float", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| computed_style_custom_functions: ["getter"], |
| keywords: ["none", "left", "right", "inline-start", "inline-end"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| name_for_methods: "Floating", |
| type_name: "EFloat", |
| valid_for_first_letter: true, |
| }, |
| { |
| name: "flood-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "svg->misc", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(Color::kBlack)", |
| type_name: "StyleColor", |
| style_builder_template: "color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialFloodColor", |
| }, |
| converter: "ConvertStyleColor", |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "flood-opacity", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->misc", |
| field_template: "primitive", |
| type_name: "float", |
| default_value: "1", |
| converter: "ConvertAlpha", |
| typedom_types: ["Number"], |
| }, |
| { |
| name: "grid-auto-columns", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/grid_track_list.h"], |
| default_value: "GridTrackList(GridTrackSize(Length::Auto()))", |
| type_name: "GridTrackList", |
| converter: "ConvertGridTrackSizeList", |
| keywords: ["auto", "min-content", "max-content"], |
| typedom_types: ["Keyword", "Length", "Percentage", "Flex"], |
| separator: " " |
| }, |
| { |
| name: "grid-auto-flow", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*", |
| field_size: 4, // FIXME: Make this use "kGridAutoFlowBits". |
| field_template: "primitive", |
| default_value: "kAutoFlowRow", |
| type_name: "GridAutoFlow", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertGridAutoFlow", |
| keywords: ["row", "column"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "grid-auto-rows", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/grid_track_list.h"], |
| default_value: "GridTrackList(GridTrackSize(Length::Auto()))", |
| type_name: "GridTrackList", |
| converter: "ConvertGridTrackSizeList", |
| keywords: ["auto", "min-content", "max-content"], |
| typedom_types: ["Keyword", "Length", "Percentage", "Flex"], |
| separator: " " |
| }, |
| { |
| name: "grid-column-end", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/grid_position.h"], |
| default_value: "GridPosition()", |
| type_name: "GridPosition", |
| keywords: ["auto"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertGridPosition", |
| }, |
| { |
| name: "grid-column-start", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/grid_position.h"], |
| default_value: "GridPosition()", |
| type_name: "GridPosition", |
| keywords: ["auto"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertGridPosition", |
| }, |
| { |
| name: "grid-row-end", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/grid_position.h"], |
| default_value: "GridPosition()", |
| type_name: "GridPosition", |
| keywords: ["auto"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertGridPosition", |
| }, |
| { |
| name: "grid-row-start", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/grid_position.h"], |
| default_value: "GridPosition()", |
| type_name: "GridPosition", |
| keywords: ["auto"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertGridPosition", |
| }, |
| { |
| name: "grid-template-areas", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "grid-template-columns", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| layout_dependent: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/grid_track_list.h"], |
| default_value: "GridTrackList()", |
| type_name: "GridTrackList", |
| style_builder_template: "grid", |
| style_builder_template_args: { |
| type: "Column", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "grid-template-rows", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| layout_dependent: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/grid_track_list.h"], |
| default_value: "GridTrackList()", |
| type_name: "GridTrackList", |
| style_builder_template: "grid", |
| style_builder_template_args: { |
| type: "Row", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| field_template: "<length>", |
| keywords: ["auto", "fit-content", "min-content", "max-content"], |
| default_value: "Length()", |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthSizing", |
| logical_property_group: { |
| name: "size", |
| resolver: "vertical", |
| }, |
| }, |
| { |
| name: "hyphens", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["none", "manual", "auto"], |
| default_value: "manual", |
| type_name: "Hyphens", |
| typedom_types: ["Keyword"], |
| valid_for_marker: true, |
| }, |
| { |
| name: "image-rendering", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: [ |
| "auto", "optimizespeed", "optimizequality", |
| "-webkit-optimize-contrast", "pixelated" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| }, |
| { |
| name: "image-orientation", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "true", |
| name_for_methods: "RespectImageOrientation", |
| type_name: "bool", |
| converter: "ConvertImageOrientation", |
| }, |
| { |
| name: "isolation", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["auto", "isolate"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| }, |
| { |
| name: "justify-content", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_content_alignment_data.h"], |
| default_value: "StyleContentAlignmentData(ContentPosition::kNormal, ContentDistributionType::kDefault, OverflowAlignment::kDefault)", |
| type_name: "StyleContentAlignmentData", |
| converter: "ConvertContentAlignmentData", |
| }, |
| { |
| name: "justify-items", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_self_alignment_data.h"], |
| default_value: "StyleSelfAlignmentData(ItemPosition::kLegacy, OverflowAlignment::kDefault)", |
| type_name: "StyleSelfAlignmentData", |
| converter: "ConvertSelfOrDefaultAlignmentData", |
| }, |
| { |
| name: "justify-self", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_self_alignment_data.h"], |
| default_value: "StyleSelfAlignmentData(ItemPosition::kAuto, OverflowAlignment::kDefault)", |
| type_name: "StyleSelfAlignmentData", |
| converter: "ConvertSelfOrDefaultAlignmentData", |
| }, |
| { |
| name: "left", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "surround", |
| field_template: "<length>", |
| keywords: ["auto"], |
| default_value: "Length()", |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "inset", |
| resolver: "left", |
| }, |
| }, |
| { |
| name: "letter-spacing", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| converter: "ConvertSpacing", |
| keywords: ["normal"], |
| typedom_types: ["Keyword", "Length"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "lighting-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "svg->misc", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(Color::kWhite)", |
| type_name: "StyleColor", |
| style_builder_template: "color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialLightingColor", |
| }, |
| converter: "ConvertStyleColor", |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "line-height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "inherited", |
| field_template: "<length>", |
| default_value: "Length::Percent(-100.0)", |
| getter: "SpecifiedLineHeight", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertLineHeight", |
| keywords: ["normal"], |
| typedom_types: ["Keyword", "Length", "Number", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "line-height-step", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| runtime_flag: "CSSSnapSize", |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0", |
| type_name: "uint8_t", |
| converter: "ConvertComputedLength<uint8_t>", |
| typedom_types: ["Length"], |
| }, |
| { |
| name: "list-style-image", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_image.h"], |
| wrapper_pointer_name: "Persistent", |
| default_value: "nullptr", |
| typedom_types: ["Keyword", "Image"], |
| type_name: "StyleImage", |
| computed_style_custom_functions: ["getter", "setter"], |
| style_builder_custom_functions: ["value"], |
| keywords: ["none"] |
| }, |
| { |
| name: "list-style-position", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["outside", "inside"], |
| typedom_types: ["Keyword"], |
| default_value: "outside", |
| }, |
| { |
| name: "list-style-type", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/list_style_type_data.h"], |
| wrapper_pointer_name: "Persistent", |
| default_value: "ListStyleTypeData::CreateCounterStyle(\"disc\", nullptr)", |
| type_name: "ListStyleTypeData", |
| keywords: [ |
| "disc", "circle", "square", "disclosure-open", "disclosure-closed", |
| "decimal", "none" |
| ], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| tree_scoped_value: true, |
| }, |
| { |
| name: "margin-bottom", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "surround", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| converter: "ConvertQuirkyLength", |
| computed_style_custom_functions: ["setter"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| logical_property_group: { |
| name: "margin", |
| resolver: "bottom", |
| }, |
| }, |
| { |
| name: "margin-left", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "surround", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| converter: "ConvertQuirkyLength", |
| computed_style_custom_functions: ["setter"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| logical_property_group: { |
| name: "margin", |
| resolver: "left", |
| }, |
| }, |
| { |
| name: "margin-right", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "surround", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| converter: "ConvertQuirkyLength", |
| computed_style_custom_functions: ["setter"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| logical_property_group: { |
| name: "margin", |
| resolver: "right", |
| }, |
| }, |
| { |
| name: "margin-top", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "surround", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| converter: "ConvertQuirkyLength", |
| computed_style_custom_functions: ["setter"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| logical_property_group: { |
| name: "margin", |
| resolver: "top", |
| }, |
| }, |
| { |
| name: "marker-end", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg->inherited_resources", |
| field_template: "pointer", |
| type_name: "StyleSVGResource", |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| name_for_methods: "MarkerEndResource", |
| converter: "ConvertElementReference", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "marker-mid", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg->inherited_resources", |
| field_template: "pointer", |
| type_name: "StyleSVGResource", |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| name_for_methods: "MarkerMidResource", |
| converter: "ConvertElementReference", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "marker-start", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg->inherited_resources", |
| field_template: "pointer", |
| type_name: "StyleSVGResource", |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| name_for_methods: "MarkerStartResource", |
| converter: "ConvertElementReference", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "mask", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "svg", |
| field_template: "pointer", |
| type_name: "StyleSVGResource", |
| include_paths: ["third_party/blink/renderer/core/style/style_svg_resource.h"], |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| name_for_methods: "MaskerResource", |
| converter: "ConvertElementReference", |
| computable: false, |
| }, |
| { |
| name: "mask-type", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["luminance", "alpha"], |
| typedom_types: ["Keyword"], |
| default_value: "luminance", |
| }, |
| { |
| name: "math-shift", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| inherited: true, |
| keywords: ["normal", "compact"], |
| typedom_types: ["Keyword"], |
| default_value: "normal", |
| runtime_flag: "CSSMathShift" |
| }, |
| { |
| name: "math-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| inherited: true, |
| keywords: ["normal", "compact"], |
| typedom_types: ["Keyword"], |
| default_value: "normal", |
| runtime_flag: "CSSMathStyle" |
| }, |
| { |
| name: "max-height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length::None()", |
| converter: "ConvertLengthMaxSizing", |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| logical_property_group: { |
| name: "max-size", |
| resolver: "vertical", |
| }, |
| }, |
| { |
| name: "max-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length::None()", |
| converter: "ConvertLengthMaxSizing", |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| logical_property_group: { |
| name: "max-size", |
| resolver: "horizontal", |
| }, |
| }, |
| { |
| name: "min-height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length()", |
| converter: "ConvertLengthSizing", |
| typedom_types: ["Length", "Percentage"], |
| logical_property_group: { |
| name: "min-size", |
| resolver: "vertical", |
| }, |
| }, |
| { |
| name: "min-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length()", |
| converter: "ConvertLengthSizing", |
| typedom_types: ["Length", "Percentage"], |
| logical_property_group: { |
| name:
|