| // Copyright 2017 The Chromium Authors |
| // 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: { |
| }, |
| |
| // - alternative_of: "other-property" |
| // |
| // Makes the the property an "alternative" of another property. |
| // An alternative property has a separate CSSProperty class which (based on |
| // runtime flags) is used internally in place of the main CSSProperty class. |
| // This makes it possible to e.g. switch a property definition from a |
| // longhand to a shorthand at runtime. |
| // |
| // When parsing text (e.g. "animation") into a CSSPropertyID, the |
| // alternative will be chosen if it is enabled. Otherwise, the main |
| // property will be chosen. |
| // |
| // A main property may only have a single alternative property. It is |
| // however possible to have an alternative of an alternative, in which case |
| // the chain is followed. In other words, we choose the "innermost" |
| // alternative that's enabled. |
| // |
| // Note that an alternative property ignores any runtime_flag on the main |
| // property. |
| alternative_of: { |
| valid_type: "str", |
| }, |
| |
| // - 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", |
| // A derived flag is derived from other information on ComputedStyle. |
| // It has no setters, and is instead calculated on first access by |
| // the function specified by 'derived_from'. |
| // |
| // Derived flags must be marked as 'mutable', and can not have a |
| // 'field_group' (i.e. must exist on the top level of ComputedStyle). |
| // |
| // See computed_style_extra_fields.json5 for examples of derived flags. |
| "derived_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]+>" |
| ], |
| }, |
| |
| // - anchor_mode |
| // Determines whether or not anchor() / anchor-size() queries are allowed |
| // in the relevant property. |
| // |
| // If omitted, no anchor queries are allowed. |
| // |
| // See also AnchorScope::Mode. |
| anchor_mode: { |
| valid_values: [ |
| // anchor() |
| "left", |
| "right", |
| "top", |
| "bottom", |
| |
| // anchor-size() |
| "width", |
| "height", |
| ] |
| }, |
| |
| // When specified on a property/field, this will generate code within |
| // ComputedStyleBase::FieldInvalidationDiff to check if the property/field |
| // has changed, and if so set a flag indicating this. |
| // |
| // Example usage: |
| // if (field_diff & kBorderRadius) { |
| // diff.SetBorderRadiusChanged(); |
| // } |
| // |
| // The diff can also be used to "guard" against more expensive checks, e.g: |
| // if ((field_diff & kOutline) && !OutlineVisuallyEqual(other)) { |
| // return true; |
| // } |
| // |
| // This is to be **only** used within ComputedStyle::VisualInvalidationDiff |
| // and will generally be more efficient than comparing fields directly. |
| invalidate: { |
| default: [], |
| valid_type: "list", |
| valid_values: [ |
| "accent-color", |
| "background", |
| "background-color", |
| "background-current-color", |
| "blend-mode", |
| "border-image", |
| "border-outline-visited-color", |
| "border-radius", |
| "border-visual", |
| "border-width", |
| "clip", |
| "clip-path", |
| "color", |
| "compositing", |
| "filter-data", |
| "has-transform", |
| "inset", |
| "layout", |
| "margin", |
| "mask", |
| "opacity", |
| "outline", |
| "out-of-flow", |
| "paint", |
| "reshape", |
| "scroll-anchor", |
| "scrollbar-color", |
| "scrollbar-style", |
| "stroke", |
| "text-decoration", |
| "transform-data", |
| "transform-other", |
| "transform-property", |
| "visibility", |
| "visual-overflow", |
| "z-index", |
| ], |
| }, |
| |
| // Valid for field_template:derived_flag only. This specifies the function |
| // on ComputedStyle used to calculate the flag. |
| derived_from: { |
| valid_type: "str", |
| }, |
| |
| // - 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", "Member", "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. Note that 'name_for_methods' also determines the name |
| // of the generated field on ComputedStyle. |
| // - 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: { |
| }, |
| |
| // - computed_style_protected_functions |
| // |
| // Any function specified in the list will be generated with protected |
| // visibility. This is useful if the default-generated getter function is |
| // typically not what clients want to use. |
| // |
| // For example, the Clear getter is protected to force clients to take |
| // TextDirection into account. |
| computed_style_protected_functions: { |
| default: [], |
| valid_type: "list", |
| valid_values: ["getter", "setter", "resetter"], |
| }, |
| |
| // - computed_style_custom_functions |
| // |
| // Any function specified in the list will be generated with protected |
| // visibility and an "Internal" suffix. A custom accessor (with the suffix- |
| // less name) must be manually provided on ComputedStyle. This is useful for |
| // e.g. properties that have special behavior that affects the computed |
| // value of the property. |
| // |
| // For example, the computed value of border-left-width magically becomes |
| // zero if border-left-style is none or hidden. The generated code can not |
| // express this, hence a custom one is specified. |
| // |
| // Any custom function automatically gets protected visiblity, and therefore |
| // it is not valid to specify a function as both custom and explicitly |
| // protected (using computed_style_protected_functions). |
| computed_style_custom_functions: { |
| default: [], |
| valid_type: "list", |
| valid_values: ["initial", "getter", "setter", "resetter"], |
| }, |
| |
| // - 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", |
| "scroll-start", "scroll-start-target", "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: 1 |
| // The priority level for computing the property. Properties with the same |
| // priority level are grouped and computed in alphabetical order. |
| // Anything above zero are designated "high priority" and done before |
| // certain operations, like updating fonts. (Most high-priority properties |
| // are 1; 2 and higher are used only in special circumstances.) This mechanism |
| // is primarily useful for properties that influence other properties, |
| // like line-height influencing lh units. Negative values are not used. |
| priority: { |
| default: 0, |
| valid_type: "int", |
| }, |
| |
| // - 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_legacy: true |
| // |
| // Theoretically matches |
| // https://drafts.csswg.org/css-pseudo-4/#highlight-styling, |
| // but includes additional properties for compatibility reasons. |
| // Applied to highlight pseudos that use originating inheritance |
| // instead of highlight inheritance. |
| valid_for_highlight_legacy: { |
| 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", |
| }, |
| |
| // Valid @page properties and descriptors when PageMarginBoxes aren't |
| // enabled. This is limited to the set of descriptors and properties |
| // that have an effect when this feature is disabled (essentially page |
| // size, margins and orientation). |
| valid_for_limited_page_context: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // Applicable @page properties and descriptors. |
| valid_for_page_context: { |
| 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_visited_highlight_colors |
| // Like the previous one but for visited internal properties. |
| is_visited_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", |
| }, |
| |
| // Whether changing this property is so independent that we can apply |
| // a change to them incrementally on top of the old style. This happens |
| // only when inline style is changed. Conceptually, this could be a blocklist, |
| // but being conservative, we have chosen to make it an allowlist. |
| // The properties with known issue are explicitly marked as false, |
| // so changing the default from false to true _should_ have no ill effects, |
| // but bugs are of course possible. (There is a DCHECK verifying that we |
| // computed the correct style when this optimization is in effect.) |
| // |
| // Since animations can affect pretty much anything else, and we don't |
| // support their interactions anyway (see CanApplyInlineStyleIncrementally()), |
| // animation properties are also never marked as supporting incremental style. |
| // This is verified in validate_property(). |
| supports_incremental_style: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // If false, this property is known to cause problems if setting |
| // it on an element's inline style will cause problems with computing |
| // that element's style incrementally. |
| // |
| // NOTE: Setting false here is probably indicative of a bug. Long-term, |
| // we should fix all of these and remove the flag. |
| idempotent: { |
| default: true, |
| valid_type: "bool", |
| }, |
| |
| // If true, this property will accept a CSSNumericLiteralValue |
| // (created by a fast-path parser), with no restrictions on range. |
| // (NaN and infinities will be sent through the normal ParseSingleValue |
| // path.) A typical case is the properties that can accept an alpha value; |
| // percent values will take the slow paths, but simple numbers will be sent |
| // directly through. |
| accepts_numeric_literal: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // If true, then the ComputedStyle field for this property overlaps with |
| // another property. |
| // |
| // Overlapping properties are *partially* overlapping, or do otherwise not |
| // have compatible or interchangeable values with each other. |
| overlapping: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // Like 'overlapping', but set on -webkit-prefixed properties that should |
| // ultimately be removed. |
| // |
| // Note that properties that are legacy_overlapping are also overlapping |
| // (i.e. legacy_overlapping:true implies overlapping:true). |
| legacy_overlapping: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - valid_for_keyframe: true |
| // |
| // Whether the property can be used in @keyframes. |
| // https://www.w3.org/TR/css-animations-1/#typedef-keyframe-block |
| valid_for_keyframe: { |
| default: true, |
| valid_type: "bool", |
| }, |
| |
| // Whether the property can be applied to <permission> elements. |
| // See https://github.com/WICG/PEPC/blob/main/explainer.md#locking-the-pepc-style |
| valid_for_permission_element: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - valid_for_position_try: true |
| // |
| // Whether the property can be used in a @position-try rule |
| // https://drafts.csswg.org/css-anchor-1/#fallback-rule |
| valid_for_position_try: { |
| default: false, |
| valid_type: "bool", |
| }, |
| |
| // - affected_by_zoom: true |
| // |
| // Whether or not the computed value of this property is affected by |
| // the effective zoom factor. Generally, all computed values that contain |
| // a blink::Length are affected by zoom. |
| // |
| // Setting this flag to 'true' will change the inheritance behavior |
| // (Longhand::ApplyInherit) to effectively "rezoom" the inherited value. |
| // |
| // https://github.com/w3c/csswg-drafts/issues/9397 |
| affected_by_zoom: { |
| 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-composition", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| keywords: ["replace", "add", "accumulate"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "Composition", |
| }, |
| typedom_types: ["Keyword"], |
| separator: ",", |
| include_paths: ["third_party/blink/renderer/core/animation/effect_model.h"], |
| default_value: "EffectModel::kCompositeReplace", |
| type_name: "EffectModel::CompositeOperation", |
| valid_for_marker: true, |
| }, |
| { |
| name: "animation-delay", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "DelayStart", |
| }, |
| typedom_types: ["Time"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| }, |
| { |
| // TODO(futhark): Set the TreeScope on CSSAnimationData. |
| 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, |
| is_animation_property: true, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| }, |
| { |
| name: "animation-range-start", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "RangeStart", |
| }, |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "animation-range-end", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "animation", |
| style_builder_template_args: { |
| attribute: "RangeEnd", |
| }, |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| 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: "ScrollTimeline", |
| is_animation_property: true, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "transition-delay", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "transition", |
| style_builder_template_args: { |
| attribute: "DelayStart", |
| }, |
| typedom_types: ["Time"], |
| separator: ",", |
| valid_for_marker: true, |
| is_animation_property: true, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "transition-behavior", |
| keywords: ["normal", "allow-discrete"], |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| typedom_types: ["Keyword"], |
| separator: ",", |
| style_builder_template: "transition", |
| style_builder_template_args: { |
| attribute: "Behavior", |
| }, |
| valid_for_marker: true, |
| is_animation_property: true, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| }, |
| { |
| 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, |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| }, |
| |
| // 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_protected_functions: ["getter"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: 1, |
| 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_legacy: true, |
| valid_for_highlight: true, |
| is_highlight_colors: true, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["accent-color", "background-current-color", "border-visual", "color", "outline"], |
| }, |
| { |
| 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: 1, |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| invalidate: ["reshape"], |
| }, |
| { |
| 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: 1, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-kerning", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "Kerning", |
| converter: "ConvertFontKerning", |
| type_name: "FontDescription::Kerning", |
| priority: 1, |
| keywords: ["auto", "normal", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "font-optical-sizing", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "FontOpticalSizing", |
| converter: "ConvertFontOpticalSizing", |
| type_name: "OpticalSizing", |
| priority: 1, |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "font-palette", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal" ], |
| interpolable: true, |
| inherited: true, |
| font: true, |
| converter: "ConvertFontPalette", |
| type_name: "FontPalette", |
| priority: 1, |
| keywords: ["normal", "light", "dark"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-size", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "Size", |
| getter: "GetSize", |
| converter: "ConvertFontSize", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| valid_for_page_context: 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: 1, |
| keywords: ["none", "ex-height", "cap-height", "ch-width", "ic-width", "ic-height", "from-font"], |
| typedom_types: ["Keyword", "Number"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-stretch", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "Stretch", |
| converter: "ConvertFontStretch", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "font-style", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "Style", |
| converter: "ConvertFontStyle", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "font-variant-ligatures", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantLigatures", |
| type_name: "VariantLigatures", |
| converter: "ConvertFontVariantLigatures", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-variant-caps", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantCaps", |
| converter: "ConvertFontVariantCaps", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-variant-east-asian", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantEastAsian", |
| converter: "ConvertFontVariantEastAsian", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-variant-numeric", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantNumeric", |
| converter: "ConvertFontVariantNumeric", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-variant-alternates", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| type_name: "FontVariantAlternates", |
| name_for_methods: "FontVariantAlternates", |
| converter: "ConvertFontVariantAlternates", |
| priority: 1, |
| keywords: [ |
| "normal", |
| ], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-weight", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "Weight", |
| converter: "ConvertFontWeight", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "font-synthesis-weight", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "FontSynthesisWeight", |
| type_name: "FontDescription::FontSynthesisWeight", |
| priority: 1, |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "font-synthesis-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "FontSynthesisStyle", |
| type_name: "FontDescription::FontSynthesisStyle", |
| priority: 1, |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "font-synthesis-small-caps", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "FontSynthesisSmallCaps", |
| type_name: "FontDescription::FontSynthesisSmallCaps", |
| priority: 1, |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "font-feature-settings", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "FeatureSettings", |
| converter: "ConvertFontFeatureSettings", |
| priority: 1, |
| keywords: ["normal"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| computable: false, |
| // See comment on font. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "font-variation-settings", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| font: true, |
| name_for_methods: "VariationSettings", |
| converter: "ConvertFontVariationSettings", |
| priority: 1, |
| 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, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-variant-emoji", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| runtime_flag: "FontVariantEmoji", |
| font: true, |
| name_for_methods: "VariantEmoji", |
| type_name: "FontDescription::FontVariantEmoji", |
| converter: "ConvertFontVariantEmoji", |
| priority: 1, |
| keywords: ["normal", "text", "emoji", "unicode"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-variant-position", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| name_for_methods: "VariantPosition", |
| type_name: "FontDescription::FontVariantPosition", |
| converter: "ConvertFontVariantPosition", |
| priority: 1, |
| keywords: ["normal", "sub", "super"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "-webkit-font-smoothing", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| type_name: "FontSmoothingMode", |
| priority: 1, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "forced-color-adjust", |
| field_group: "*", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| runtime_flag: "ForcedColors", |
| field_template: "keyword", |
| // Affects the computed value of color when it is inherited and |
| // forced-color- adjust is set to preserve-parent-color. |
| priority: 2, |
| keywords: ["auto", "none", "preserve-parent-color"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| valid_for_highlight_legacy: true, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "field-sizing", |
| field_group: "visual", |
| field_template: "keyword", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| keywords: ["fixed", "content"], |
| default_value: "fixed", |
| typedom_types: ["Keyword"], |
| invalidate: ["layout"], |
| }, |
| { |
| name: "-webkit-locale", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| style_builder_custom_functions: ["value"], |
| priority: 1, |
| }, |
| { |
| name: "math-depth", |
| default_value: 0, |
| field_group: "*", |
| field_template: "primitive", |
| inherited: true, |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_custom_functions: ["value"], |
| type_name: "short", |
| typedom_types: ["Number"], |
| // Affects the computed value of 'font-size', hence needs to happen before |
| // high-priority properties. |
| priority: 2, |
| }, |
| { |
| 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: 1, |
| computable: false, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-text-orientation", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| type_name: "TextOrientation", |
| priority: 1, |
| 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", |
| "sideways-rl", "sideways-lr"], |
| typedom_types: ["Keyword"], |
| default_value: "horizontal-tb", |
| type_name: "WritingMode", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: 1, |
| valid_for_page_context: true, |
| // Incremental code does not call DidChangeWritingMode(), which influences |
| // the font. |
| supports_incremental_style: false, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-writing-mode", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| type_name: "WritingMode", |
| priority: 1, |
| 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: 1, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "zoom", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "visual", |
| field_template: "primitive", |
| default_value: "1.0", |
| type_name: "float", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: 1, |
| // Setting zoom affects the _EffectiveZoom_, which in turns affects every px value |
| // stored on ComputedStyle; see CSSToLengthConversionData::ZoomedComputedPixels. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| 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_protected_functions: ["getter"], |
| keywords: ["auto", "currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleAutoColor", |
| default_value: "StyleAutoColor::AutoColor()", |
| computable: true, |
| invalidate: ["accent-color"], |
| }, |
| { |
| 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", |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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", |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "anchor-name", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal" ], |
| include_paths: ["third_party/blink/renderer/core/style/scoped_css_name.h"], |
| type_name: "ScopedCSSNameList", |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| field_group: "*", |
| field_template: "external", |
| converter: "ConvertAnchorName", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "anchor-scope", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal" ], |
| include_paths: ["third_party/blink/renderer/core/style/scoped_css_name.h"], |
| type_name: "ScopedCSSNameList", |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| field_group: "*", |
| field_template: "external", |
| converter: "ConvertAnchorScope", |
| keywords: ["none", "all"], |
| typedom_types: ["Keyword"], |
| runtime_flag: "CSSAnchorScope", |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "aspect-ratio", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| 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, |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "backdrop-filter", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/filter_operations.h"], |
| default_value: "FilterOperations()", |
| type_name: "FilterOperations", |
| computed_style_custom_functions: ["initial"], |
| style_builder_custom_functions: ["value"], |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["compositing"], |
| }, |
| { |
| name: "backface-visibility", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["visible", "hidden"], |
| typedom_types: ["Keyword"], |
| default_value: "visible", |
| invalidate: ["compositing"], |
| }, |
| { |
| 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, |
| supports_incremental_style: true, |
| valid_for_page_context: 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: false, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "background-clip", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: ["border-box", "padding-box", "content-box", "text"], |
| typedom_types: ["Keyword"], |
| separator: " ", |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "Clip", |
| }, |
| style_builder_custom_functions: ["value"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| is_background: true, |
| supports_incremental_style: true, |
| valid_for_page_context: 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_protected_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_legacy: true, |
| valid_for_highlight: true, |
| is_background: true, |
| is_highlight_colors: true, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["background-color"], |
| }, |
| { |
| 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, |
| supports_incremental_style: true, |
| valid_for_page_context: 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, |
| supports_incremental_style: true, |
| valid_for_page_context: 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, |
| supports_incremental_style: true, |
| valid_for_page_context: true, |
| }, |
| { |
| 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, |
| supports_incremental_style: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "background-repeat", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_template: "background_layer", |
| style_builder_template_args: { |
| fill_type: "Repeat", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| supports_incremental_style: true, |
| valid_for_page_context: true, |
| }, |
| { |
| 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, |
| supports_incremental_style: true, |
| valid_for_page_context: 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"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "baseline-source", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "box", |
| field_template: "keyword", |
| default_value: "auto", |
| keywords: ["auto", "first", "last"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout"], |
| }, |
| { |
| 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_protected_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", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-visual"], |
| }, |
| { |
| 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", |
| }, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-radius", "paint"], |
| }, |
| { |
| 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", |
| }, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-radius", "paint"], |
| }, |
| { |
| name: "border-bottom-style", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "box", |
| 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", |
| }, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-width", "border-visual"], |
| }, |
| { |
| name: "border-bottom-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "external", |
| keywords: ["thin", "medium", "thick"], |
| default_value: "3", |
| typedom_types: ["Keyword", "Length"], |
| type_name: "int", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-width", |
| resolver: "bottom", |
| }, |
| // Overlaps with -webkit-border-image. |
| overlapping: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-width", "border-visual"], |
| }, |
| { |
| name: "border-collapse", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["separate", "collapse"], |
| typedom_types: ["Keyword"], |
| default_value: "separate", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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, |
| // Overlaps with -webkit-border-image. |
| overlapping: 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, |
| // Overlaps with -webkit-border-image. |
| overlapping: 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, |
| // Overlaps with -webkit-border-image. |
| overlapping: 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, |
| // Overlaps with -webkit-border-image. |
| overlapping: 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, |
| // Overlaps with -webkit-border-image. |
| overlapping: 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_protected_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", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-visual"], |
| }, |
| { |
| name: "border-left-style", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "box", |
| 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", |
| }, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-width", "border-visual"], |
| }, |
| { |
| name: "border-left-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "external", |
| keywords: ["thin", "medium", "thick"], |
| default_value: "3", |
| typedom_types: ["Keyword", "Length"], |
| type_name: "int", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-width", |
| resolver: "left", |
| }, |
| // Overlaps with -webkit-border-image. |
| overlapping: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-width", "border-visual"], |
| }, |
| { |
| 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_protected_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", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-visual"], |
| }, |
| { |
| name: "border-right-style", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "box", |
| 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", |
| }, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-width", "border-visual"], |
| }, |
| { |
| name: "border-right-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "external", |
| keywords: ["thin", "medium", "thick"], |
| default_value: "3", |
| typedom_types: ["Keyword", "Length"], |
| type_name: "int", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-width", |
| resolver: "right", |
| }, |
| // Overlaps with -webkit-border-image. |
| overlapping: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-width", "border-visual"], |
| }, |
| { |
| 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_protected_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", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-visual"], |
| }, |
| { |
| 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", |
| }, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-radius", "paint"], |
| }, |
| { |
| 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", |
| }, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-radius", "paint"], |
| }, |
| { |
| name: "border-top-style", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "box", |
| 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", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-width", "border-visual"], |
| }, |
| { |
| name: "border-top-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "external", |
| keywords: ["thin", "medium", "thick"], |
| default_value: "3", |
| typedom_types: ["Keyword", "Length"], |
| type_name: "int", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| valid_for_first_letter: true, |
| is_border: true, |
| logical_property_group: { |
| name: "border-width", |
| resolver: "top", |
| }, |
| // Overlaps with -webkit-border-image. |
| overlapping: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["border-width", "border-visual"], |
| }, |
| { |
| 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", |
| anchor_mode: "bottom", |
| logical_property_group: { |
| name: "inset", |
| resolver: "bottom", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| invalidate: ["inset", "out-of-flow", "scroll-anchor"], |
| }, |
| { |
| name: "box-decoration-break", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "box", |
| field_template: "keyword", |
| keywords: ["slice", "clone"], |
| default_value: "slice", |
| invalidate: ["layout", "paint"], |
| runtime_flag: "BoxDecorationBreak", |
| }, |
| { |
| 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: "Member", |
| default_value: "nullptr", |
| type_name: "ShadowList", |
| converter: "ConvertShadowList", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| invalidate: ["paint", "visual-overflow"], |
| }, |
| { |
| name: "box-sizing", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| // NOTE: Naturally fits into field_group: "box", but is so commonly set |
| // that is is better to have it at the root. |
| field_template: "keyword", |
| keywords: ["content-box", "border-box"], |
| typedom_types: ["Keyword"], |
| default_value: "content-box", |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| field_group: "*", |
| keywords: [ |
| "auto", "avoid", "avoid-column", "avoid-page", "column", "left", "page", |
| "recto", "right", "verso" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| type_name: "EBreakBetween", |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| field_group: "*", |
| keywords: [ |
| "auto", "avoid", "avoid-column", "avoid-page", "column", "left", "page", |
| "recto", "right", "verso" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| type_name: "EBreakBetween", |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| field_group: "*", |
| keywords: ["auto", "avoid", "avoid-column", "avoid-page"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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_protected_functions: ["getter"], |
| converter: "ConvertStyleAutoColor", |
| keywords: ["auto", "currentcolor"], |
| typedom_types: ["Keyword"], |
| valid_for_highlight_legacy: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "clear", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| computed_style_protected_functions: ["getter"], |
| keywords: ["none", "left", "right", "both", "inline-start", "inline-end"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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"], |
| invalidate: ["clip"], |
| }, |
| { |
| 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: "Member", |
| default_value: "nullptr", |
| type_name: "ClipPathOperation", |
| computed_style_custom_functions: ["getter", "setter"], |
| converter: "ConvertClipPath", |
| keywords: ["border-box", "padding-box", "content-box", "margin-box", "fill-box", "stroke-box", "view-box", "none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["clip-path"], |
| }, |
| { |
| 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"], |
| invalidate: ["paint"], |
| }, |
| { |
| 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"], |
| invalidate: ["paint"], |
| }, |
| { |
| 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"], |
| invalidate: ["paint"], |
| }, |
| { |
| 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_legacy: true, |
| computable: false, |
| // Affects the computed value of 'color', hence needs to happen before |
| // high-priority properties. |
| priority: 2, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "column-fill", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["balance", "auto"], |
| default_value: "balance", |
| getter: "GetColumnFill", |
| typedom_types: ["Keyword"], |
| computable: false, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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, |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "contain-intrinsic-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_intrinsic_length.h"], |
| keywords: ["none"], |
| default_value: "StyleIntrinsicLength()", |
| type_name: "StyleIntrinsicLength", |
| converter: "ConvertIntrinsicDimension", |
| valid_for_permission_element: true, |
| invalidate: ["layout", "scroll-anchor"], |
| }, |
| { |
| name: "contain-intrinsic-height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "surround", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_intrinsic_length.h"], |
| keywords: ["none"], |
| default_value: "StyleIntrinsicLength()", |
| type_name: "StyleIntrinsicLength", |
| converter: "ConvertIntrinsicDimension", |
| valid_for_permission_element: true, |
| invalidate: ["layout", "scroll-anchor"], |
| }, |
| { |
| name: "container-name", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| type_name: "ScopedCSSNameList", |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| field_group: "*", |
| field_template: "external", |
| converter: "ConvertContainerName", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "container-type", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: ["normal", "inline-size", "size", "scroll-state"], |
| field_group: "*", |
| field_size: 3, |
| field_template: "primitive", |
| default_value: "kContainerTypeNormal", |
| type_name: "unsigned", |
| converter: "ConvertFlags<EContainerType, CSSValueID::kNormal>", |
| typedom_types: ["Keyword"], |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| 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: "Member", |
| default_value: "nullptr", |
| separator: ",", |
| type_name: "ContentData", |
| computed_style_custom_functions: ["getter"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| supports_incremental_style: 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, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "counter-reset", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_template: "counter", |
| style_builder_template_args: { |
| action: "Reset", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "counter-set", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_template: "counter", |
| style_builder_template_args: { |
| action: "Set", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| 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_legacy: true, |
| valid_for_marker: true, |
| valid_for_permission_element: 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", |
| supports_incremental_style: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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", |
| supports_incremental_style: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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"], |
| supports_incremental_style: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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", |
| "flow", "math", "ruby", "ruby-text", "masonry", "inline-masonry" |
| ], |
| typedom_types: ["Keyword"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| // In general many things are tweaked after-the-fact based on display/float/position |
| // (e.g. OriginalDisplay is based on display, and setting float can cause blockification), |
| // so we turn off incremental style for all them all. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "empty-cells", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["show", "hide"], |
| typedom_types: ["Keyword"], |
| default_value: "show", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["paint"], |
| }, |
| { |
| 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"], |
| accepts_numeric_literal: true, |
| invalidate: ["paint"], |
| }, |
| { |
| 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"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "filter", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/filter_operations.h"], |
| default_value: "FilterOperations()", |
| type_name: "FilterOperations", |
| computed_style_custom_functions: ["initial"], |
| style_builder_custom_functions: ["value"], |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["filter-data"], |
| }, |
| { |
| 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"], |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "flex-direction", |
| property_methods: ["CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*", |
| field_template: "keyword", |
| typedom_types: ["Keyword"], |
| keywords: ["row", "row-reverse", "column", "column-reverse"], |
| default_value: "row", |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "flex-grow", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0f", |
| type_name: "float", |
| typedom_types: ["Number"], |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "flex-shrink", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "1.0f", |
| type_name: "float", |
| typedom_types: ["Number"], |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "flex-wrap", |
| property_methods: ["CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*", |
| field_template: "keyword", |
| typedom_types: ["Keyword"], |
| keywords: ["nowrap", "wrap", "wrap-reverse"], |
| default_value: "nowrap", |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "float", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| computed_style_protected_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, |
| // See comment on display. |
| supports_incremental_style: false, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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"], |
| supports_incremental_style: true, |
| invalidate: ["paint"], |
| }, |
| { |
| 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"], |
| supports_incremental_style: true, |
| accepts_numeric_literal: true, |
| invalidate: ["paint"], |
| }, |
| { |
| 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: "NGGridTrackList(GridTrackSize(Length::Auto()))", |
| type_name: "NGGridTrackList", |
| converter: "ConvertGridTrackSizeList", |
| keywords: ["auto", "min-content", "max-content"], |
| typedom_types: ["Keyword", "Length", "Percentage", "Flex"], |
| separator: " ", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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: "NGGridTrackList(GridTrackSize(Length::Auto()))", |
| type_name: "NGGridTrackList", |
| converter: "ConvertGridTrackSizeList", |
| keywords: ["auto", "min-content", "max-content"], |
| typedom_types: ["Keyword", "Length", "Percentage", "Flex"], |
| separator: " ", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "grid-template-areas", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/computed_grid_template_areas.h"], |
| type_name: "ComputedGridTemplateAreas", |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertGridTemplateAreas", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "grid-template-columns", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| layout_dependent: true, |
| field_group: "*->grid", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/computed_grid_track_list.h"], |
| interpolable: true, |
| default_value: "ComputedGridTrackList()", |
| type_name: "ComputedGridTrackList", |
| style_builder_template: "grid", |
| style_builder_template_args: { |
| type: "GridTemplateColumns", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "grid-template-rows", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| layout_dependent: true, |
| field_group: "*->grid", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/computed_grid_track_list.h"], |
| interpolable: true, |
| default_value: "ComputedGridTrackList()", |
| type_name: "ComputedGridTrackList", |
| style_builder_template: "grid", |
| style_builder_template_args: { |
| type: "GridTemplateRows", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| 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", |
| anchor_mode: "height", |
| logical_property_group: { |
| name: "size", |
| resolver: "vertical", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["layout", "scroll-anchor"], |
| }, |
| { |
| name: "hyphenate-limit-chars", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| keywords: ["auto"], |
| type_name: "StyleHyphenateLimitChars", |
| default_value: "StyleHyphenateLimitChars()", |
| include_paths: ["third_party/blink/renderer/core/style/style_hyphenate_limit_chars.h"], |
| converter: "ConvertHyphenateLimitChars", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "popover-show-delay", |
| runtime_flag: "HTMLPopoverActionHover", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| type_name: "float", |
| interpolable: true, |
| typedom_types: ["Time"], |
| converter: "ConvertTimeValue", |
| default_value: "0.5", |
| supports_incremental_style: true, |
| }, |
| { |
| name: "popover-hide-delay", |
| runtime_flag: "HTMLPopoverActionHover", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| type_name: "float", |
| interpolable: true, |
| typedom_types: ["Time"], |
| converter: "ConvertTimeValue", |
| default_value: "HUGE_VALF", |
| supports_incremental_style: true, |
| }, |
| { |
| 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, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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", |
| invalidate: ["paint"], |
| }, |
| { |
| name: "image-orientation", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "primitive", |
| field_size: 1, |
| type_name: "RespectImageOrientationEnum", |
| default_value: "kRespectImageOrientation", |
| converter: "ConvertImageOrientation", |
| include_paths: [ |
| "third_party/blink/renderer/platform/graphics/image_orientation.h" |
| ], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "dynamic-range-limit", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| runtime_flag: "CSSDynamicRangeLimit", |
| converter: "ConvertDynamicRangeLimit", |
| type_name: "DynamicRangeLimit", |
| field_group: "*", |
| field_template: "external", |
| keywords: ["standard", "high", "constrained-high"], |
| typedom_types: ["Keyword"], |
| include_paths: ["third_party/blink/renderer/platform/graphics/graphics_types.h"], |
| default_value: "DynamicRangeLimit(cc::PaintFlags::DynamicRangeLimit::kHigh)", |
| invalidate: ["paint"], |
| }, |
| { |
| name: "initial-letter", |
| converter: "ConvertInitialLetter", |
| default_value: "StyleInitialLetter()", |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_initial_letter.h"], |
| inherited: false, |
| keywords: ["drop", "normal", "raise"], |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| type_name: "StyleInitialLetter", |
| valid_for_first_letter: true, |
| invalidate: ["reshape", "layout", "paint"], |
| }, |
| { |
| name: "interpolate-size", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["numeric-only", "allow-keywords"], |
| typedom_types: ["Keyword"], |
| default_value: "numeric-only", |
| invalidate: [], |
| runtime_flag: "CSSCalcSizeFunction", |
| }, |
| { |
| name: "isolation", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["auto", "isolate"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| valid_for_permission_element: true, |
| invalidate: ["paint"], |
| }, |
| { |
| 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", |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| 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", |
| anchor_mode: "left", |
| logical_property_group: { |
| name: "inset", |
| resolver: "left", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| invalidate: ["inset", "out-of-flow", "scroll-anchor"], |
| }, |
| { |
| 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, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| affected_by_zoom: 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"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "line-height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "inherited", |
| field_template: "<length>", |
| default_value: "Length::Auto()", |
| 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, |
| valid_for_page_context: true, |
| affected_by_zoom: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| 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: "Member", |
| default_value: "nullptr", |
| typedom_types: ["Keyword", "Image"], |
| type_name: "StyleImage", |
| style_builder_custom_functions: ["value"], |
| keywords: ["none"], |
| invalidate: ["layout", "paint"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "list-style-position", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["outside", "inside"], |
| typedom_types: ["Keyword"], |
| default_value: "outside", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "list-style-type", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/keywords.h", |
| "third_party/blink/renderer/core/style/list_style_type_data.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "ListStyleTypeData::CreateCounterStyle(keywords::kDisc, nullptr)", |
| type_name: "ListStyleTypeData", |
| keywords: [ |
| "disc", "circle", "square", "disclosure-open", "disclosure-closed", |
| "decimal", "none" |
| ], |
| style_builder_custom_functions: ["value"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "margin-bottom", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| 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, |
| valid_for_position_try: true, |
| logical_property_group: { |
| name: "margin", |
| resolver: "bottom", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| invalidate: ["margin", "out-of-flow", "scroll-anchor"], |
| }, |
| { |
| name: "margin-left", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| 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, |
| valid_for_position_try: true, |
| logical_property_group: { |
| name: "margin", |
| resolver: "left", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| invalidate: ["margin", "out-of-flow", "scroll-anchor"], |
| }, |
| { |
| name: "margin-right", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| 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, |
| valid_for_position_try: true, |
| logical_property_group: { |
| name: "margin", |
| resolver: "right", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| invalidate: ["margin", "out-of-flow", "scroll-anchor"], |
| }, |
| { |
| name: "margin-top", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| 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, |
| valid_for_position_try: true, |
| logical_property_group: { |
| name: "margin", |
| resolver: "top", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| invalidate: ["margin", "out-of-flow", "scroll-anchor"], |
| }, |
| { |
| name: "marker-end", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg->inherited_resources", |
| field_template: "pointer", |
| type_name: "StyleSVGResource", |
| include_paths: ["third_party/blink/renderer/core/style/style_svg_resource.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| name_for_methods: "MarkerEndResource", |
| converter: "ConvertElementReference", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "marker-mid", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg->inherited_resources", |
| field_template: "pointer", |
| type_name: "StyleSVGResource", |
| include_paths: ["third_party/blink/renderer/core/style/style_svg_resource.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| name_for_methods: "MarkerMidResource", |
| converter: "ConvertElementReference", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "marker-start", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg->inherited_resources", |
| field_template: "pointer", |
| type_name: "StyleSVGResource", |
| include_paths: ["third_party/blink/renderer/core/style/style_svg_resource.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| name_for_methods: "MarkerStartResource", |
| converter: "ConvertElementReference", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "mask-type", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["luminance", "alpha"], |
| typedom_types: ["Keyword"], |
| default_value: "luminance", |
| invalidate: ["paint"], |
| }, |
| { |
| name: "masonry-template-tracks", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| layout_dependent: true, |
| field_group: "*->masonry", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/computed_grid_track_list.h"], |
| default_value: "ComputedGridTrackList::DefaultMasonryTrackList()", |
| type_name: "ComputedGridTrackList", |
| style_builder_template: "grid", |
| style_builder_template_args: { |
| type: "MasonryTemplateTracks", |
| }, |
| invalidate: ["layout", "paint"], |
| runtime_flag: "CSSMasonryLayout", |
| }, |
| { |
| name: "masonry-track-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", |
| invalidate: ["layout", "paint"], |
| runtime_flag: "CSSMasonryLayout", |
| }, |
| { |
| name: "masonry-track-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", |
| invalidate: ["layout", "paint"], |
| runtime_flag: "CSSMasonryLayout", |
| }, |
| { |
| name: "math-shift", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| inherited: true, |
| keywords: ["normal", "compact"], |
| typedom_types: ["Keyword"], |
| default_value: "normal", |
| }, |
| { |
| name: "math-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| inherited: true, |
| keywords: ["normal", "compact"], |
| typedom_types: ["Keyword"], |
| default_value: "normal", |
| }, |
| { |
| name: "max-height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length::None()", |
| converter: "ConvertLengthMaxSizing", |
| anchor_mode: "height", |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| logical_property_group: { |
| name: "max-size", |
| resolver: "vertical", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["layout", "scroll-anchor"], |
| }, |
| { |
| name: "max-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length::None()", |
| converter: "ConvertLengthMaxSizing", |
| anchor_mode: "width", |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| logical_property_group: { |
| name: "max-size", |
| resolver: "horizontal", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["layout", "scroll-anchor"], |
| }, |
| { |
| name: "min-height", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length()", |
| converter: "ConvertLengthSizing", |
| anchor_mode: "height", |
| typedom_types: ["Length", "Percentage"], |
| logical_property_group: { |
| name: "min-size", |
| resolver: "vertical", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["layout", "scroll-anchor"], |
| }, |
| { |
| name: "min-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length()", |
| converter: "ConvertLengthSizing", |
| anchor_mode: "width", |
| typedom_types: ["Length", "Percentage"], |
| logical_property_group: { |
| name: "min-size", |
| resolver: "horizontal", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["layout", "scroll-anchor"], |
| }, |
| { |
| name: "mix-blend-mode", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| include_paths: ["third_party/blink/renderer/platform/graphics/graphics_types.h"], |
| keywords: [ |
| "normal", "multiply", "screen", "overlay", "darken", "lighten", |
| "color-dodge", "color-burn", "hard-light", "soft-light", "difference", |
| "exclusion", "hue", "saturation", "color", "luminosity", "plus-lighter" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "normal", |
| name_for_methods: "BlendMode", |
| type_name: "BlendMode", |
| invalidate: ["blend-mode", "paint"], |
| }, |
| { |
| name: "object-fit", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["fill", "contain", "cover", "none", "scale-down"], |
| typedom_types: ["Keyword"], |
| default_value: "fill", |
| getter: "GetObjectFit", |
| invalidate: ["paint"], |
| }, |
| { |
| name: "object-position", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_point.h"], |
| default_value: "LengthPoint(Length::Percent(50.0), Length::Percent(50.0))", |
| type_name: "LengthPoint", |
| converter: "ConvertPosition", |
| typedom_types: ["Keyword", "Position"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "object-view-box", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/core/style/basic_shapes.h"], |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| type_name: "BasicShape", |
| converter: "ConvertObjectViewBox", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "offset-anchor", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_point.h"], |
| default_value: "LengthPoint(Length::Auto(), Length::Auto())", |
| type_name: "LengthPoint", |
| converter: "ConvertPositionOrAuto", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Position"], |
| invalidate: ["transform-data", "transform-other"], |
| }, |
| { |
| name: "offset-distance", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length::Fixed(0)", |
| converter: "ConvertLength", |
| typedom_types: ["Length", "Percentage"], |
| invalidate: ["transform-data", "transform-other"], |
| }, |
| { |
| name: "offset-path", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/core/style/offset_path_operation.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| type_name: "OffsetPathOperation", |
| converter: "ConvertOffsetPath", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["has-transform", "transform-data", "transform-other"], |
| }, |
| { |
| name: "offset-position", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_point.h"], |
| default_value: "LengthPoint(Length::None(), Length::None())", |
| type_name: "LengthPoint", |
| converter: "ConvertOffsetPosition", |
| keywords: ["auto", "normal"], |
| typedom_types: ["Keyword", "Position"], |
| invalidate: ["has-transform", "transform-data", "transform-other"], |
| }, |
| { |
| name: "offset-rotate", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/style_offset_rotation.h"], |
| default_value: "StyleOffsetRotation(0, OffsetRotationType::kAuto)", |
| type_name: "StyleOffsetRotation", |
| converter: "ConvertOffsetRotate", |
| keywords: ["auto", "reverse"], |
| typedom_types: ["Keyword", "Angle"], |
| invalidate: ["transform-data", "transform-other"], |
| }, |
| { |
| name: "opacity", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "1.0", |
| type_name: "float", |
| computed_style_custom_functions: ["setter"], |
| typedom_types: ["Number"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| supports_incremental_style: true, |
| accepts_numeric_literal: true, |
| invalidate: ["opacity"], |
| }, |
| { |
| name: "order", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0", |
| type_name: "int", |
| typedom_types: ["Number"], |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| // This property is used for testing with origin trial intergration only. |
| // It should never be web-exposed. |
| name: "origin-trial-test-property", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| default_value: "normal", |
| keywords: ["normal", "none"], |
| typedom_types: ["Keyword"], |
| runtime_flag: "OriginTrialsSampleAPI", |
| computable: false, |
| }, |
| { |
| name: "orphans", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "primitive", |
| computed_style_custom_functions: ["setter"], |
| default_value: "2", |
| type_name: "short", |
| typedom_types: ["Number"], |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "outline-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_cue: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["outline"], |
| }, |
| { |
| name: "outline-offset", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/layout_unit.h"], |
| default_value: "LayoutUnit()", |
| type_name: "LayoutUnit", |
| converter: "ConvertLayoutUnit", |
| typedom_types: ["Length"], |
| valid_for_cue: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["outline"], |
| }, |
| { |
| name: "outline-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: [ |
| "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", |
| "dashed", "solid", "double" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| type_name: "EBorderStyle", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| valid_for_cue: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["outline"], |
| }, |
| { |
| name: "outline-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| default_value: "3", |
| type_name: "int", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertBorderWidth", |
| keywords: ["thin", "medium", "thick"], |
| typedom_types: ["Keyword", "Length"], |
| valid_for_cue: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["outline"], |
| }, |
| { |
| name: "overflow-anchor", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: false, |
| field_template: "keyword", |
| keywords: [ |
| "visible", "none", "auto" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "overflow-wrap", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["normal", "break-word", "anywhere"], |
| default_value: "normal", |
| typedom_types: ["Keyword"], |
| valid_for_marker: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "overflow-inline", |
| logical_property_group: { |
| name: "overflow", |
| resolver: "inline", |
| }, |
| runtime_flag: "CSSLogicalOverflow", |
| // See comment on overflow-x. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "-internal-overflow-inline", |
| logical_property_group: { |
| name: "overflow", |
| resolver: "inline", |
| }, |
| }, |
| { |
| name: "overflow-block", |
| logical_property_group: { |
| name: "overflow", |
| resolver: "block", |
| }, |
| runtime_flag: "CSSLogicalOverflow", |
| // See comment on overflow-x. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "-internal-overflow-block", |
| logical_property_group: { |
| name: "overflow", |
| resolver: "block", |
| }, |
| }, |
| { |
| name: "overflow-clip-margin", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_template: "external", |
| field_group: "*", |
| include_paths: ["third_party/blink/renderer/core/style/style_overflow_clip_margin.h"], |
| keywords: ["border-box", "content-box", "padding-box"], |
| separator: " ", |
| default_value: "std::nullopt", |
| type_name: "std::optional<StyleOverflowClipMargin>", |
| converter: "ConvertOverflowClipMargin", |
| invalidate: ["layout"], |
| }, |
| { |
| name: "overflow-x", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| keywords: [ |
| "visible", "hidden", "scroll", "auto", "overlay", "clip" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "visible", |
| // This is to allow us to gather metrics when overflow is explicitly set. |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| type_name: "EOverflow", |
| logical_property_group: { |
| name: "overflow", |
| resolver: "horizontal", |
| }, |
| // Overflow has special semantics; overflowY can influence overflowX. |
| // But StyleAdjuster::AdjustOverflow() only does this properly if overflowX |
| // is set to the initial value (it cannot distinguish between an explicitly |
| // set overflowX, and one that was already adjusted in a previous pass). |
| // Modifying overflow frequently should not be common, so we take it out. |
| supports_incremental_style: false, |
| idempotent: false, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "overflow-y", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| keywords: [ |
| "visible", "hidden", "scroll", "auto", "overlay", "clip" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "visible", |
| // This is to allow us to gather metrics when overflow is explicitly set. |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| type_name: "EOverflow", |
| logical_property_group: { |
| name: "overflow", |
| resolver: "vertical", |
| }, |
| // See comment on overflow-x. |
| supports_incremental_style: false, |
| idempotent: false, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "overscroll-behavior-inline", |
| logical_property_group: { |
| name: "overscroll-behavior", |
| resolver: "inline", |
| }, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "overscroll-behavior-block", |
| logical_property_group: { |
| name: "overscroll-behavior", |
| resolver: "block", |
| }, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "overscroll-behavior-x", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| field_group: "*", |
| keywords: ["auto", "contain", "none"], |
| default_value: "auto", |
| type_name: "EOverscrollBehavior", |
| typedom_types: ["Keyword"], |
| logical_property_group: { |
| name: "overscroll-behavior", |
| resolver: "horizontal", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "overscroll-behavior-y", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| field_group: "*", |
| keywords: ["auto", "contain", "none"], |
| default_value: "auto", |
| type_name: "EOverscrollBehavior", |
| typedom_types: ["Keyword"], |
| logical_property_group: { |
| name: "overscroll-behavior", |
| resolver: "vertical", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "padding-bottom", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| converter: "ConvertLength", |
| computed_style_custom_functions: ["setter"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_page_context: true, |
| logical_property_group: { |
| name: "padding", |
| resolver: "bottom", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint", "scroll-anchor"], |
| }, |
| { |
| name: "padding-left", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| converter: "ConvertLength", |
| computed_style_custom_functions: ["setter"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_page_context: true, |
| logical_property_group: { |
| name: "padding", |
| resolver: "left", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint", "scroll-anchor"], |
| }, |
| { |
| name: "padding-right", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| converter: "ConvertLength", |
| computed_style_custom_functions: ["setter"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_page_context: true, |
| logical_property_group: { |
| name: "padding", |
| resolver: "right", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint", "scroll-anchor"], |
| }, |
| { |
| name: "padding-top", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "box", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| converter: "ConvertLength", |
| computed_style_custom_functions: ["setter"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_page_context: true, |
| logical_property_group: { |
| name: "padding", |
| resolver: "top", |
| }, |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint", "scroll-anchor"], |
| }, |
| { |
| name: "page", |
| field_group: "*", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| converter: "ConvertPage", |
| type_name: "AtomicString", |
| default_value: "AtomicString()", |
| field_template: "external", |
| keywords: ["auto"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "page-orientation", |
| is_descriptor: true, |
| field_template: "primitive", |
| field_group: "*", |
| type_name: "PageOrientation", |
| field_size: 2, |
| default_value: "PageOrientation::kUpright", |
| include_paths: ["third_party/blink/public/common/css/page_orientation.h"], |
| computable: false, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "paint-order", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| field_template: "primitive", |
| field_size: 3, |
| type_name: "EPaintOrder", |
| default_value: "kPaintOrderNormal", |
| converter: "ConvertPaintOrder", |
| keywords: ["normal", "fill", "stroke", "markers"], |
| typedom_types: ["Keyword"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "perspective", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "-1.0", |
| type_name: "float", |
| converter: "ConvertPerspective", |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Length"], |
| invalidate: ["transform-other"], |
| }, |
| { |
| name: "perspective-origin", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length_point.h"], |
| default_value: "LengthPoint(Length::Percent(50.0), Length::Percent(50.0))", |
| type_name: "LengthPoint", |
| converter: "ConvertPosition", |
| typedom_types: ["Position"], |
| // Overlaps with -webkit-perspective-origin-[x,y]. |
| overlapping: true, |
| invalidate: ["transform-other"], |
| }, |
| { |
| name: "pointer-events", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| computed_style_protected_functions: ["getter"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: [ |
| "none", "auto", "stroke", "fill", "painted", "visible", "visiblestroke", |
| "visiblefill", "visiblepainted", "bounding-box", "all" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| }, |
| { |
| name: "position", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| keywords: [ |
| "static", "relative", "absolute", "fixed", "sticky" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "static", |
| getter: "GetPosition", |
| computed_style_custom_functions: ["getter"], |
| // See comment on display. |
| supports_incremental_style: false, |
| // @position-try-styling rely on this being high-priority, so that |
| // declarations from @position-try blocks can be applied conditionally |
| // based on whether or not we're out-of-flow positioned. Also, it needs to |
| // have a priority higher than position-area which is already at priority:1. |
| priority: 2, |
| valid_for_permission_element: true, |
| invalidate: ["clip", "layout", "scroll-anchor"], |
| }, |
| { |
| name: "position-anchor", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal" ], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| include_paths: ["third_party/blink/renderer/core/style/scoped_css_name.h"], |
| type_name: "ScopedCSSName", |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| field_group: "*", |
| field_template: "external", |
| converter: "ConvertPositionAnchor", |
| keywords: ["auto"], |
| typedom_types: ["Keyword"], |
| valid_for_permission_element: true, |
| valid_for_position_try: true, |
| // Needs to be applied before position-area which in turn needs to be applied |
| // before inset properties. |
| priority: 2, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "position-try-fallbacks", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_custom_functions: ["value"], |
| field_group: "*", |
| field_template: "external", |
| keywords: ["none", "flip-block", "flip-inline", "flip-start"], |
| typedom_types: ["Keyword"], |
| include_paths: ["third_party/blink/renderer/core/style/position_try_fallbacks.h"], |
| wrapper_pointer_name: "Member", |
| type_name: "PositionTryFallbacks", |
| default_value: "nullptr", |
| invalidate: ["layout", "paint"], |
| runtime_flag: "CSSPositionTryFallbacks", |
| }, |
| { |
| name: "position-try-options", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| surrogate_for: "position-try-fallbacks", |
| runtime_flag: "CSSPositionTryOptions", |
| }, |
| { |
| name: "position-try-order", |
| property_methods: ["CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["normal", "most-width", "most-height", "most-block-size", "most-inline-size"], |
| typedom_types: ["Keyword"], |
| default_value: "normal", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "position-visibility", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_size: 3, |
| field_template: "primitive", |
| default_value: "PositionVisibility::kAlways", |
| getter: "GetPositionVisibility", |
| type_name: "PositionVisibility", |
| converter: "ConvertPositionVisibility", |
| // TODO(crbug.com/332933527): Support anchors-valid. |
| keywords: ["always", "anchors-visible", "no-overflow"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "quotes", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/platform/text/quotes_data.h"], |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| type_name: "QuotesData", |
| converter: "ConvertQuotes", |
| keywords: ["auto", "none"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| valid_for_page_context: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "content-visibility", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| keywords: ["visible", "auto", "hidden"], |
| default_value: "visible", |
| typedom_types: ["Keyword"], |
| computable: false, |
| valid_for_permission_element: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "reading-flow", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["normal", "flex-visual", "flex-flow", "grid-rows", "grid-columns", "grid-order"], |
| typedom_types: ["Keyword"], |
| default_value: "normal", |
| invalidate: ["layout"], |
| runtime_flag: "CSSReadingFlow", |
| }, |
| { |
| name: "resize", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| computed_style_protected_functions: ["getter"], |
| style_builder_custom_functions: ["value"], |
| keywords: ["none", "both", "horizontal", "vertical", "block", "inline"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| invalidate: ["paint"], |
| }, |
| { |
| name: "right", |
| 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", |
| anchor_mode: "right", |
| logical_property_group: { |
| name: "inset", |
| resolver: "right", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| invalidate: ["inset", "out-of-flow", "scroll-anchor"], |
| }, |
| { |
| name: "r", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->geometry", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| typedom_types: ["Length", "Percentage"], |
| converter: "ConvertLength", |
| supports_incremental_style: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "rx", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->geometry", |
| field_template: "<length>", |
| default_value: "Length::Auto()", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthOrAuto", |
| supports_incremental_style: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "ry", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->geometry", |
| field_template: "<length>", |
| default_value: "Length::Auto()", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthOrAuto", |
| supports_incremental_style: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "scroll-marker-group", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["none", "after", "before"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| runtime_flag: "CSSPseudoScrollMarkers", |
| }, |
| { |
| interpolable: true, |
| name: "scrollbar-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| name_for_methods: "ScrollbarColor", |
| type_name: "StyleScrollbarColor", |
| converter: "ConvertScrollbarColor", |
| keywords: ["auto"], |
| field_group: "*", |
| field_template: "pointer", |
| default_value: "nullptr", |
| wrapper_pointer_name: "Member", |
| include_paths: ["third_party/blink/renderer/core/style/style_scrollbar_color.h"], |
| invalidate: ["scrollbar-style", "scrollbar-color"], |
| runtime_flag: "ScrollbarColor", |
| }, |
| { |
| name: "scrollbar-gutter", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: false, |
| field_size: 4, |
| field_template: "primitive", |
| default_value: "kScrollbarGutterAuto", |
| name_for_methods: "ScrollbarGutter", |
| type_name: "unsigned", |
| converter: "ConvertScrollbarGutter", |
| keywords: [ |
| "auto", "stable", "both-edges" |
| ], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout"], |
| }, |
| { |
| name: "scrollbar-width", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: false, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["auto", "thin", "none"], |
| default_value: "auto", |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint", "scrollbar-style"], |
| runtime_flag: "ScrollbarWidth", |
| }, |
| { |
| name: "scroll-behavior", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_size: 2, // FIXME: Convert this to a keyword field |
| field_template: "primitive", |
| include_paths: ["third_party/blink/public/mojom/scroll/scroll_enums.mojom-blink.h"], |
| default_value: "mojom::blink::ScrollBehavior::kAuto", |
| type_name: "mojom::blink::ScrollBehavior", |
| keywords: ["auto", "smooth"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "scroll-margin-block-end", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "scroll-margin", |
| resolver: "block-end", |
| }, |
| typedom_types: ["Keyword", "Length"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-margin-block-start", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "scroll-margin", |
| resolver: "block-start", |
| }, |
| typedom_types: ["Keyword", "Length"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-margin-bottom", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0f", |
| type_name: "float", |
| converter: "ConvertComputedLength<float>", |
| typedom_types: ["Keyword", "Length"], |
| logical_property_group: { |
| name: "scroll-margin", |
| resolver: "bottom", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-margin-inline-end", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "scroll-margin", |
| resolver: "inline-end", |
| }, |
| typedom_types: ["Keyword", "Length"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-margin-inline-start", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "scroll-margin", |
| resolver: "inline-start", |
| }, |
| typedom_types: ["Keyword", "Length"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-margin-left", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0f", |
| type_name: "float", |
| converter: "ConvertComputedLength<float>", |
| typedom_types: ["Keyword", "Length"], |
| logical_property_group: { |
| name: "scroll-margin", |
| resolver: "left", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-margin-right", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0f", |
| type_name: "float", |
| converter: "ConvertComputedLength<float>", |
| typedom_types: ["Keyword", "Length"], |
| logical_property_group: { |
| name: "scroll-margin", |
| resolver: "right", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-margin-top", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0f", |
| type_name: "float", |
| converter: "ConvertComputedLength<float>", |
| typedom_types: ["Keyword", "Length"], |
| logical_property_group: { |
| name: "scroll-margin", |
| resolver: "top", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-padding-block-end", |
| property_methods: ["ParseSingleValue"], |
| include_paths: ["third_party/blink/renderer/platform/geometry/length.h"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| type_name: "Length", |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "scroll-padding", |
| resolver: "block-end", |
| }, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-padding-block-start", |
| property_methods: ["ParseSingleValue"], |
| include_paths: ["third_party/blink/renderer/platform/geometry/length.h"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| type_name: "Length", |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "scroll-padding", |
| resolver: "block-start", |
| }, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-padding-bottom", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length()", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "scroll-padding", |
| resolver: "bottom", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-padding-inline-end", |
| property_methods: ["ParseSingleValue"], |
| include_paths: ["third_party/blink/renderer/platform/geometry/length.h"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| type_name: "Length", |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "scroll-padding", |
| resolver: "inline-end", |
| }, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-padding-inline-start", |
| property_methods: ["ParseSingleValue"], |
| include_paths: ["third_party/blink/renderer/platform/geometry/length.h"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| type_name: "Length", |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "scroll-padding", |
| resolver: "inline-start", |
| }, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-padding-left", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length()", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "scroll-padding", |
| resolver: "left", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-padding-right", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length()", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "scroll-padding", |
| resolver: "right", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-padding-top", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length()", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| converter: "ConvertLengthOrAuto", |
| logical_property_group: { |
| name: "scroll-padding", |
| resolver: "top", |
| }, |
| computable: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "scroll-snap-align", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["cc/input/scroll_snap_data.h"], |
| default_value: "cc::ScrollSnapAlign()", |
| getter: "GetScrollSnapAlign", |
| type_name: "cc::ScrollSnapAlign", |
| converter: "ConvertSnapAlign", |
| keywords: ["none", "start", "end", "center"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| }, |
| { |
| name: "scroll-snap-stop", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| keywords: ["normal", "always"], |
| default_value: "normal", |
| typedom_types: ["Keyword"], |
| computable: false, |
| }, |
| { |
| name: "scroll-snap-type", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["cc/input/scroll_snap_data.h"], |
| default_value: "cc::ScrollSnapType()", |
| getter: "GetScrollSnapType", |
| type_name: "cc::ScrollSnapType", |
| converter: "ConvertSnapType", |
| keywords: ["none", "x", "y", "block", "inline", "both", "mandatory", "proximity"], |
| typedom_types: ["Keyword"], |
| computable: false, |
| }, |
| { |
| name: "scroll-start-x", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*->start", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/scroll_start_data.h"], |
| default_value: "blink::ScrollStartData()", |
| type_name: "ScrollStartData", |
| converter: "ConvertScrollStart", |
| logical_property_group : { |
| name: "scroll-start", |
| resolver: "horizontal" |
| }, |
| runtime_flag: "CSSScrollStart", |
| }, |
| { |
| name: "scroll-start-y", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*->start", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/scroll_start_data.h"], |
| default_value: "blink::ScrollStartData()", |
| type_name: "ScrollStartData", |
| converter: "ConvertScrollStart", |
| logical_property_group : { |
| name: "scroll-start", |
| resolver: "vertical" |
| }, |
| runtime_flag: "CSSScrollStart", |
| }, |
| { |
| name: "scroll-start-target-x", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*->target", |
| field_template: "keyword", |
| type_name: "EScrollStartTarget", |
| default_value: "none", |
| logical_property_group: { |
| name: "scroll-start-target", |
| resolver: "horizontal" |
| }, |
| keywords: ["none", "auto"], |
| invalidate: ["layout"], |
| runtime_flag: "CSSScrollStartTarget", |
| }, |
| { |
| name: "scroll-start-target-y", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*->target", |
| field_template: "keyword", |
| type_name: "EScrollStartTarget", |
| default_value: "none", |
| logical_property_group: { |
| name: "scroll-start-target", |
| resolver: "vertical" |
| }, |
| keywords: ["none", "auto"], |
| invalidate: ["layout"], |
| runtime_flag: "CSSScrollStartTarget", |
| }, |
| { |
| name: "scroll-timeline-axis", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*->timeline", |
| field_template: "external", |
| default_value: "Vector<TimelineAxis>()", |
| type_name: "Vector<TimelineAxis>", |
| converter: "ConvertViewTimelineAxis", |
| separator: ",", |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "scroll-timeline-name", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*->timeline", |
| field_template: "external", |
| default_value: "nullptr", |
| type_name: "ScopedCSSNameList", |
| wrapper_pointer_name: "Member", |
| converter: "ConvertViewTimelineName", |
| separator: ",", |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "shape-image-threshold", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0", |
| type_name: "float", |
| computed_style_custom_functions: ["setter"], |
| typedom_types: ["Number"], |
| accepts_numeric_literal: true, |
| }, |
| { |
| name: "shape-margin", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length::Fixed(0)", |
| converter: "ConvertLength", |
| keywords: ["none"], |
| typedom_types: ["Length", "Percentage"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "shape-outside", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/shape_value.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| typedom_types: ["Keyword", "Image"], |
| type_name: "ShapeValue", |
| computed_style_custom_functions: ["getter"], |
| converter: "ConvertShapeValue", |
| keywords: ["none"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "shape-rendering", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["auto", "optimizespeed", "crispedges", "geometricprecision"], |
| default_value: "auto", |
| typedom_types: ["Keyword"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "size", |
| property_methods: ["ParseSingleValue"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| computable: false, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "speak", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: [ |
| "none", "normal", "spell-out", "digits", "literal-punctuation", |
| "no-punctuation" |
| ], |
| default_value: "normal", |
| }, |
| { |
| name: "stop-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "svg->stop", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(Color::kBlack)", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| style_builder_template: "color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialStopColor", |
| }, |
| converter: "ConvertStyleColor", |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "stop-opacity", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->stop", |
| field_template: "primitive", |
| type_name: "float", |
| default_value: "1", |
| converter: "ConvertAlpha", |
| typedom_types: ["Number"], |
| accepts_numeric_literal: true, |
| invalidate: ["paint"], |
| }, |
| { |
| name: "stroke", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "external", |
| type_name: "SVGPaint", |
| include_paths: ["third_party/blink/renderer/core/style/svg_paint.h"], |
| default_value: "SVGPaint()", |
| name_for_methods: "StrokePaint", |
| converter: "ConvertSVGPaint", |
| style_builder_template: "color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialStrokePaint", |
| }, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["paint", "stroke"], |
| }, |
| { |
| name: "stroke-dasharray", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "pointer", |
| type_name: "SVGDashArray", |
| include_paths: ["third_party/blink/renderer/core/style/svg_dash_array.h"], |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "EmptyDashArray()", |
| name_for_methods: "StrokeDashArray", |
| converter: "ConvertStrokeDasharray", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| invalidate: ["paint", "stroke"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "stroke-dashoffset", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "external", |
| type_name: "Length", |
| default_value: "Length::Fixed()", |
| name_for_methods: "StrokeDashOffset", |
| converter: "ConvertLength", |
| typedom_types: ["Length", "Percentage"], |
| invalidate: ["paint"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "stroke-linecap", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "primitive", |
| field_size: 2, |
| type_name: "LineCap", |
| default_value: "kButtCap", |
| name_for_methods: "CapStyle", |
| keywords: ["butt", "round", "square"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "stroke-linejoin", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "primitive", |
| field_size: 2, |
| type_name: "LineJoin", |
| default_value: "kMiterJoin", |
| name_for_methods: "JoinStyle", |
| keywords: ["miter", "bevel", "round"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "stroke-miterlimit", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "primitive", |
| type_name: "float", |
| default_value: "4", |
| name_for_methods: "StrokeMiterLimit", |
| typedom_types: ["Number"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "stroke-opacity", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "primitive", |
| type_name: "float", |
| default_value: "1", |
| converter: "ConvertAlpha", |
| typedom_types: ["Number"], |
| accepts_numeric_literal: true, |
| invalidate: ["paint"], |
| }, |
| { |
| name: "stroke-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "external", |
| type_name: "UnzoomedLength", |
| include_paths: ["third_party/blink/renderer/core/style/unzoomed_length.h"], |
| default_value: "UnzoomedLength(Length::Fixed(1))", |
| converter: "ConvertUnzoomedLength", |
| typedom_types: ["Length", "Percentage"], |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["layout", "paint"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "table-layout", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| keywords: [ |
| "auto", "fixed" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "tab-size", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/text/tab_size.h"], |
| default_value: "TabSize(8)", |
| getter: "GetTabSize", |
| type_name: "TabSize", |
| converter: "ConvertLengthOrTabSpaces", |
| computed_style_custom_functions: ["setter"], |
| typedom_types: ["Number", "Length"], |
| valid_for_marker: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "text-align", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: false, |
| inherited: true, |
| field_template: "keyword", |
| keywords: [ |
| "left", "right", "center", "justify", "-webkit-left", "-webkit-right", |
| "-webkit-center", "start", "end" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "start", |
| getter: "GetTextAlign", |
| style_builder_custom_functions: ["value"], |
| valid_for_page_context: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "text-align-last", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["auto", "start", "end", "left", "right", "center", "justify"], |
| default_value: "auto", |
| typedom_types: ["Keyword"], |
| valid_for_page_context: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "text-anchor", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["start", "middle", "end"], |
| default_value: "start", |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "text-autospace", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["normal", "no-autospace"], |
| default_value: "normal", |
| typedom_types: ["Keyword"], |
| invalidate: ["reshape"], |
| runtime_flag: "CSSTextAutoSpace", |
| }, |
| { |
| name: "text-box", |
| longhands: ["text-box-trim", "text-box-edge"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "CSSTextBoxTrim", |
| }, |
| { |
| name: "text-box-edge", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "primitive", |
| field_size: 6, // Sync with `TextBoxEdge::kBits`. |
| include_paths: ["third_party/blink/renderer/core/style/text_box_edge.h"], |
| default_value: "TextBoxEdge()", |
| type_name: "TextBoxEdge", |
| converter: "ConvertTextBoxEdge", |
| invalidate: ["layout"], |
| runtime_flag: "CSSTextBoxTrim", |
| }, |
| { |
| name: "text-box-trim", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "box", |
| field_template: "keyword", |
| default_value: "none", |
| keywords: ["none", "trim-start", "trim-end", "trim-both"], |
| typedom_types: ["Keyword"], |
| invalidate: ["layout"], |
| runtime_flag: "CSSTextBoxTrim", |
| }, |
| { |
| name: "text-combine-upright", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["none", "all"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| name_for_methods: "TextCombine", |
| valid_for_marker: true, |
| computable: false, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "text-decoration-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| supports_incremental_style: true, |
| valid_for_page_context: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "text-decoration-line", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "visual", |
| field_template: "multi_keyword", |
| keywords: ["none", "underline", "overline", "line-through", "blink", "spelling-error", "grammar-error"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| type_name: "TextDecorationLine", |
| converter: "ConvertFlags<blink::TextDecorationLine>", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| valid_for_page_context: true, |
| invalidate: ["text-decoration"], |
| }, |
| { |
| name: "text-decoration-skip-ink", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["none", "auto"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| valid_for_page_context: true, |
| invalidate: ["text-decoration"], |
| }, |
| { |
| name: "text-decoration-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["solid", "double", "dotted", "dashed", "wavy"], |
| typedom_types: ["Keyword"], |
| default_value: "solid", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| valid_for_page_context: true, |
| invalidate: ["text-decoration"], |
| }, |
| { |
| name: "text-decoration-thickness", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| include_paths: ["third_party/blink/renderer/core/style/text_decoration_thickness.h"], |
| inherited: false, |
| field_group: "*", |
| field_template: "external", |
| type_name: "TextDecorationThickness", |
| default_value: "TextDecorationThickness(Length::Auto())", |
| converter: "ConvertTextDecorationThickness", |
| keywords: ["auto", "from-font"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| computable: false, |
| valid_for_page_context: true, |
| invalidate: ["text-decoration"], |
| }, |
| { |
| name: "text-indent", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| style_builder_custom_functions: ["value"], |
| typedom_types: ["Length", "Percentage"], |
| valid_for_page_context: true, |
| invalidate: ["layout", "paint"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "text-overflow", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["clip", "ellipsis"], |
| typedom_types: ["Keyword"], |
| default_value: "clip", |
| valid_for_page_context: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "text-shadow", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/core/style/shadow_list.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| type_name: "ShadowList", |
| converter: "ConvertShadowList", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| valid_for_page_context: true, |
| invalidate: ["layout", "paint"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "text-size-adjust", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/text_size_adjust.h"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| default_value: "TextSizeAdjust::AdjustAuto()", |
| getter: "GetTextSizeAdjust", |
| // When `TextSizeAdjustImprovements` is enabled, this affects font-size |
| // during style building and needs to apply before it. |
| priority: 2, |
| type_name: "TextSizeAdjust", |
| converter: "ConvertTextSizeAdjust", |
| keywords: ["none", "auto"], |
| typedom_types: ["Keyword", "Percentage"], |
| // When `TextSizeAdjustImprovements` is enabled, this affects font-size |
| // during style building. Changes to anything related to fonts require |
| // that we call style.UpdateFont(), which the incremental path does not |
| // do. |
| supports_incremental_style: false, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "text-spacing", |
| longhands: ["text-autospace", "text-spacing-trim"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "CSSTextSpacing", |
| }, |
| { |
| name: "text-spacing-trim", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| font: true, |
| priority: 1, |
| type_name: "TextSpacingTrim", |
| include_paths: ["third_party/blink/renderer/platform/fonts/shaping/text_spacing_trim.h"], |
| keywords: ["normal", "space-all", "space-first", "trim-start"], |
| default_value: "TextSpacingTrim::kInitial", |
| typedom_types: ["Keyword"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "text-transform", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["capitalize", "uppercase", "lowercase", "none", "math-auto"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| invalidate: ["reshape"], |
| }, |
| { |
| name: "text-underline-offset", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "<length>", |
| default_value: "Length()", |
| name_for_methods: "TextUnderlineOffset", |
| converter: "ConvertTextUnderlineOffset", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| computable: false, |
| valid_for_highlight: true, |
| valid_for_page_context: true, |
| invalidate: ["text-decoration"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "text-underline-position", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_size: 4, |
| field_template: "primitive", |
| default_value: "TextUnderlinePosition::kAuto", |
| getter: "GetTextUnderlinePosition", |
| type_name: "TextUnderlinePosition", |
| converter: "ConvertTextUnderlinePosition", |
| keywords: ["auto", "from-font", "under", "left", "right"], |
| typedom_types: ["Keyword"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_page_context: true, |
| invalidate: ["text-decoration"], |
| }, |
| { |
| name: "timeline-scope", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*->timeline", |
| field_template: "external", |
| default_value: "nullptr", |
| type_name: "ScopedCSSNameList", |
| wrapper_pointer_name: "Member", |
| converter: "ConvertTimelineScope", |
| separator: ",", |
| runtime_flag: "TimelineScope", |
| }, |
| { |
| name: "top", |
| 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", |
| anchor_mode: "top", |
| logical_property_group: { |
| name: "inset", |
| resolver: "top", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| invalidate: ["inset", "out-of-flow", "scroll-anchor"], |
| }, |
| { |
| name: "overlay", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["none", "auto"], |
| default_value: "none", |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "touch-action", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_size: 8, // FIXME: Make this use "kTouchActionBits". |
| field_template: "primitive", |
| include_paths: ["third_party/blink/renderer/platform/graphics/touch_action.h"], |
| default_value: "TouchAction::kAuto", |
| type_name: "TouchAction", |
| converter: "ConvertFlags<blink::TouchAction>", |
| keywords: ["auto", "none", "pan-x", "pan-left", "pan-right", "pan-y", "pan-up", "pan-down", "pinch-zoom", "manipulation"], |
| typedom_types: ["Keyword"], |
| }, |
| { |
| name: "transform", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| layout_dependent: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/transforms/transform_operations.h"], |
| keywords: ["none"], |
| default_value: "EmptyTransformOperations()", |
| typedom_types: ["Keyword", "Transform"], |
| type_name: "TransformOperations", |
| converter: "ConvertTransformOperations", |
| supports_incremental_style: true, |
| invalidate: ["has-transform", "transform-data", "transform-property"], |
| }, |
| { |
| name: "transform-box", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| keywords: ["content-box", "border-box", "fill-box", "stroke-box", "view-box"], |
| default_value: "view-box", |
| typedom_types: ["Keyword"], |
| computable: false, |
| supports_incremental_style: true, |
| invalidate: ["transform-data", "transform-other"], |
| }, |
| { |
| name: "transform-origin", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| layout_dependent: true, |
| field_group: "svg", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/transform_origin.h"], |
| default_value: "TransformOrigin(Length::Percent(50.0), Length::Percent(50.0), 0)", |
| getter: "GetTransformOrigin", |
| type_name: "TransformOrigin", |
| converter: "ConvertTransformOrigin", |
| supports_incremental_style: true, |
| // Overlaps with -webkit-transform-origin-[x,y,z]. |
| overlapping: true, |
| invalidate: ["transform-data", "transform-other"], |
| }, |
| { |
| name: "transform-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["flat", "preserve-3d"], |
| default_value: "flat", |
| typedom_types: ["Keyword"], |
| name_for_methods: "TransformStyle3D", |
| supports_incremental_style: true, |
| }, |
| { |
| name: "translate", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| layout_dependent: true, |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/platform/transforms/translate_transform_operation.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| type_name: "TranslateTransformOperation", |
| converter: "ConvertTranslate", |
| supports_incremental_style: true, |
| invalidate: ["has-transform", "transform-data", "transform-other"], |
| }, |
| { |
| name: "rotate", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/platform/transforms/rotate_transform_operation.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| type_name: "RotateTransformOperation", |
| converter: "ConvertRotate", |
| supports_incremental_style: true, |
| invalidate: ["has-transform", "transform-data", "transform-other"], |
| }, |
| { |
| name: "scale", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| compositable: true, |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/platform/transforms/scale_transform_operation.h"], |
| wrapper_pointer_name: "Member", |
| default_value: "nullptr", |
| type_name: "ScaleTransformOperation", |
| converter: "ConvertScale", |
| supports_incremental_style: true, |
| invalidate: ["has-transform", "transform-data", "transform-other"], |
| }, |
| { |
| name: "unicode-bidi", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| affected_by_all: false, |
| field_template: "keyword", |
| include_paths: ["third_party/blink/renderer/platform/text/unicode_bidi.h"], |
| keywords: [ |
| "normal", "embed", "bidi-override", "isolate", "plaintext", |
| "isolate-override" |
| ], |
| typedom_types: ["Keyword"], |
| default_value: "normal", |
| type_name: "UnicodeBidi", |
| valid_for_marker: true, |
| invalidate: ["reshape"], |
| }, |
| { |
| name: "vector-effect", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "svg", |
| field_template: "keyword", |
| keywords: ["none", "non-scaling-stroke"], |
| typedom_types: ["Keyword"], |
| default_value: "none", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "vertical-align", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| style_builder_custom_functions: ["inherit", "value"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| keywords: ["baseline", "sub", "super", "text-top", "text-bottom", "middle"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "view-timeline-axis", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*->timeline", |
| field_template: "external", |
| default_value: "Vector<TimelineAxis>()", |
| type_name: "Vector<TimelineAxis>", |
| converter: "ConvertViewTimelineAxis", |
| separator: ",", |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "view-timeline-inset", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*->timeline", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/animation/timeline_inset.h"], |
| default_value: "Vector<TimelineInset>()", |
| type_name: "Vector<TimelineInset>", |
| converter: "ConvertViewTimelineInset", |
| separator: ",", |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "view-timeline-name", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| field_group: "*->timeline", |
| field_template: "external", |
| default_value: "nullptr", |
| type_name: "ScopedCSSNameList", |
| wrapper_pointer_name: "Member", |
| converter: "ConvertViewTimelineName", |
| separator: ",", |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "view-transition-class", |
| field_group: "*", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| converter: "ConvertViewTransitionClass", |
| type_name: "ScopedCSSNameList", |
| default_value: "nullptr", |
| wrapper_pointer_name: "Member", |
| field_template: "external", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| runtime_flag: "CSSViewTransitionClass", |
| }, |
| { |
| name: "view-transition-group", |
| field_group: "*", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| converter: "ConvertViewTransitionGroup", |
| type_name: "StyleViewTransitionGroup", |
| default_value: "StyleViewTransitionGroup::Normal()", |
| include_paths: ["third_party/blink/renderer/core/style/style_view_transition_group.h"], |
| field_template: "external", |
| keywords: ["normal", "contain", "nearest"], |
| typedom_types: ["Keyword"], |
| runtime_flag: "NestedViewTransition", |
| }, |
| { |
| name: "view-transition-name", |
| field_group: "*", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| converter: "ConvertViewTransitionName", |
| type_name: "ScopedCSSName", |
| default_value: "nullptr", |
| field_template: "external", |
| keywords: ["none"], |
| typedom_types: ["Keyword"], |
| wrapper_pointer_name: "Member", |
| }, |
| { |
| name: "visibility", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| interpolable: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["visible", "hidden", "collapse"], |
| typedom_types: ["Keyword"], |
| default_value: "visible", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["paint", "visibility"], |
| }, |
| { |
| name: "x", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->geometry", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| typedom_types: ["Length", "Percentage"], |
| converter: "ConvertLength", |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "y", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "svg->geometry", |
| field_template: "<length>", |
| default_value: "Length::Fixed()", |
| typedom_types: ["Length", "Percentage"], |
| converter: "ConvertLength", |
| supports_incremental_style: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "appearance", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_size: 5, |
| field_template: "primitive", |
| include_paths: ["third_party/blink/renderer/platform/theme_types.h"], |
| computed_style_protected_functions: ["getter"], |
| default_value: "kNoControlPart", |
| type_name: "ControlPart", |
| // appearance needs to be computed before |
| // -internal-appearance-auto-base-select() can be resolved. |
| priority: 1, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-appearance", |
| alias_for: "appearance", |
| }, |
| { |
| name: "app-region", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["none", "drag", "no-drag"], |
| default_value: "none", |
| name_for_methods: "DraggableRegionMode", |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| invalidate: ["layout"], |
| }, |
| { |
| name: "-webkit-app-region", |
| alias_for: "app-region", |
| }, |
| { |
| name: "-webkit-border-horizontal-spacing", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "inherited", |
| field_template: "primitive", |
| default_value: "0", |
| name_for_methods: "HorizontalBorderSpacing", |
| type_name: "short", |
| converter: "ConvertComputedLength<short>", |
| valid_for_first_letter: true, |
| invalidate: ["layout", "paint"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "-webkit-border-image", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_custom_functions: ["value"], |
| valid_for_first_letter: true, |
| affected_by_all: false, |
| // Overlaps with border-image. |
| legacy_overlapping: true, |
| }, |
| { |
| name: "-webkit-border-vertical-spacing", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "inherited", |
| field_template: "primitive", |
| default_value: "0", |
| name_for_methods: "VerticalBorderSpacing", |
| type_name: "short", |
| converter: "ConvertComputedLength<short>", |
| valid_for_first_letter: true, |
| invalidate: ["layout", "paint"], |
| affected_by_zoom: true, |
| }, |
| // For valid values of box-align see |
| // http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#alignment |
| { |
| name: "-webkit-box-align", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["stretch", "start", "center", "end", "baseline"], |
| default_value: "stretch", |
| type_name: "EBoxAlignment", |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-box-decoration-break", |
| surrogate_for: "box-decoration-break", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| keywords: ["slice", "clone"], |
| }, |
| { |
| name: "-webkit-box-direction", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_template: "keyword", |
| keywords: ["normal", "reverse"], |
| default_value: "normal", |
| computed_style_protected_functions: ["getter"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-box-flex", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0f", |
| type_name: "float", |
| accepts_numeric_literal: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-box-ordinal-group", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "1", |
| type_name: "unsigned", |
| computed_style_custom_functions: ["setter"], |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-box-orient", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["horizontal", "vertical"], |
| default_value: "horizontal", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-box-pack", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["start", "center", "end", "justify"], |
| default_value: "start", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-box-reflect", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "pointer", |
| include_paths: ["third_party/blink/renderer/core/style/style_reflection.h"], |
| wrapper_pointer_name: "scoped_refptr", |
| default_value: "nullptr", |
| type_name: "StyleReflection", |
| converter: "ConvertBoxReflect", |
| invalidate: ["filter-data"], |
| }, |
| { |
| name: "column-count", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "1", |
| type_name: "unsigned short", |
| computed_style_custom_functions: ["setter"], |
| style_builder_template: "auto", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Number"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "column-gap", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length.h"], |
| default_value: "std::nullopt", |
| type_name: "std::optional<Length>", |
| converter: "ConvertGapLength", |
| keywords: ["normal"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "row-gap", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/geometry/length.h"], |
| default_value: "std::nullopt", |
| type_name: "std::optional<Length>", |
| converter: "ConvertGapLength", |
| keywords: ["normal"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "column-rule-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| invalidate: ["paint"], |
| }, |
| { |
| name: "column-rule-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: [ |
| "none", "hidden", "inset", "groove", "outset", "ridge", "dotted", |
| "dashed", "solid", "double" |
| ], |
| default_value: "none", |
| type_name: "EBorderStyle", |
| typedom_types: ["Keyword"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "column-rule-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "external", |
| default_value: "3", |
| type_name: "int", |
| computed_style_custom_functions: ["initial", "getter", "setter"], |
| converter: "ConvertColumnRuleWidth", |
| keywords: ["thin", "medium", "thick"], |
| typedom_types: ["Keyword", "Length"], |
| invalidate: ["paint"], |
| }, |
| { |
| name: "column-span", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["none", "all"], |
| default_value: "none", |
| getter: "GetColumnSpan", |
| typedom_types: ["Keyword"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "column-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0.0f", |
| type_name: "float", |
| computed_style_custom_functions: ["setter"], |
| style_builder_template: "auto", |
| converter: "ConvertComputedLength<float>", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length"], |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "hyphenate-character", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/platform/wtf/text/atomic_string.h"], |
| default_value: "AtomicString()", |
| name_for_methods: "HyphenationString", |
| type_name: "AtomicString", |
| converter: "ConvertString<CSSValueID::kAuto>", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-line-break", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["auto", "loose", "normal", "strict", "after-white-space", "anywhere"], |
| default_value: "auto", |
| type_name: "LineBreak", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "line-break", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| type_name: "LineBreak", |
| keywords: ["auto", "loose", "normal", "strict", "anywhere"], |
| typedom_types: ["Keyword"], |
| valid_for_marker: true, |
| surrogate_for: "-webkit-line-break", |
| }, |
| { |
| name: "line-clamp", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0", |
| converter: "ConvertIntegerOrNone<0>", |
| computed_style_custom_functions: ["setter"], |
| style_builder_custom_functions: ["initial"], |
| style_builder_template: "auto", |
| keywords: ["none", "auto"], |
| type_name: "int", |
| invalidate: ["layout", "paint"], |
| name_for_methods: "StandardLineClamp", |
| runtime_flag: "CSSLineClamp", |
| }, |
| { |
| name: "-webkit-line-clamp", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0", |
| type_name: "int", |
| invalidate: ["layout", "paint"], |
| name_for_methods: "WebkitLineClamp", |
| }, |
| { |
| name: "-webkit-mask-box-image-outset", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| style_builder_template: "mask_box", |
| style_builder_template_args: { |
| modifier_type: "Outset", |
| }, |
| }, |
| { |
| name: "-webkit-mask-box-image-repeat", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_template: "mask_box", |
| style_builder_template_args: { |
| modifier_type: "Repeat", |
| }, |
| }, |
| { |
| name: "-webkit-mask-box-image-slice", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| style_builder_template: "mask_box", |
| style_builder_template_args: { |
| modifier_type: "Slice", |
| }, |
| }, |
| { |
| name: "-webkit-mask-box-image-source", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| style_builder_custom_functions: ["value"], |
| }, |
| { |
| name: "-webkit-mask-box-image-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| style_builder_template: "mask_box", |
| style_builder_template_args: { |
| modifier_type: "Width", |
| }, |
| }, |
| { |
| name: "mask-mode", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "MaskMode", |
| }, |
| }, |
| { |
| name: "mask-clip", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "Clip", |
| }, |
| }, |
| { |
| name: "-webkit-mask-clip", |
| alias_for: "mask-clip", |
| }, |
| { |
| name: "mask-composite", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "CompositingOperator", |
| }, |
| }, |
| { |
| name: "-webkit-mask-composite", |
| alias_for: "mask-composite", |
| }, |
| { |
| name: "mask-image", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "Image", |
| fill_type_getter: "GetImage" |
| }, |
| // {-webkit-}mask-image needs to be applied before {-webkit-}mask-composite, |
| // otherwise {-webkit-}mask-composite has no effect. |
| priority: 2, |
| }, |
| { |
| name: "-webkit-mask-image", |
| alias_for: "mask-image", |
| }, |
| { |
| name: "mask-origin", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "Origin", |
| }, |
| }, |
| { |
| name: "-webkit-mask-origin", |
| alias_for: "mask-origin", |
| }, |
| { |
| name: "-webkit-mask-position-x", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| interpolable: true, |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "PositionX", |
| }, |
| computable: false, |
| }, |
| { |
| name: "-webkit-mask-position-y", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| interpolable: true, |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "PositionY", |
| }, |
| computable: false, |
| }, |
| { |
| name: "mask-repeat", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "Repeat", |
| }, |
| }, |
| { |
| name: "-webkit-mask-repeat", |
| alias_for: "mask-repeat", |
| }, |
| { |
| name: "mask-size", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "InitialValue"], |
| interpolable: true, |
| style_builder_template: "mask_layer", |
| style_builder_template_args: { |
| fill_type: "Size", |
| }, |
| }, |
| { |
| name: "-webkit-mask-size", |
| alias_for: "mask-size", |
| }, |
| { |
| name: "-webkit-perspective-origin-x", |
| property_methods: ["ParseSingleValue"], |
| style_builder_custom_functions: ["inherit"], |
| interpolable: true, |
| converter: "ConvertLength", |
| computable: false, |
| affected_by_all: false, |
| // Overlaps with perspective-origin. |
| legacy_overlapping: true, |
| }, |
| { |
| name: "-webkit-perspective-origin-y", |
| property_methods: ["ParseSingleValue"], |
| style_builder_custom_functions: ["inherit"], |
| interpolable: true, |
| converter: "ConvertLength", |
| computable: false, |
| affected_by_all: false, |
| // Overlaps with perspective-origin. |
| legacy_overlapping: true, |
| }, |
| { |
| name: "-webkit-print-color-adjust", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: false, // Actually true, but setting it to false saves a precious bit in ComputedStyleBase. |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["economy", "exact"], |
| default_value: "economy", |
| valid_for_permission_element: true, |
| invalidate: ["paint"], |
| }, |
| { |
| name: "-webkit-rtl-ordering", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| independent: true, |
| inherited: true, |
| field_template: "keyword", |
| keywords: ["logical", "visual"], |
| default_value: "logical", |
| name_for_methods: "RtlOrdering", |
| setter: "SetRtlOrdering", |
| type_name: "EOrder", |
| invalidate: ["reshape"], |
| }, |
| { |
| name: "ruby-align", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["space-around", "start", "center", "space-between"], |
| default_value: "space-around", |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| runtime_flag: "CssRubyAlign", |
| }, |
| { |
| name: "-webkit-ruby-position", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| type_name: "RubyPosition", |
| converter: "ConvertRubyPosition", |
| computable: false, |
| surrogate_for: "ruby-position", |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "ruby-position", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["over", "under"], |
| default_value: "over", |
| type_name: "RubyPosition", |
| converter: "ConvertRubyPosition", |
| valid_for_first_line: true, |
| valid_for_permission_element: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-tap-highlight-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h", |
| "third_party/blink/renderer/core/layout/layout_theme.h"], |
| type_name: "StyleColor", |
| default_value: "StyleColor(LayoutTheme::TapHighlightColor())", |
| converter: "ConvertStyleColor", |
| }, |
| { |
| name: "-webkit-text-combine", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| surrogate_for: "text-combine-upright", |
| }, |
| { |
| name: "text-emphasis-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| keywords: ["currentcolor"], |
| typedom_types: ["Keyword"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_marker: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "text-emphasis-position", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_size: 2, |
| field_template: "primitive", |
| default_value: "TextEmphasisPosition::kOverRight", |
| type_name: "TextEmphasisPosition", |
| converter: "ConvertTextTextEmphasisPosition", |
| valid_for_marker: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "text-emphasis-style", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| valid_for_marker: true, |
| }, |
| { |
| name: "-webkit-text-fill-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "-webkit-text-security", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["none", "disc", "circle", "square"], |
| default_value: "none", |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "-webkit-text-stroke-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "-webkit-text-stroke-width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "primitive", |
| default_value: "0", |
| type_name: "float", |
| converter: "ConvertTextStrokeWidth", |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["layout", "paint"], |
| affected_by_zoom: true, |
| }, |
| { |
| name: "-webkit-transform-origin-x", |
| property_methods: ["ParseSingleValue"], |
| style_builder_custom_functions: ["inherit"], |
| interpolable: true, |
| converter: "ConvertLength", |
| computable: false, |
| affected_by_all: false, |
| // Overlaps with transform-origin. |
| legacy_overlapping: true, |
| }, |
| { |
| name: "-webkit-transform-origin-y", |
| property_methods: ["ParseSingleValue"], |
| style_builder_custom_functions: ["inherit"], |
| interpolable: true, |
| converter: "ConvertLength", |
| computable: false, |
| affected_by_all: false, |
| // Overlaps with transform-origin. |
| legacy_overlapping: true, |
| }, |
| { |
| name: "-webkit-transform-origin-z", |
| property_methods: ["ParseSingleValue"], |
| style_builder_custom_functions: ["inherit"], |
| interpolable: true, |
| converter: "ConvertComputedLength<float>", |
| computable: false, |
| affected_by_all: false, |
| // Overlaps with transform-origin. |
| legacy_overlapping: true, |
| }, |
| { |
| name: "-webkit-user-drag", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["auto", "none", "element"], |
| default_value: "auto", |
| valid_for_permission_element: true, |
| invalidate: ["paint"], |
| }, |
| { |
| name: "-webkit-user-modify", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| computed_style_protected_functions: ["getter"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["read-only", "read-write", "read-write-plaintext-only"], |
| default_value: "read-only", |
| affected_by_all: false, |
| invalidate: ["paint"], |
| }, |
| { |
| name: "user-select", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| computed_style_protected_functions: ["getter"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| keywords: ["auto", "none", "text", "all", "contain"], |
| typedom_types: ["Keyword"], |
| default_value: "auto", |
| valid_for_permission_element: true, |
| invalidate: ["paint"], |
| }, |
| { |
| name: "white-space", |
| longhands: [ |
| "white-space-collapse", "text-wrap-mode" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "white-space-collapse", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_template: "primitive", |
| field_size: 2, // Ensure this is in sync with `kWhiteSpaceCollapseBits`. |
| type_name: "WhiteSpaceCollapse", |
| keywords: ["collapse", "preserve", "preserve-breaks", "break-spaces"], |
| default_value: "WhiteSpaceCollapse::kCollapse", |
| include_paths: ["third_party/blink/renderer/core/css/white_space.h"], |
| typedom_types: ["Keyword"], |
| valid_for_cue: true, |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| invalidate: ["reshape"], |
| }, |
| { |
| name: "text-wrap", |
| longhands: [ |
| "text-wrap-mode", "text-wrap-style" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "text-wrap-mode", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_template: "keyword", |
| type_name: "TextWrapMode", |
| keywords: ["wrap", "nowrap"], |
| default_value: "wrap", |
| typedom_types: ["Keyword"], |
| valid_for_cue: true, |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "text-wrap-style", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_template: "keyword", |
| type_name: "TextWrapStyle", |
| keywords: ["auto", "balance", "pretty", "stable"], |
| default_value: "auto", |
| typedom_types: ["Keyword"], |
| valid_for_cue: true, |
| valid_for_marker: true, |
| valid_for_page_context: true, |
| invalidate: ["layout"], |
| }, |
| { |
| name: "widows", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| field_group: "*", |
| field_template: "primitive", |
| computed_style_custom_functions: ["setter"], |
| default_value: "2", |
| type_name: "short", |
| typedom_types: ["Number"], |
| invalidate: ["layout"], |
| }, |
| { |
| name: "width", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| 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", |
| anchor_mode: "width", |
| logical_property_group: { |
| name: "size", |
| resolver: "horizontal", |
| }, |
| supports_incremental_style: true, |
| valid_for_position_try: true, |
| affected_by_zoom: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["layout", "scroll-anchor"], |
| }, |
| { |
| name: "will-change", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| keywords: ["auto"], |
| typedom_types: ["Keyword"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "word-break", |
| property_methods: ["CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| field_group: "*", |
| field_template: "keyword", |
| // Word Break Values. Matches WinIE and CSS3 |
| keywords: ["normal", "break-all", "keep-all", "break-word", "auto-phrase"], |
| default_value: "normal", |
| typedom_types: ["Keyword"], |
| valid_for_marker: true, |
| invalidate: ["layout", "paint"], |
| }, |
| { |
| name: "word-spacing", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| inherited: true, |
| converter: "ConvertSpacing", |
| keywords: ["normal"], |
| typedom_types: ["normal"], |
| typedom_types: ["Keyword", "Length"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_marker: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| affected_by_zoom: true, |
| }, |
| { |
| name: "z-index", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| interpolable: true, |
| field_group: "box", |
| field_template: "primitive", |
| default_value: "0", |
| type_name: "int", |
| computed_style_custom_functions: ["setter"], |
| style_builder_template: "auto", |
| converter: "ConvertInteger", |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Number"], |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| invalidate: ["z-index"], |
| }, |
| |
| // CSS logical props |
| { |
| name: "inline-size", |
| property_methods: ["ParseSingleValue"], |
| layout_dependent: true, |
| logical_property_group: { |
| name: "size", |
| resolver: "inline", |
| }, |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "block-size", |
| property_methods: ["ParseSingleValue"], |
| layout_dependent: true, |
| logical_property_group: { |
| name: "size", |
| resolver: "block", |
| }, |
| keywords: ["auto"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "min-inline-size", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "min-size", |
| resolver: "inline", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_position_try: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "min-block-size", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "min-size", |
| resolver: "block", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "max-inline-size", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "max-size", |
| resolver: "inline", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "max-block-size", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "max-size", |
| resolver: "block", |
| }, |
| keywords: ["none"], |
| typedom_types: ["Keyword", "Length", "Percentage"], |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "margin-inline-start", |
| layout_dependent: true, |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "margin", |
| resolver: "inline-start", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| keywords: ["auto"], |
| valid_for_first_letter: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "margin-inline-end", |
| layout_dependent: true, |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "margin", |
| resolver: "inline-end", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| keywords: ["auto"], |
| valid_for_first_letter: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "margin-block-start", |
| layout_dependent: true, |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "margin", |
| resolver: "block-start", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| keywords: ["auto"], |
| valid_for_first_letter: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "margin-block-end", |
| layout_dependent: true, |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "margin", |
| resolver: "block-end", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| keywords: ["auto"], |
| valid_for_first_letter: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "padding-inline-start", |
| layout_dependent: true, |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "padding", |
| resolver: "inline-start", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "padding-inline-end", |
| layout_dependent: true, |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "padding", |
| resolver: "inline-end", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "padding-block-start", |
| layout_dependent: true, |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "padding", |
| resolver: "block-start", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "padding-block-end", |
| layout_dependent: true, |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "padding", |
| resolver: "block-end", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "scroll-start-block", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group : { |
| name: "scroll-start", |
| resolver: "block" |
| }, |
| runtime_flag: "CSSScrollStart", |
| }, |
| { |
| name: "scroll-start-inline", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group : { |
| name: "scroll-start", |
| resolver: "inline" |
| }, |
| runtime_flag: "CSSScrollStart", |
| }, |
| { |
| name: "scroll-start-target-block", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "scroll-start-target", |
| resolver: "block", |
| }, |
| runtime_flag: "CSSScrollStartTarget", |
| }, |
| { |
| name: "scroll-start-target-inline", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "scroll-start-target", |
| resolver: "inline", |
| }, |
| runtime_flag: "CSSScrollStartTarget", |
| }, |
| { |
| name: "border-inline-start-width", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-width", |
| resolver: "inline-start", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-start-style", |
| logical_property_group: { |
| name: "border-style", |
| resolver: "inline-start", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-start-color", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-color", |
| resolver: "inline-start", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-end-width", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-width", |
| resolver: "inline-end", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-end-style", |
| logical_property_group: { |
| name: "border-style", |
| resolver: "inline-end", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-end-color", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-color", |
| resolver: "inline-end", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-start-width", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-width", |
| resolver: "block-start", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-start-style", |
| logical_property_group: { |
| name: "border-style", |
| resolver: "block-start", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-start-color", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-color", |
| resolver: "block-start", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-end-width", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-width", |
| resolver: "block-end", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-end-style", |
| logical_property_group: { |
| name: "border-style", |
| resolver: "block-end", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-end-color", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-color", |
| resolver: "block-end", |
| }, |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "inset-inline-start", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "inset", |
| resolver: "inline-start", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_position_try: true, |
| layout_dependent: true, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "inset-inline-end", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "inset", |
| resolver: "inline-end", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_position_try: true, |
| layout_dependent: true, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "inset-block-start", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "inset", |
| resolver: "block-start", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_position_try: true, |
| layout_dependent: true, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "inset-block-end", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "inset", |
| resolver: "block-end", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_position_try: true, |
| layout_dependent: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-start-start-radius", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-radius", |
| resolver: "start-start", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-start-end-radius", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-radius", |
| resolver: "start-end", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-end-start-radius", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-radius", |
| resolver: "end-start", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-end-end-radius", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "border-radius", |
| resolver: "end-end", |
| }, |
| typedom_types: ["Length", "Percentage"], |
| valid_for_first_letter: true, |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| |
| // Non-standard direction aware properties |
| |
| { |
| name: "-webkit-border-end-color", |
| alias_for: "border-inline-end-color", |
| }, |
| { |
| name: "-webkit-border-end-style", |
| alias_for: "border-inline-end-style", |
| }, |
| { |
| name: "-webkit-border-end-width", |
| alias_for: "border-inline-end-width", |
| }, |
| { |
| name: "-webkit-border-start-color", |
| alias_for: "border-inline-start-color", |
| }, |
| { |
| name: "-webkit-border-start-style", |
| alias_for: "border-inline-start-style", |
| }, |
| { |
| name: "-webkit-border-start-width", |
| alias_for: "border-inline-start-width", |
| }, |
| { |
| name: "-webkit-border-before-color", |
| alias_for: "border-block-start-color", |
| }, |
| { |
| name: "-webkit-border-before-style", |
| alias_for: "border-block-start-style", |
| }, |
| { |
| name: "-webkit-border-before-width", |
| alias_for: "border-block-start-width", |
| }, |
| { |
| name: "-webkit-border-after-color", |
| alias_for: "border-block-end-color", |
| }, |
| { |
| name: "-webkit-border-after-style", |
| alias_for: "border-block-end-style", |
| }, |
| { |
| name: "-webkit-border-after-width", |
| alias_for: "border-block-end-width", |
| }, |
| { |
| name: "-webkit-margin-end", |
| alias_for: "margin-inline-end", |
| }, |
| { |
| name: "-webkit-margin-start", |
| alias_for: "margin-inline-start", |
| }, |
| { |
| name: "-webkit-margin-before", |
| alias_for: "margin-block-start", |
| }, |
| { |
| name: "-webkit-margin-after", |
| alias_for: "margin-block-end", |
| }, |
| { |
| name: "-webkit-padding-end", |
| alias_for: "padding-inline-end", |
| }, |
| { |
| name: "-webkit-padding-start", |
| alias_for: "padding-inline-start", |
| }, |
| { |
| name: "-webkit-padding-before", |
| alias_for: "padding-block-start", |
| }, |
| { |
| name: "-webkit-padding-after", |
| alias_for: "padding-block-end", |
| }, |
| { |
| name: "-webkit-logical-width", |
| alias_for: "inline-size", |
| }, |
| { |
| name: "-webkit-logical-height", |
| alias_for: "block-size", |
| }, |
| { |
| name: "-webkit-min-logical-width", |
| alias_for: "min-inline-size", |
| }, |
| { |
| name: "-webkit-min-logical-height", |
| alias_for: "min-block-size", |
| }, |
| { |
| name: "-webkit-max-logical-width", |
| alias_for: "max-inline-size", |
| }, |
| { |
| name: "-webkit-max-logical-height", |
| alias_for: "max-block-size", |
| }, |
| |
| // Properties that we ignore in the StyleBuilder. |
| // TODO(timloh): This seems wrong, most of these shouldn't reach the |
| // StyleBuilder |
| { |
| name: "all", |
| affected_by_all: false, |
| style_builder_template: "empty", |
| computable: false, |
| }, |
| // TODO([email protected]): Remove -internal-font-size-delta. |
| // fontSizeDelta execCommand does not need separate CSS property. |
| { |
| name: "-internal-font-size-delta", |
| property_methods: ["ParseSingleValue"], |
| style_builder_template: "empty", |
| }, |
| { |
| name: "-webkit-text-decorations-in-effect", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| inherited: true, |
| style_builder_template: "empty", |
| }, |
| |
| // Descriptor only names |
| { |
| name: "font-display", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "src", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "unicode-range", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "syntax", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "initial-value", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "inherits", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "ascent-override", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "descent-override", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "line-gap-override", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "system", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "negative", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "prefix", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "suffix", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "range", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "pad", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "fallback", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "symbols", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "additive-symbols", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "speak-as", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "size-adjust", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "base-palette", |
| is_descriptor: true, |
| is_property: false, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "override-colors", |
| is_descriptor: true, |
| is_property: false, |
| }, |
| { |
| name: "navigation", |
| is_descriptor: true, |
| is_property: false, |
| runtime_flag: "ViewTransitionOnNavigation", |
| }, |
| { |
| name: "types", |
| is_descriptor: true, |
| is_property: false, |
| runtime_flag: "ViewTransitionOnNavigation", |
| }, |
| { |
| name: "position-area", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| style_builder_custom_functions: ["value", "inherit"], |
| field_group: "*", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/style/position_area.h"], |
| converter: "ConvertPositionArea", |
| default_value: "PositionArea()", |
| type_name: "PositionArea", |
| keywords: [ |
| "none", "top", "bottom", "center", "left", "right", "x-start", "x-end", |
| "y-start", "y-end", "start", "end", "self-start", "self-end", "all" |
| ], |
| typedom_types: ["Keyword"], |
| valid_for_position_try: true, |
| runtime_flag: "CSSPositionAreaProperty", |
| valid_for_permission_element: true, |
| // position-area needs to be applied before inset properties since |
| // anchor() functions compute relative to the containing block that is |
| // modified by position-area in AnchorEvaluatorImpl. |
| priority: 1, |
| invalidate: ["layout", "out-of-flow", "paint"], |
| }, |
| { |
| name: "inset-area", |
| surrogate_for: "position-area", |
| runtime_flag: "CSSInsetAreaProperty", |
| |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], |
| keywords: [ |
| "none", "top", "bottom", "center", "left", "right", "x-start", "x-end", |
| "y-start", "y-end", "start", "end", "self-start", "self-end", "all" |
| ], |
| typedom_types: ["Keyword"], |
| valid_for_position_try: true, |
| priority: 1, |
| }, |
| // Shorthands |
| { |
| name: "animation", |
| longhands: [ |
| "animation-duration", "animation-timing-function", "animation-delay", |
| "animation-iteration-count", "animation-direction", |
| "animation-fill-mode", "animation-play-state", "animation-name" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| }, |
| { |
| // Variant of the "animation" shorthand which includes the |
| // animation-timeline and animation-range-* longhands. |
| name: "-alternative-animation-with-timeline", |
| alternative_of: "animation", |
| longhands: [ |
| "animation-duration", "animation-timing-function", |
| "animation-delay", "animation-iteration-count", "animation-direction", |
| "animation-fill-mode", "animation-play-state", "animation-name", |
| "animation-timeline", "animation-range-start", "animation-range-end" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| runtime_flag: 'ScrollTimeline', |
| }, |
| { |
| name: "animation-range", |
| longhands: [ |
| "animation-range-start", "animation-range-end", |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| supports_incremental_style: false, |
| valid_for_keyframe: false, |
| runtime_flag: 'ScrollTimeline', |
| }, |
| { |
| name: "background", |
| longhands: [ |
| "background-image", "background-position-x", "background-position-y", |
| "background-size", "background-repeat", |
| "background-attachment", "background-origin", "background-clip", |
| "background-color" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| supports_incremental_style: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "background-position", |
| longhands: ["background-position-x", "background-position-y"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| computable: true, |
| supports_incremental_style: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border", |
| longhands: [ |
| "border-top-color", "border-top-style", "border-top-width", |
| "border-right-color", "border-right-style", "border-right-width", |
| "border-bottom-color", "border-bottom-style", "border-bottom-width", |
| "border-left-color", "border-left-style", "border-left-width", |
| "border-image-source", "border-image-slice", "border-image-width", |
| "border-image-outset", "border-image-repeat" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block", |
| longhands: [ |
| "border-block-start-color", "border-block-start-style", "border-block-start-width", |
| "border-block-end-color", "border-block-end-style", "border-block-end-width" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-color", |
| longhands: ["border-block-start-color", "border-block-end-color"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-end", |
| longhands: [ |
| "border-block-end-width", "border-block-end-style", |
| "border-block-end-color" |
| ], |
| property_methods: ["ParseShorthand"], |
| logical_property_group: { |
| name: "border", |
| resolver: "block-end", |
| }, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-start", |
| longhands: [ |
| "border-block-start-width", "border-block-start-style", |
| "border-block-start-color" |
| ], |
| property_methods: ["ParseShorthand"], |
| logical_property_group: { |
| name: "border", |
| resolver: "block-start", |
| }, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-style", |
| longhands: ["border-block-start-style", "border-block-end-style"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-block-width", |
| longhands: ["border-block-start-width", "border-block-end-width"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-bottom", |
| longhands: [ |
| "border-bottom-width", "border-bottom-style", "border-bottom-color" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| logical_property_group: { |
| name: "border", |
| resolver: "bottom", |
| }, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-color", |
| longhands: [ |
| "border-top-color", "border-right-color", "border-bottom-color", |
| "border-left-color" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| supports_incremental_style: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-image", |
| longhands: [ |
| "border-image-source", "border-image-slice", "border-image-width", |
| "border-image-outset", "border-image-repeat" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline", |
| longhands: [ |
| "border-inline-start-color", "border-inline-start-style", "border-inline-start-width", |
| "border-inline-end-color", "border-inline-end-style", "border-inline-end-width" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-color", |
| longhands: ["border-inline-start-color", "border-inline-end-color"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-end", |
| longhands: [ |
| "border-inline-end-width", "border-inline-end-style", |
| "border-inline-end-color" |
| ], |
| property_methods: ["ParseShorthand"], |
| logical_property_group: { |
| name: "border", |
| resolver: "inline-end", |
| }, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-start", |
| longhands: [ |
| "border-inline-start-width", "border-inline-start-style", |
| "border-inline-start-color" |
| ], |
| property_methods: ["ParseShorthand"], |
| logical_property_group: { |
| name: "border", |
| resolver: "inline-start", |
| }, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-style", |
| longhands: ["border-inline-start-style", "border-inline-end-style"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-inline-width", |
| longhands: ["border-inline-start-width", "border-inline-end-width"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-left", |
| longhands: [ |
| "border-left-width", "border-left-style", "border-left-color" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| logical_property_group: { |
| name: "border", |
| resolver: "left", |
| }, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-radius", |
| longhands: [ |
| "border-top-left-radius", "border-top-right-radius", |
| "border-bottom-right-radius", "border-bottom-left-radius" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_permission_element: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-right", |
| longhands: [ |
| "border-right-width", "border-right-style", "border-right-color" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| logical_property_group: { |
| name: "border", |
| resolver: "right", |
| }, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-spacing", |
| longhands: [ |
| "-webkit-border-horizontal-spacing", "-webkit-border-vertical-spacing" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "border-style", |
| longhands: [ |
| "border-top-style", "border-right-style", "border-bottom-style", |
| "border-left-style" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| keywords: ["none"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-top", |
| longhands: ["border-top-width", "border-top-style", "border-top-color"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| logical_property_group: { |
| name: "border", |
| resolver: "top", |
| }, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "border-width", |
| longhands: [ |
| "border-top-width", "border-right-width", "border-bottom-width", |
| "border-left-width" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "contain-intrinsic-inline-size", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "contain-intrinsic-size", |
| resolver: "inline", |
| }, |
| typedom_types: ["Keyword", "Length"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "contain-intrinsic-block-size", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "contain-intrinsic-size", |
| resolver: "block", |
| }, |
| typedom_types: ["Keyword", "Length"], |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "contain-intrinsic-size", |
| longhands: [ |
| "contain-intrinsic-width", "contain-intrinsic-height" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| computable: true, |
| valid_for_permission_element: true, |
| }, |
| { |
| name: "container", |
| longhands: [ |
| "container-name", "container-type" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "flex", |
| longhands: ["flex-grow", "flex-shrink", "flex-basis"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "flex-flow", |
| longhands: ["flex-direction", "flex-wrap"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "font", |
| longhands: [ |
| "font-style", "font-variant-ligatures", "font-variant-caps", |
| "font-variant-numeric", "font-variant-east-asian", "font-variant-alternates", |
| "font-variant-position", "font-variant-emoji", "font-weight", "font-stretch", |
| "font-size", "line-height", "font-family", "font-optical-sizing", |
| "font-size-adjust", "font-kerning", "font-feature-settings", |
| "font-variation-settings" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| // Changes to anything related to fonts require that we call style.UpdateFont(), |
| // which the incremental path does not do. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-variant", |
| longhands: [ |
| "font-variant-ligatures", "font-variant-caps", "font-variant-alternates", |
| "font-variant-numeric", "font-variant-east-asian", "font-variant-position", |
| "font-variant-emoji" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| is_descriptor: true, |
| computable: true, |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "font-synthesis", |
| longhands: ["font-synthesis-weight", "font-synthesis-style", "font-synthesis-small-caps"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| // See comment on font. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "grid", |
| longhands: [ |
| "grid-template-rows", "grid-template-columns", "grid-template-areas", |
| "grid-auto-flow", "grid-auto-rows", "grid-auto-columns" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| layout_dependent: true, |
| }, |
| { |
| name: "place-content", |
| longhands: ["align-content", "justify-content"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "place-items", |
| longhands: ["align-items", "justify-items"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "place-self", |
| longhands: ["align-self", "justify-self"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_position_try: true, |
| }, |
| { |
| name: "grid-area", |
| longhands: [ |
| "grid-row-start", "grid-column-start", "grid-row-end", |
| "grid-column-end" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "grid-column", |
| longhands: ["grid-column-start", "grid-column-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "gap", |
| longhands: ["row-gap", "column-gap"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "grid-row", |
| longhands: ["grid-row-start", "grid-row-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "grid-template", |
| longhands: [ |
| "grid-template-rows", "grid-template-columns", "grid-template-areas" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| layout_dependent: true, |
| }, |
| { |
| name: "inset", |
| longhands: ["top", "right", "bottom", "left"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_position_try: true, |
| layout_dependent: true, |
| }, |
| { |
| name: "inset-block", |
| longhands: ["inset-block-start", "inset-block-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_position_try: true, |
| layout_dependent: true, |
| }, |
| { |
| name: "inset-inline", |
| longhands: ["inset-inline-start", "inset-inline-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_position_try: true, |
| layout_dependent: true, |
| }, |
| { |
| name: "list-style", |
| longhands: ["list-style-position", "list-style-image", "list-style-type"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "margin", |
| longhands: ["margin-top", "margin-right", "margin-bottom", "margin-left"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| layout_dependent: true, |
| valid_for_position_try: true, |
| valid_for_permission_element: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "margin-block", |
| longhands: ["margin-block-start", "margin-block-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| layout_dependent: true, |
| valid_for_position_try: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "margin-inline", |
| longhands: ["margin-inline-start", "margin-inline-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| layout_dependent: true, |
| valid_for_position_try: true, |
| valid_for_limited_page_context: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "marker", |
| longhands: ["marker-start", "marker-mid", "marker-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "masonry-track", |
| longhands: ["masonry-track-start", "masonry-track-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "CSSMasonryLayout", |
| }, |
| { |
| name: "offset", |
| longhands: [ |
| "offset-position", "offset-path", "offset-distance", "offset-rotate", |
| "offset-anchor" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "outline", |
| longhands: ["outline-color", "outline-style", "outline-width"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "overflow", |
| longhands: ["overflow-x", "overflow-y"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| // See comment on overflow-x. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "overscroll-behavior", |
| longhands: ["overscroll-behavior-x", "overscroll-behavior-y"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "padding", |
| longhands: [ |
| "padding-top", "padding-right", "padding-bottom", "padding-left" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| layout_dependent: true, |
| supports_incremental_style: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "padding-block", |
| longhands: ["padding-block-start", "padding-block-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "padding-inline", |
| longhands: ["padding-inline-start", "padding-inline-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| valid_for_page_context: true, |
| }, |
| { |
| name: "page-break-after", |
| longhands: ["break-after"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "page-break-before", |
| longhands: ["break-before"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "page-break-inside", |
| longhands: ["break-inside"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "position-try", |
| longhands: ["position-try-order", "position-try-options"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| // Variant of the "position-try" shorthand which has the new |
| // position-try-fallbacks instead of position-try-options. |
| name: "-alternative-position-try", |
| alternative_of: "position-try", |
| longhands: ["position-try-order", "position-try-fallbacks"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "CSSPositionTryFallbacks", |
| }, |
| { |
| name: "scroll-margin", |
| longhands: ["scroll-margin-top", "scroll-margin-right", "scroll-margin-bottom", "scroll-margin-left"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "scroll-margin-block", |
| longhands: ["scroll-margin-block-start", "scroll-margin-block-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "scroll-margin-inline", |
| longhands: ["scroll-margin-inline-start", "scroll-margin-inline-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "scroll-padding", |
| longhands: [ |
| "scroll-padding-top", "scroll-padding-right", "scroll-padding-bottom", |
| "scroll-padding-left" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "scroll-padding-block", |
| longhands: ["scroll-padding-block-start", "scroll-padding-block-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "scroll-padding-inline", |
| longhands: ["scroll-padding-inline-start", "scroll-padding-inline-end"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "scroll-start", |
| longhands: ["scroll-start-block", "scroll-start-inline"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "CSSScrollStart", |
| }, |
| { |
| name: "scroll-start-target", |
| longhands: ["scroll-start-target-block", "scroll-start-target-inline"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "CSSScrollStartTarget", |
| }, |
| { |
| name: "scroll-timeline", |
| longhands: ["scroll-timeline-name", "scroll-timeline-axis"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "text-decoration", |
| longhands: ["text-decoration-line", "text-decoration-thickness", "text-decoration-style", "text-decoration-color"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| computable: true, |
| valid_for_page_context: true, |
| }, |
| { |
| name: "transition", |
| longhands: [ |
| "transition-property", "transition-duration", |
| "transition-timing-function", "transition-delay", |
| "transition-behavior", |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| // Animation properites are never incremental. |
| supports_incremental_style: false, |
| }, |
| { |
| name: "view-timeline", |
| longhands: ["view-timeline-name", "view-timeline-axis", "view-timeline-inset"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "-webkit-border-after", |
| alias_for: "border-block-end", |
| }, |
| { |
| name: "-webkit-border-before", |
| alias_for: "border-block-start", |
| }, |
| { |
| name: "-webkit-border-end", |
| alias_for: "border-inline-end", |
| }, |
| { |
| name: "-webkit-border-start", |
| alias_for: "border-inline-start", |
| }, |
| { |
| name: "-webkit-column-break-after", |
| longhands: ["break-after"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "-webkit-column-break-before", |
| longhands: ["break-before"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "-webkit-column-break-inside", |
| longhands: ["break-inside"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "column-rule", |
| longhands: [ |
| "column-rule-width", "column-rule-style", "column-rule-color" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "columns", |
| longhands: ["column-width", "column-count"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "mask", |
| longhands: [ |
| "mask-image", "-webkit-mask-position-x", |
| "-webkit-mask-position-y", "mask-size", "mask-repeat", "mask-origin", |
| "mask-clip", "mask-composite", "mask-mode" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "-webkit-mask", |
| alias_for: "mask", |
| }, |
| { |
| name: "-webkit-mask-box-image", |
| longhands: [ |
| "-webkit-mask-box-image-source", "-webkit-mask-box-image-slice", |
| "-webkit-mask-box-image-width", "-webkit-mask-box-image-outset", |
| "-webkit-mask-box-image-repeat" |
| ], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| computable: true, |
| }, |
| { |
| name: "mask-position", |
| longhands: ["-webkit-mask-position-x", "-webkit-mask-position-y"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| computable: true, |
| }, |
| { |
| name: "-webkit-mask-position", |
| alias_for: "mask-position", |
| }, |
| { |
| name: "text-emphasis", |
| longhands: ["text-emphasis-style", "text-emphasis-color"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| { |
| name: "-webkit-text-stroke", |
| longhands: ["-webkit-text-stroke-width", "-webkit-text-stroke-color"], |
| property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], |
| }, |
| |
| // Visited properties. |
| { |
| name: "-internal-visited-color", |
| visited_property_for: "color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| inherited: 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_protected_functions: ["getter"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| priority: 1, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| is_visited_highlight_colors: true, |
| invalidate: ["background-current-color", "border-visual", "color"], |
| }, |
| { |
| name: "-internal-visited-caret-color", |
| visited_property_for: "caret-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "*->inherited_visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_auto_color.h"], |
| default_value: "StyleAutoColor::AutoColor()", |
| type_name: "StyleAutoColor", |
| converter: "ConvertStyleAutoColor", |
| computed_style_protected_functions: ["getter"], |
| style_builder_template: "visited_color", |
| style_builder_template_args: { |
| initial_color: "StyleAutoColor::AutoColor", |
| }, |
| valid_for_highlight_legacy: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "-internal-visited-column-rule-color", |
| visited_property_for: "column-rule-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| field_group: "*->visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| invalidate: ["paint"], |
| }, |
| { |
| name: "-internal-visited-background-color", |
| visited_property_for: "background-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| field_group: "*->visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(Color::kTransparent)", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_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_legacy: true, |
| valid_for_highlight: true, |
| is_visited_highlight_colors: true, |
| invalidate: ["background-color"], |
| }, |
| { |
| name: "-internal-visited-border-left-color", |
| visited_property_for: "border-left-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| field_group: "*->visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_first_letter: true, |
| logical_property_group: { |
| name: "visited-border-color", |
| resolver: "left", |
| }, |
| invalidate: ["border-outline-visited-color"], |
| }, |
| { |
| name: "-internal-visited-border-right-color", |
| visited_property_for: "border-right-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| field_group: "*->visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_first_letter: true, |
| logical_property_group: { |
| name: "visited-border-color", |
| resolver: "right", |
| }, |
| invalidate: ["border-outline-visited-color"], |
| }, |
| { |
| name: "-internal-visited-border-top-color", |
| visited_property_for: "border-top-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| field_group: "*->visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_first_letter: true, |
| logical_property_group: { |
| name: "visited-border-color", |
| resolver: "top", |
| }, |
| invalidate: ["border-outline-visited-color"], |
| }, |
| { |
| name: "-internal-visited-border-bottom-color", |
| visited_property_for: "border-bottom-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| field_group: "*->visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_first_letter: true, |
| logical_property_group: { |
| name: "visited-border-color", |
| resolver: "bottom", |
| }, |
| invalidate: ["border-outline-visited-color"], |
| }, |
| { |
| name: "-internal-visited-border-inline-start-color", |
| visited_property_for: "border-inline-start-color", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "visited-border-color", |
| resolver: "inline-start", |
| }, |
| valid_for_first_letter: true, |
| }, |
| { |
| name: "-internal-visited-border-inline-end-color", |
| visited_property_for: "border-inline-end-color", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "visited-border-color", |
| resolver: "inline-end", |
| }, |
| valid_for_first_letter: true, |
| }, |
| { |
| name: "-internal-visited-border-block-start-color", |
| visited_property_for: "border-block-start-color", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "visited-border-color", |
| resolver: "block-start", |
| }, |
| valid_for_first_letter: true, |
| }, |
| { |
| name: "-internal-visited-border-block-end-color", |
| visited_property_for: "border-block-end-color", |
| property_methods: ["ParseSingleValue"], |
| logical_property_group: { |
| name: "visited-border-color", |
| resolver: "block-end", |
| }, |
| valid_for_first_letter: true, |
| }, |
| { |
| name: "-internal-visited-fill", |
| visited_property_for: "fill", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| 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: "InternalVisitedFillPaint", |
| converter: "ConvertSVGPaint", |
| style_builder_template: "visited_color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialFillPaint", |
| }, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| }, |
| { |
| name: "-internal-visited-outline-color", |
| visited_property_for: "outline-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| field_group: "*->visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_cue: true, |
| invalidate: ["border-outline-visited-color"], |
| }, |
| { |
| name: "-internal-visited-stroke", |
| visited_property_for: "stroke", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "svg->stroke", |
| field_template: "external", |
| type_name: "SVGPaint", |
| include_paths: ["third_party/blink/renderer/core/style/svg_paint.h"], |
| default_value: "SVGPaint()", |
| name_for_methods: "InternalVisitedStrokePaint", |
| converter: "ConvertSVGPaint", |
| style_builder_template: "visited_color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialStrokePaint", |
| }, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["paint"], |
| }, |
| { |
| name: "-internal-visited-text-decoration-color", |
| visited_property_for: "text-decoration-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| field_group: "*->visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "-internal-visited-text-emphasis-color", |
| visited_property_for: "text-emphasis-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "*->inherited_visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "-internal-visited-text-fill-color", |
| visited_property_for: "-webkit-text-fill-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "*->inherited_visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["color"], |
| }, |
| { |
| name: "-internal-visited-text-stroke-color", |
| visited_property_for: "-webkit-text-stroke-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "*->inherited_visited", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "visited_color", |
| valid_for_highlight_legacy: true, |
| valid_for_highlight: true, |
| invalidate: ["color"], |
| }, |
| |
| // Forced colors properties. |
| { |
| name: "-internal-forced-background-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| field_group: "*->forced_colors", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css_value_keywords.h", |
| "third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(CSSValueID::kCanvas)", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| style_builder_template_args: { |
| initial_color: "ComputedStyleInitialValues::InitialInternalForcedBackgroundColor", |
| }, |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| }, |
| { |
| name: "-internal-forced-border-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| field_group: "*->forced_colors", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_first_letter: true, |
| }, |
| { |
| name: "-internal-forced-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "*->inherited_forced_colors", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css_value_keywords.h", |
| "third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(CSSValueID::kCanvastext)", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| }, |
| { |
| name: "-internal-forced-outline-color", |
| property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"], |
| field_group: "*->forced_colors", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor::CurrentColor()", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| converter: "ConvertStyleColor", |
| style_builder_template: "color", |
| valid_for_cue: true, |
| }, |
| { |
| name: "-internal-forced-visited-color", |
| visited_property_for: "-internal-forced-color", |
| property_methods: ["ParseSingleValue", "ColorIncludingFallback"], |
| inherited: true, |
| field_group: "*->inherited_forced_colors", |
| field_template: "external", |
| include_paths: ["third_party/blink/renderer/core/css_value_keywords.h", |
| "third_party/blink/renderer/core/css/style_color.h"], |
| default_value: "StyleColor(CSSValueID::kCanvastext)", |
| type_name: "StyleColor", |
| computed_style_protected_functions: ["getter"], |
| style_builder_custom_functions: ["initial", "inherit", "value"], |
| valid_for_first_letter: true, |
| valid_for_first_line: true, |
| valid_for_cue: true, |
| valid_for_marker: true, |
| }, |
| |
| // Name: -internal-empty-line-height: |
| // Value: none | fabricated |
| // If the element is inline or contains visible text, this property has |
| // no effect. |
| // |
| // 'none' |
| // The box's intrinsic height is 0, and it defines no baseline. |
| // 'fabricated' |
| // The box has intrinsic height and baseline, computed from the current |
| // font metrics. |
| { |
| name: "-internal-empty-line-height", |
| property_methods: ["ParseSingleValue" ], |
| inherited: true, |
| field_group: "*", |
| field_template: "primitive", |
| type_name: "bool", |
| default_value: "false", |
| name_for_methods: "HasLineIfEmpty", |
| converter: "ConvertInternalEmptyLineHeight", |
| }, |
| { |
| name: "-internal-align-content-block", |
| property_methods: ["ParseSingleValue"], |
| inherited: false, |
| field_group: "*", |
| field_template: "primitive", |
| type_name: "bool", |
| default_value: "false", |
| name_for_methods: "AlignContentBlockCenter", |
| converter: "ConvertInternalAlignContentBlock", |
| invalidate: ["layout"], |
| }, |
| // Aliases; these map to the same CSSPropertyID |
| { |
| name: "-epub-caption-side", |
| alias_for: "caption-side", |
| }, |
| { |
| name: "-epub-text-combine", |
| alias_for: "-webkit-text-combine", |
| }, |
| { |
| name: "-epub-text-emphasis", |
| alias_for: "text-emphasis", |
| }, |
| { |
| name: "-epub-text-emphasis-color", |
| alias_for: "text-emphasis-color", |
| }, |
| { |
| name: "-epub-text-emphasis-style", |
| alias_for: "text-emphasis-style", |
| }, |
| { |
| name: "-epub-text-orientation", |
| alias_for: "-webkit-text-orientation", |
| }, |
| { |
| name: "-epub-text-transform", |
| alias_for: "text-transform", |
| }, |
| { |
| name: "-epub-word-break", |
| alias_for: "word-break", |
| }, |
| { |
| name: "-epub-writing-mode", |
| alias_for: "-webkit-writing-mode", |
| }, |
| { |
| name: "-webkit-align-content", |
| alias_for: "align-content", |
| }, |
| { |
| name: "-webkit-align-items", |
| alias_for: "align-items", |
| }, |
| { |
| name: "-webkit-align-self", |
| alias_for: "align-self", |
| }, |
| { |
| name: "-webkit-animation", |
| alias_for: "animation", |
| }, |
| { |
| // Since "animation" has an alternative property, "-webkit-animation" |
| // also needs to have an alternative property that is an alias of |
| // animation's alternative property. Unfortunately we can't just resolve |
| // -webkit-animation directly to animation's alternative, because we have |
| // to remember the -webkit-ness of the property to enable legacy parsing |
| // behavior. (See CSSParserLocalContext::UseAliasParsing). |
| name: "-webkit-alternative-animation-with-timeline", |
| alias_for: "-alternative-animation-with-timeline", |
| alternative_of: "-webkit-animation", |
| runtime_flag: "ScrollTimeline", |
| }, |
| { |
| name: "-webkit-animation-delay", |
| alias_for: "animation-delay", |
| }, |
| { |
| name: "-webkit-animation-direction", |
| alias_for: "animation-direction", |
| }, |
| { |
| name: "-webkit-animation-duration", |
| alias_for: "animation-duration", |
| }, |
| { |
| name: "-webkit-animation-fill-mode", |
| alias_for: "animation-fill-mode", |
| }, |
| { |
| name: "-webkit-animation-iteration-count", |
| alias_for: "animation-iteration-count", |
| }, |
| { |
| name: "-webkit-animation-name", |
| alias_for: "animation-name", |
| }, |
| { |
| name: "-webkit-animation-play-state", |
| alias_for: "animation-play-state", |
| }, |
| { |
| name: "-webkit-animation-timing-function", |
| alias_for: "animation-timing-function", |
| }, |
| { |
| name: "-webkit-backface-visibility", |
| alias_for: "backface-visibility", |
| }, |
| { |
| name: "-webkit-background-clip", |
| alias_for: "background-clip", |
| }, |
| // -webkit-background-origin accepts "content", "padding", and "border" |
| // values. See crbug.com/604023 |
| { |
| name: "-webkit-background-origin", |
| alias_for: "background-origin" |
| }, |
| // "-webkit-background-size: 10px" behaves as "background-size: 10px 10px" |
| { |
| name: "-webkit-background-size", |
| alias_for: "background-size", |
| }, |
| { |
| name: "-webkit-border-bottom-left-radius", |
| alias_for: "border-bottom-left-radius", |
| }, |
| { |
| name: "-webkit-border-bottom-right-radius", |
| alias_for: "border-bottom-right-radius", |
| }, |
| // "-webkit-border-radius: 1px 2px" behaves as "border-radius: 1px / 2px" |
| { |
| name: "-webkit-border-radius", |
| alias_for: "border-radius", |
| }, |
| { |
| name: "-webkit-border-top-left-radius", |
| alias_for: "border-top-left-radius", |
| }, |
| { |
| name: "-webkit-border-top-right-radius", |
| alias_for: "border-top-right-radius", |
| }, |
| { |
| name: "-webkit-box-shadow", |
| alias_for: "box-shadow", |
| }, |
| { |
| name: "-webkit-box-sizing", |
| alias_for: "box-sizing", |
| }, |
| { |
| name: "-webkit-clip-path", |
| alias_for: "clip-path", |
| }, |
| { |
| name: "-webkit-column-count", |
| alias_for: "column-count", |
| }, |
| { |
| name: "-webkit-column-gap", |
| alias_for: "column-gap", |
| }, |
| { |
| name: "-webkit-column-rule", |
| alias_for: "column-rule", |
| }, |
| { |
| name: "-webkit-column-rule-color", |
| alias_for: "column-rule-color", |
| }, |
| { |
| name: "-webkit-column-rule-style", |
| alias_for: "column-rule-style", |
| }, |
| { |
| name: "-webkit-column-rule-width", |
| alias_for: "column-rule-width", |
| }, |
| { |
| name: "-webkit-column-span", |
| alias_for: "column-span", |
| }, |
| { |
| name: "-webkit-column-width", |
| alias_for: "column-width", |
| }, |
| { |
| name: "-webkit-columns", |
| alias_for: "columns", |
| }, |
| { |
| name: "-webkit-filter", |
| alias_for: "filter", |
| }, |
| { |
| name: "-webkit-flex", |
| alias_for: "flex", |
| }, |
| { |
| name: "-webkit-flex-basis", |
| alias_for: "flex-basis", |
| }, |
| { |
| name: "-webkit-flex-direction", |
| alias_for: "flex-direction", |
| }, |
| { |
| name: "-webkit-flex-flow", |
| alias_for: "flex-flow", |
| }, |
| { |
| name: "-webkit-flex-grow", |
| alias_for: "flex-grow", |
| }, |
| { |
| name: "-webkit-flex-shrink", |
| alias_for: "flex-shrink", |
| }, |
| { |
| name: "-webkit-flex-wrap", |
| alias_for: "flex-wrap", |
| }, |
| { |
| name: "-webkit-font-feature-settings", |
| alias_for: "font-feature-settings", |
| }, |
| { |
| name: "-webkit-hyphenate-character", |
| alias_for: "hyphenate-character", |
| }, |
| { |
| name: "-webkit-justify-content", |
| alias_for: "justify-content", |
| }, |
| { |
| name: "-webkit-opacity", |
| alias_for: "opacity", |
| }, |
| { |
| name: "-webkit-order", |
| alias_for: "order", |
| }, |
| { |
| name: "-webkit-perspective", |
| alias_for: "perspective", |
| }, |
| { |
| name: "-webkit-perspective-origin", |
| alias_for: "perspective-origin", |
| }, |
| { |
| name: "-webkit-shape-image-threshold", |
| alias_for: "shape-image-threshold", |
| }, |
| { |
| name: "-webkit-shape-margin", |
| alias_for: "shape-margin", |
| }, |
| { |
| name: "-webkit-shape-outside", |
| alias_for: "shape-outside", |
| }, |
| { |
| name: "-webkit-text-emphasis", |
| alias_for: "text-emphasis", |
| }, |
| { |
| name: "-webkit-text-emphasis-color", |
| alias_for: "text-emphasis-color", |
| }, |
| { |
| name: "-webkit-text-emphasis-position", |
| alias_for: "text-emphasis-position", |
| }, |
| { |
| name: "-webkit-text-emphasis-style", |
| alias_for: "text-emphasis-style", |
| }, |
| { |
| name: "-webkit-text-size-adjust", |
| alias_for: "text-size-adjust", |
| }, |
| { |
| name: "-webkit-transform", |
| alias_for: "transform", |
| }, |
| { |
| name: "-webkit-transform-origin", |
| alias_for: "transform-origin", |
| }, |
| { |
| name: "-webkit-transform-style", |
| alias_for: "transform-style", |
| }, |
| { |
| name: "-webkit-transition", |
| alias_for: "transition", |
| }, |
| { |
| name: "-webkit-transition-delay", |
| alias_for: "transition-delay", |
| }, |
| { |
| name: "-webkit-transition-duration", |
| alias_for: "transition-duration", |
| }, |
| { |
| name: "-webkit-transition-property", |
| alias_for: "transition-property", |
| }, |
| { |
| name: "-webkit-transition-timing-function", |
| alias_for: "transition-timing-function", |
| }, |
| { |
| name: "-webkit-user-select", |
| alias_for: "user-select", |
| }, |
| { |
| name: "word-wrap", |
| alias_for: "overflow-wrap", |
| }, |
| { |
| name: "grid-column-gap", |
| alias_for: "column-gap", |
| }, |
| { |
| name: "grid-row-gap", |
| alias_for: "row-gap", |
| }, |
| { |
| name: "grid-gap", |
| alias_for: "gap", |
| }, |
| ], |
| } |