blob: fb6bcf3e99ca7538e36a0d860fce8489f290467e [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
// This file specifies all the CSS properties we support and the necessary
// information for our code generation. The various supported arguments
// are described below with example usage
parameters: {
// - alias_for: "other-property"
// Properties specifying alias_for should be virtually identical to the
// properties they alias. Minor parsing differences are allowed as long as
// the CSSValues created are of the same format of the aliased property.
alias_for: {
},
// - longhands: ["property", "other-property"]
// The property is a shorthand for several other properties.
longhands: {
},
// - property_methods: ["method1", "method2"]
// List of methods that are implemented in the CSSProperty for this
// property.
property_methods: {
default: [],
valid_type: "list",
valid_values: [
"ParseSingleValue",
"ParseShorthand",
"IsLayoutDependent",
"CSSValueFromComputedStyleInternal",
"ColorIncludingFallback"
],
},
// - custom_apply_functions_all
// - custom_apply_functions_initial
// - custom_apply_functions_inherit
// - custom_apply_functions_value
// Handlers of the given types will be declared but not defined. Setting
// custom_apply_functions_all is equivalent to setting the other three flags
custom_apply_functions_all: {
default: false,
valid_type: "bool",
},
custom_apply_functions_initial: {
default: false,
valid_type: "bool",
},
custom_apply_functions_inherit: {
default: false,
valid_type: "bool",
},
custom_apply_functions_value: {
default: false,
valid_type: "bool",
},
// - is_descriptor
// Whether it is a CSS descriptor. Descriptors define the characteristics of
// an at-rule. E.g. @viewport is an at-rule, and width is a valid descriptor
// for @viewport. 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",
},
// - affected_by_all
// The affected_by_all flag indicates whether a change to the CSS property
// "all" affects this property.
// c.f. http://dev.w3.org/csswg/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 AnimatedStyleBuilder, CSSPropertyEquality and
// CSSAnimatableValueFactory.
// - inherited
// The property will inherit by default if no value is specified, typically
// mentioned in specifications as "Inherited: yes"
interpolable: {
default: false,
valid_type: "bool",
},
inherited: {
default: false,
valid_type: "bool",
},
// - compositable
// The property can be animated by the compositor
compositable: {
default: false,
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
// CSSPropertiesRanking.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",
// Field stores a primitive value like int/bool. The type is specified
// by type_name. The interface has a initial/getter/setter/resetter.
"primitive",
// Field is stored as a bool, whose default value is false
// and can only be set to true. Has a initial/getter/setter.
"monotonic_flag",
// Field has type specified at type_name and has a getter/setter.
// Also has a setter taking an rvalue reference. Cannot be packed.
"external",
// Field is stored as a wrapper_pointer_name to a class.
"pointer",
// Preset "length" for external and Length class
// This preset represents alias templates that will be replace by
// entries in CSSFieldAlias.json5.
"<[a-z]+>"
],
},
// - include_paths: ["path/to/file1.h", "path/to/file2.h"]
// List of files containing the definitions of types in 'type_name'. Each of
// these files will appear as a #include in ComputedStyleBase.h. For
// example, if the type_name is 'Vector<String>', include_paths should be
// ["platform/wtf/Vector.h", "platform/wtf/text/WTFString.h"]
include_paths: {
default: [],
},
// Name of the pointer type that wraps this field (e.g. scoped_refptr).
wrapper_pointer_name: {
valid_type: "str",
valid_values: ["scoped_refptr", "Persistent", "std::unique_ptr"],
},
// - keywords: ["keyword1", "keyword2"]
// This specifies all valid keyword values for the property.
// TODO(sashab): Once all properties are represented here, delete
// CSSValueKeywords.in and use this list instead.
keywords: {
default: [],
},
// - default_value: "keyword-value"
// This specifies the default value for this field.
// - for keyword fields, this is the initial keyword
// - for other fields, this is a string containg the C++ expression
// that is used to initialise the field.
default_value: {
},
// Flags which go into CSSOMTypes:
// - typedom_types: ["Type", "OtherType"]
// The property can take types specified in typedom_types for CSS Typed OM.
// Keyword does not need to be specified as every property can take
// keywords.
// - 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",
"Length",
"Number",
"Percent",
"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 StyleBuilderCustom.cpp. We only should
// use StyleBuilderFunctions.cpp.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
// - svg
// The default property handlers access the SVGComputedStyle
font: {
default: false,
valid_type: "bool",
},
svg: {
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
// - getter
// The ComputedStyle getter, defaults to e.g. borderBottomLeft
// - setter
// The ComputedStyle setter, defaults to e.g. setBorderBottomLeft
// - type_name
// The computed type for the property. Only required for the default value
// application, defaults to e.g. EDisplay
name_for_methods: {
},
getter: {
},
setter: {
},
type_name: {
},
// - custom_function: Any function specified in the list is not
// automatically generated in ComputedStyle. Use this when a generated
// function is not correct.
computed_style_custom_functions: {
default: [],
valid_type: "list",
valid_values: ["initial", "getter", "setter", "reset", "mutable"],
},
// - converter: "ConvertRadius"
// The StyleBuilder will call the specified function on
// StyleBuilderConverter to convert a CSSValue to an appropriate platform
// value
converter: {
},
// - builder_skip
// Ignore this property in the StyleBuilder
builder_skip: {
default: false,
valid_type: "bool",
},
// - logical_side
// The logical side represented by a direction-dependent property
// - shorthand_for_physical_side
// Shorthand to be used for resolving direction-dependent properties to
// physical properties
direction_aware_options: {
logical_side: {
valid_type: "str",
valid_values: ["after", "before", "end", "start", "width", "height"],
},
shorthand_for_physical_side: {
valid_type: "str",
},
},
// - priority: "High"
// The priority level for computing the property. Valid values are
// "Animation" (highest), "High" and "Low". Properties with the same
// priority level are grouped and computed in alphabetical order. The
// default value is "Low".
priority: {
default: "Low",
valid_values: ["Animation", "High", "Low"],
},
},
// Members in the data objects should appear in the same order as in the
// parameters object above
data: [
// Properties with StyleBuilder handling
// Animation Priority properties
{
name: "animation-delay",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "animation-direction",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
keywords: ["normal", "reverse", "alternate", "alternate-reverse"],
separator: ",",
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "animation-duration",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
typedom_types: ["Time"],
separator: ",",
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "animation-fill-mode",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "animation-iteration-count",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
keywords: ["infinite"],
separator: ",",
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "animation-name",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "animation-play-state",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "animation-timing-function",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "transition-delay",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "transition-duration",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
typedom_types: ["Time"],
separator: ",",
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "transition-property",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
priority: "Animation",
},
{
name: "transition-timing-function",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
priority: "Animation",
},
// 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,
field_group: "inherited",
field_template: "external",
include_paths: ["platform/graphics/Color.h"],
default_value: "Color::kBlack",
type_name: "Color",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_all: true,
priority: "High",
},
{
name: "direction",
property_methods: ["CSSValueFromComputedStyleInternal"],
affected_by_all: false,
inherited: true,
field_template: "keyword",
include_paths: ["platform/text/TextDirection.h"],
keywords: ["ltr", "rtl"],
default_value: "ltr",
type_name: "TextDirection",
custom_apply_functions_value: true,
priority: "High",
},
{
name: "font-family",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
inherited: true,
font: true,
name_for_methods: "FamilyDescription",
type_name: "FontDescription::FamilyDescription",
converter: "ConvertFontFamily",
priority: "High",
},
{
name: "font-kerning",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
font: true,
name_for_methods: "Kerning",
type_name: "FontDescription::Kerning",
priority: "High",
},
{
name: "font-size",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
font: true,
name_for_methods: "Size",
getter: "GetSize",
converter: "ConvertFontSize",
priority: "High",
},
{
name: "font-size-adjust",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
runtime_flag: "CSSFontSizeAdjust",
font: true,
name_for_methods: "SizeAdjust",
converter: "ConvertFontSizeAdjust",
priority: "High",
},
{
name: "font-stretch",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
inherited: true,
font: true,
name_for_methods: "Stretch",
converter: "ConvertFontStretch",
priority: "High",
},
{
name: "font-style",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
inherited: true,
font: true,
name_for_methods: "Style",
converter: "ConvertFontStyle",
priority: "High",
},
{
name: "font-variant-ligatures",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
font: true,
name_for_methods: "VariantLigatures",
type_name: "VariantLigatures",
converter: "ConvertFontVariantLigatures",
priority: "High",
},
{
name: "font-variant-caps",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
font: true,
name_for_methods: "VariantCaps",
converter: "ConvertFontVariantCaps",
priority: "High",
},
{
name: "font-variant-east-asian",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
font: true,
name_for_methods: "VariantEastAsian",
converter: "ConvertFontVariantEastAsian",
priority: "High",
},
{
name: "font-variant-numeric",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
font: true,
name_for_methods: "VariantNumeric",
converter: "ConvertFontVariantNumeric",
priority: "High",
},
{
name: "font-weight",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
interpolable: true,
inherited: true,
font: true,
name_for_methods: "Weight",
converter: "ConvertFontWeight",
priority: "High",
},
{
name: "font-feature-settings",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
inherited: true,
font: true,
name_for_methods: "FeatureSettings",
converter: "ConvertFontFeatureSettings",
priority: "High",
},
{
name: "font-variation-settings",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
runtime_flag: "CSSVariableFonts",
font: true,
name_for_methods: "VariationSettings",
converter: "ConvertFontVariationSettings",
priority: "High",
},
{
name: "-webkit-font-smoothing",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
font: true,
type_name: "FontSmoothingMode",
priority: "High",
},
{
name: "-webkit-locale",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
font: true,
custom_apply_functions_value: true,
priority: "High",
},
{
name: "text-orientation",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "keyword",
keywords: ["sideways", "mixed", "upright"],
default_value: "mixed",
getter: "GetTextOrientation",
custom_apply_functions_value: true,
priority: "High",
},
{
name: "-webkit-text-orientation",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
type_name: "TextOrientation",
custom_apply_functions_value: true,
priority: "High",
},
{
name: "writing-mode",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
field_template: "keyword",
include_paths: ["platform/text/WritingMode.h"],
keywords: ["horizontal-tb", "vertical-rl", "vertical-lr"],
default_value: "horizontal-tb",
type_name: "WritingMode",
custom_apply_functions_value: true,
priority: "High",
},
{
name: "-webkit-writing-mode",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
type_name: "WritingMode",
custom_apply_functions_value: true,
priority: "High",
},
{
name: "text-rendering",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
font: true,
type_name: "TextRenderingMode",
priority: "High",
},
{
name: "zoom",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
field_group: "visual",
field_template: "primitive",
default_value: "1.0",
type_name: "float",
computed_style_custom_functions: ["setter"],
custom_apply_functions_all: true,
priority: "High",
},
{
name: "align-content",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleContentAlignmentData.h"],
default_value: "StyleContentAlignmentData(ContentPosition::kNormal, ContentDistributionType::kDefault, OverflowAlignment::kDefault)",
type_name: "StyleContentAlignmentData",
converter: "ConvertContentAlignmentData",
},
{
name: "align-items",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleSelfAlignmentData.h"],
default_value: "StyleSelfAlignmentData(ItemPosition::kNormal, OverflowAlignment::kDefault)",
type_name: "StyleSelfAlignmentData",
converter: "ConvertSelfOrDefaultAlignmentData",
},
{
name: "alignment-baseline",
property_methods: ["CSSValueFromComputedStyleInternal"],
svg: true,
},
{
name: "align-self",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleSelfAlignmentData.h"],
default_value: "StyleSelfAlignmentData(ItemPosition::kAuto, OverflowAlignment::kDefault)",
type_name: "StyleSelfAlignmentData",
converter: "ConvertSelfOrDefaultAlignmentData",
},
{
name: "backdrop-filter",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
compositable: true,
runtime_flag: "CSSBackdropFilter",
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleFilterData.h"],
wrapper_pointer_name: "Persistent",
default_value: "StyleFilterData::Create()",
type_name: "StyleFilterData",
computed_style_custom_functions: ["initial", "getter","setter"],
converter: "ConvertFilterOperations",
},
{
name: "backface-visibility",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["visible", "hidden"],
default_value: "visible",
},
{
name: "background-attachment",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
},
{
name: "background-blend-mode",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
},
{
name: "background-clip",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
},
{
name: "background-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
field_group: "background",
field_template: "external",
include_paths: ["core/css/StyleColor.h"],
default_value: "StyleColor(Color::kTransparent)",
type_name: "StyleColor",
computed_style_custom_functions: ["getter"],
custom_apply_functions_all: true,
},
{
name: "background-image",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
keywords: ["auto", "none"],
typedom_types: ["Image"],
custom_apply_functions_all: true,
},
{
name: "background-origin",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
},
{
name: "background-position-x",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
custom_apply_functions_all: true,
},
{
name: "background-position-y",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
custom_apply_functions_all: true,
},
{
name: "background-repeat-x",
custom_apply_functions_all: true,
},
{
name: "background-repeat-y",
custom_apply_functions_all: true,
},
{
name: "background-size",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
custom_apply_functions_all: true,
},
{
name: "baseline-shift",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
custom_apply_functions_inherit: true,
custom_apply_functions_value: true,
},
{
name: "border-bottom-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/graphics/Color.h"],
default_value: "0",
type_name: "Color",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_all: true,
},
{
name: "border-bottom-left-radius",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/LengthSize.h"],
default_value: "LengthSize(Length(0, kFixed), Length(0, kFixed))",
type_name: "LengthSize",
converter: "ConvertRadius",
},
{
name: "border-bottom-right-radius",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/LengthSize.h"],
default_value: "LengthSize(Length(0, kFixed), Length(0, kFixed))",
type_name: "LengthSize",
converter: "ConvertRadius",
},
{
name: "border-bottom-style",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "surround",
field_template: "keyword",
keywords: [
"none", "hidden", "inset", "groove", "outset", "ridge", "dotted",
"dashed", "solid", "double"
],
default_value: "none",
typedom_types: ["Image"],
type_name: "EBorderStyle",
},
{
name: "border-bottom-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/LayoutUnit.h"],
keywords: ["thin", "medium", "thick"],
default_value: "LayoutUnit(3)",
typedom_types: ["Length"],
type_name: "LayoutUnit",
computed_style_custom_functions: ["getter", "setter"],
converter: "ConvertBorderWidth",
},
{
name: "border-collapse",
property_methods: ["CSSValueFromComputedStyleInternal"],
independent: true,
inherited: true,
field_template: "keyword",
keywords: ["separate", "collapse"],
default_value: "separate",
},
{
name: "border-image-outset",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
custom_apply_functions_all: true,
},
{
name: "border-image-repeat",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
},
{
name: "border-image-slice",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
custom_apply_functions_all: true,
},
{
name: "border-image-source",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
keywords: ["none"],
typedom_types: ["Image"],
custom_apply_functions_value: true,
},
{
name: "border-image-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
custom_apply_functions_all: true,
},
{
name: "border-left-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/graphics/Color.h"],
default_value: "0",
type_name: "Color",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_all: true,
},
{
name: "border-left-style",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "surround",
field_template: "keyword",
keywords: [
"none", "hidden", "inset", "groove", "outset", "ridge", "dotted",
"dashed", "solid", "double"
],
default_value: "none",
typedom_types: ["Image"],
type_name: "EBorderStyle",
},
{
name: "border-left-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/LayoutUnit.h"],
keywords: ["thin", "medium", "thick"],
default_value: "LayoutUnit(3)",
typedom_types: ["Length"],
type_name: "LayoutUnit",
computed_style_custom_functions: ["getter", "setter"],
converter: "ConvertBorderWidth",
},
{
name: "border-right-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/graphics/Color.h"],
default_value: "0",
type_name: "Color",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_all: true,
},
{
name: "border-right-style",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "surround",
field_template: "keyword",
keywords: [
"none", "hidden", "inset", "groove", "outset", "ridge", "dotted",
"dashed", "solid", "double"
],
default_value: "none",
typedom_types: ["Image"],
type_name: "EBorderStyle",
},
{
name: "border-right-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/LayoutUnit.h"],
keywords: ["thin", "medium", "thick"],
default_value: "LayoutUnit(3)",
typedom_types: ["Length"],
type_name: "LayoutUnit",
computed_style_custom_functions: ["getter", "setter"],
converter: "ConvertBorderWidth",
},
{
name: "border-top-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/graphics/Color.h"],
default_value: "0",
type_name: "Color",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_all: true,
},
{
name: "border-top-left-radius",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/LengthSize.h"],
default_value: "LengthSize(Length(0, kFixed), Length(0, kFixed))",
type_name: "LengthSize",
converter: "ConvertRadius",
},
{
name: "border-top-right-radius",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/LengthSize.h"],
default_value: "LengthSize(Length(0, kFixed), Length(0, kFixed))",
type_name: "LengthSize",
converter: "ConvertRadius",
},
{
name: "border-top-style",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "surround",
field_template: "keyword",
keywords: [
"none", "hidden", "inset", "groove", "outset", "ridge", "dotted",
"dashed", "solid", "double"
],
default_value: "none",
typedom_types: ["Image"],
type_name: "EBorderStyle",
},
{
name: "border-top-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "external",
include_paths: ["platform/LayoutUnit.h"],
keywords: ["thin", "medium", "thick"],
default_value: "LayoutUnit(3)",
typedom_types: ["Length"],
type_name: "LayoutUnit",
computed_style_custom_functions: ["getter", "setter"],
converter: "ConvertBorderWidth",
},
{
name: "bottom",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
keywords: ["auto"],
default_value: "Length()",
typedom_types: ["Length", "Percent"],
converter: "ConvertLengthOrAuto",
},
{
name: "box-shadow",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "pointer",
include_paths: ["core/style/ShadowList.h"],
wrapper_pointer_name: "scoped_refptr",
default_value: "nullptr",
type_name: "ShadowList",
converter: "ConvertShadowList",
},
{
name: "box-sizing",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "box",
field_template: "keyword",
keywords: ["content-box", "border-box"],
default_value: "content-box",
},
{
name: "break-after",
property_methods: ["CSSValueFromComputedStyleInternal"],
// Storage for this property also covers these legacy properties:
// page-break-after, -webkit-column-break-after
field_template: "keyword",
keywords: [
"auto", "avoid", "avoid-column", "avoid-page", "column", "left", "page",
"recto", "right", "verso"
],
default_value: "auto",
type_name: "EBreakBetween",
},
{
name: "break-before",
property_methods: ["CSSValueFromComputedStyleInternal"],
// Storage for this property also covers these legacy properties:
// page-break-before, -webkit-column-break-before
field_template: "keyword",
keywords: [
"auto", "avoid", "avoid-column", "avoid-page", "column", "left", "page",
"recto", "right", "verso"
],
default_value: "auto",
type_name: "EBreakBetween",
},
{
name: "break-inside",
property_methods: ["CSSValueFromComputedStyleInternal"],
// Storage for this property also covers these legacy properties:
// page-break-inside, -webkit-column-break-inside
field_template: "keyword",
keywords: ["auto", "avoid", "avoid-column", "avoid-page"],
default_value: "auto",
},
{
name: "buffered-rendering",
property_methods: ["CSSValueFromComputedStyleInternal"],
svg: true,
},
{
name: "caption-side",
property_methods: ["CSSValueFromComputedStyleInternal"],
independent: true,
inherited: true,
field_template: "keyword",
keywords: ["top", "bottom"],
default_value: "top",
},
{
name: "caret-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
inherited: true,
field_group: "*",
field_template: "external",
include_paths: ["platform/graphics/Color.h"],
default_value: "Color()",
type_name: "Color",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_all: true,
},
{
name: "clear",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_template: "keyword",
keywords: ["none", "left", "right", "both"],
default_value: "none",
},
{
name: "clip",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "visual",
field_template: "external",
include_paths: ["platform/LengthBox.h"],
default_value: "LengthBox()",
type_name: "LengthBox",
computed_style_custom_functions: ["setter"],
converter: "ConvertClip",
custom_apply_functions_all: true,
},
{
name: "clip-path",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "pointer",
include_paths: ["core/style/ClipPathOperation.h"],
wrapper_pointer_name: "scoped_refptr",
default_value: "nullptr",
type_name: "ClipPathOperation",
converter: "ConvertClipPath",
},
{
name: "clip-rule",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
type_name: "WindRule",
},
{
name: "color-interpolation",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
},
{
name: "color-interpolation-filters",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
type_name: "EColorInterpolation",
},
{
name: "color-rendering",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
},
{
name: "column-fill",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["balance", "auto"],
default_value: "balance",
getter: "GetColumnFill",
},
{
name: "contain",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_size: 4,
field_template: "primitive",
default_value: "kContainsNone",
name_for_methods: "Contain",
type_name: "unsigned",
converter: "ConvertFlags<Containment>",
},
{
name: "content",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/ContentData.h"],
wrapper_pointer_name: "Persistent",
default_value: "nullptr",
typedom_types: ["Image"],
separator: ",",
type_name: "ContentData",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_all: true,
},
{
name: "counter-increment",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
},
{
name: "counter-reset",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: 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", "-webkit-grab", "-webkit-grabbing"
],
default_value: "auto",
custom_apply_functions_all: true,
},
{
name: "cx",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
converter: "ConvertLength",
},
{
name: "cy",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
converter: "ConvertLength",
},
{
name: "d",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
converter: "ConvertPathOrNone",
},
{
name: "display",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_template: 'keyword',
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"
],
default_value: "inline",
},
{
name: "dominant-baseline",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
},
{
name: "empty-cells",
property_methods: ["CSSValueFromComputedStyleInternal"],
independent: true,
inherited: true,
field_template: "keyword",
keywords: ["show", "hide"],
default_value: "show",
},
{
name: "fill",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
svg: true,
setter: "SetFillPaint",
custom_apply_functions_all: true,
},
{
name: "fill-opacity",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
svg: true,
converter: "ConvertNumberOrPercentage",
},
{
name: "fill-rule",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
type_name: "WindRule",
},
{
name: "filter",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
compositable: true,
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleFilterData.h"],
wrapper_pointer_name: "Persistent",
default_value: "StyleFilterData::Create()",
type_name: "StyleFilterData",
computed_style_custom_functions: ["initial", "getter", "setter"],
converter: "ConvertFilterOperations",
},
{
name: "flex-basis",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "<length>",
default_value: "Length(kAuto)",
converter: "ConvertLengthOrAuto",
},
{
name: "flex-direction",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["row", "row-reverse", "column", "column-reverse"],
default_value: "row",
},
{
name: "flex-grow",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "primitive",
default_value: "0.0f",
type_name: "float",
},
{
name: "flex-shrink",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "primitive",
default_value: "1.0f",
type_name: "float",
},
{
name: "flex-wrap",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["nowrap", "wrap", "wrap-reverse"],
default_value: "nowrap",
},
{
name: "float",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_template: "keyword",
keywords: ["none", "left", "right"],
default_value: "none",
name_for_methods: "Floating",
type_name: "EFloat",
},
{
name: "flood-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
svg: true,
converter: "ConvertColor",
},
{
name: "flood-opacity",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
converter: "ConvertNumberOrPercentage",
},
{
name: "grid-auto-columns",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["platform/wtf/Vector.h", "core/style/GridTrackSize.h"],
default_value: "Vector<GridTrackSize>(1, GridTrackSize(Length(kAuto)))",
type_name: "Vector<GridTrackSize>",
converter: "ConvertGridTrackSizeList",
},
{
name: "grid-auto-flow",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
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",
},
{
name: "grid-auto-rows",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["platform/wtf/Vector.h", "core/style/GridTrackSize.h"],
default_value: "Vector<GridTrackSize>(1, GridTrackSize(Length(kAuto)))",
type_name: "Vector<GridTrackSize>",
converter: "ConvertGridTrackSizeList",
},
{
name: "grid-column-end",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/GridPosition.h"],
default_value: "GridPosition()",
type_name: "GridPosition",
converter: "ConvertGridPosition",
},
{
name: "grid-column-gap",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertLength",
},
{
name: "grid-column-start",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/GridPosition.h"],
default_value: "GridPosition()",
type_name: "GridPosition",
converter: "ConvertGridPosition",
},
{
name: "grid-row-end",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/GridPosition.h"],
default_value: "GridPosition()",
type_name: "GridPosition",
converter: "ConvertGridPosition",
},
{
name: "grid-row-gap",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertLength",
},
{
name: "grid-row-start",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/GridPosition.h"],
default_value: "GridPosition()",
type_name: "GridPosition",
converter: "ConvertGridPosition",
},
{
name: "grid-template-areas",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
custom_apply_functions_all: true,
},
{
name: "grid-template-columns",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["platform/wtf/Vector.h", "core/style/GridTrackSize.h"],
default_value: "Vector<GridTrackSize>()",
type_name: "Vector<GridTrackSize>",
custom_apply_functions_all: true,
},
{
name: "grid-template-rows",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["platform/wtf/Vector.h", "core/style/GridTrackSize.h"],
default_value: "Vector<GridTrackSize>()",
type_name: "Vector<GridTrackSize>",
custom_apply_functions_all: true,
},
{
name: "height",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
interpolable: true,
field_group: "box",
field_template: "<length>",
keywords: ["auto", "fit-content", "min-content", "max-content"],
default_value: "Length()",
typedom_types: ["Length", "Percent"],
converter: "ConvertLengthSizing",
},
{
name: "hyphens",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "keyword",
keywords: ["none", "manual", "auto"],
default_value: "manual",
type_name: "Hyphens",
},
{
name: "image-rendering",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "keyword",
keywords: [
"auto", "optimizeSpeed", "optimizeQuality",
"-webkit-optimize-contrast", "pixelated"
],
default_value: "auto",
},
{
name: "image-orientation",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
runtime_flag: "ImageOrientation",
field_group: "*",
field_template: "primitive",
default_value: "false",
name_for_methods: "RespectImageOrientation",
type_name: "bool",
converter: "ConvertImageOrientation",
},
{
name: "isolation",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["auto", "isolate"],
default_value: "auto",
},
{
name: "justify-content",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleContentAlignmentData.h"],
default_value: "StyleContentAlignmentData(ContentPosition::kNormal, ContentDistributionType::kDefault, OverflowAlignment::kDefault)",
type_name: "StyleContentAlignmentData",
converter: "ConvertContentAlignmentData",
},
{
name: "justify-items",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleSelfAlignmentData.h"],
default_value: "StyleSelfAlignmentData(ItemPosition::kAuto, OverflowAlignment::kDefault)",
type_name: "StyleSelfAlignmentData",
converter: "ConvertSelfOrDefaultAlignmentData",
},
{
name: "justify-self",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleSelfAlignmentData.h"],
default_value: "StyleSelfAlignmentData(ItemPosition::kAuto, OverflowAlignment::kDefault)",
type_name: "StyleSelfAlignmentData",
converter: "ConvertSelfOrDefaultAlignmentData",
},
{
name: "left",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
keywords: ["auto"],
default_value: "Length()",
typedom_types: ["Length", "Percent"],
converter: "ConvertLengthOrAuto",
},
{
name: "letter-spacing",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
converter: "ConvertSpacing",
},
{
name: "lighting-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
svg: true,
converter: "ConvertColor",
},
{
name: "line-height",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
field_group: "inherited",
field_template: "<length>",
default_value: "Length(-100.0, kPercent)",
getter: "SpecifiedLineHeight",
computed_style_custom_functions: ["getter"],
converter: "ConvertLineHeight",
},
{
name: "line-height-step",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
runtime_flag: "CSSSnapSize",
field_group: "*",
field_template: "primitive",
default_value: "0",
type_name: "uint8_t",
converter: "ConvertComputedLength<uint8_t>",
},
{
name: "list-style-image",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleImage.h"],
wrapper_pointer_name: "Persistent",
default_value: "nullptr",
typedom_types: ["Image"],
type_name: "StyleImage",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_value: true,
},
{
name: "list-style-position",
property_methods: ["CSSValueFromComputedStyleInternal"],
independent: true,
inherited: true,
field_template: "keyword",
keywords: ["outside", "inside"],
default_value: "outside",
},
{
name: "list-style-type",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
field_template: "keyword",
keywords: [
"disc", "circle", "square", "decimal", "decimal-leading-zero",
"arabic-indic", "bengali", "cambodian", "khmer", "devanagari",
"gujarati", "gurmukhi", "kannada", "lao", "malayalam", "mongolian",
"myanmar", "oriya", "persian", "urdu", "telugu", "tibetan", "thai",
"lower-roman", "upper-roman", "lower-greek", "lower-alpha",
"lower-latin", "upper-alpha", "upper-latin", "cjk-earthly-branch",
"cjk-heavenly-stem", "ethiopic-halehame", "ethiopic-halehame-am",
"ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", "hangul",
"hangul-consonant", "korean-hangul-formal", "korean-hanja-formal",
"korean-hanja-informal", "hebrew", "armenian", "lower-armenian",
"upper-armenian", "georgian", "cjk-ideographic", "simp-chinese-formal",
"simp-chinese-informal", "trad-chinese-formal", "trad-chinese-informal",
"hiragana", "katakana", "hiragana-iroha", "katakana-iroha", "none"
],
default_value: "disc",
},
{
name: "margin-bottom",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertQuirkyLength",
},
{
name: "margin-left",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertQuirkyLength",
},
{
name: "margin-right",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertQuirkyLength",
},
{
name: "margin-top",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertQuirkyLength",
},
{
name: "marker-end",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
name_for_methods: "MarkerEndResource",
converter: "ConvertFragmentIdentifier",
},
{
name: "marker-mid",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
name_for_methods: "MarkerMidResource",
converter: "ConvertFragmentIdentifier",
},
{
name: "marker-start",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
name_for_methods: "MarkerStartResource",
converter: "ConvertFragmentIdentifier",
},
{
name: "mask",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
svg: true,
name_for_methods: "MaskerResource",
converter: "ConvertFragmentIdentifier",
},
{
name: "mask-source-type",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSMaskSourceType",
custom_apply_functions_all: true,
},
{
name: "mask-type",
property_methods: ["CSSValueFromComputedStyleInternal"],
svg: true,
},
{
name: "max-height",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
interpolable: true,
field_group: "box",
field_template: "<length>",
default_value: "Length(kMaxSizeNone)",
converter: "ConvertLengthMaxSizing",
},
{
name: "max-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
interpolable: true,
field_group: "box",
field_template: "<length>",
default_value: "Length(kMaxSizeNone)",
converter: "ConvertLengthMaxSizing",
},
{
name: "min-height",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
interpolable: true,
field_group: "box",
field_template: "<length>",
default_value: "Length()",
converter: "ConvertLengthSizing",
},
{
name: "min-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
is_descriptor: true,
interpolable: true,
field_group: "box",
field_template: "<length>",
default_value: "Length()",
converter: "ConvertLengthSizing",
},
{
name: "mix-blend-mode",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
include_paths: ["public/platform/WebBlendMode.h"],
keywords: [
"normal", "multiply", "screen", "overlay", "darken", "lighten",
"color-dodge", "color-burn", "hard-light", "soft-light", "difference",
"exclusion", "hue", "saturation", "color", "luminosity"
],
default_value: "normal",
name_for_methods: "BlendMode",
type_name: "WebBlendMode",
},
{
name: "object-fit",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["fill", "contain", "cover", "none", "scale-down"],
default_value: "fill",
getter: "GetObjectFit",
},
{
name: "object-position",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "external",
include_paths: ["platform/LengthPoint.h"],
default_value: "LengthPoint(Length(50.0, kPercent), Length(50.0, kPercent))",
type_name: "LengthPoint",
converter: "ConvertPosition",
},
{
name: "offset-anchor",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
runtime_flag: "CSSOffsetPositionAnchor",
field_group: "*",
field_template: "external",
include_paths: ["platform/LengthPoint.h"],
default_value: "LengthPoint(Length(kAuto), Length(kAuto))",
type_name: "LengthPoint",
converter: "ConvertPositionOrAuto",
},
{
name: "offset-distance",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "<length>",
default_value: "Length(0, kFixed)",
converter: "ConvertLength",
},
{
name: "offset-path",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "pointer",
include_paths: ["core/style/BasicShapes.h"],
wrapper_pointer_name: "scoped_refptr",
default_value: "nullptr",
type_name: "BasicShape",
converter: "ConvertOffsetPath",
},
{
name: "offset-position",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
runtime_flag: "CSSOffsetPositionAnchor",
field_group: "*",
field_template: "external",
include_paths: ["platform/LengthPoint.h"],
default_value: "LengthPoint(Length(kAuto), Length(kAuto))",
type_name: "LengthPoint",
converter: "ConvertPositionOrAuto",
},
{
name: "offset-rotate",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "external",
include_paths: ["core/style/StyleOffsetRotation.h"],
default_value: "StyleOffsetRotation(0, OffsetRotationType::kAuto)",
type_name: "StyleOffsetRotation",
converter: "ConvertOffsetRotate",
},
{
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"],
},
{
name: "order",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "primitive",
default_value: "0",
type_name: "int",
computed_style_custom_functions: ["setter"],
},
{
name: "orphans",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
field_group: "*",
field_template: "primitive",
default_value: "2",
type_name: "short",
},
{
name: "outline-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
field_group: "*",
field_template: "external",
include_paths: ["platform/graphics/Color.h"],
default_value: "0",
type_name: "Color",
computed_style_custom_functions: ["getter", "setter"],
custom_apply_functions_all: true,
},
{
name: "outline-offset",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "primitive",
default_value: "0",
type_name: "int",
computed_style_custom_functions: ["getter"],
converter: "ConvertComputedLength<int>",
},
{
name: "outline-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",
custom_apply_functions_all: true,
},
{
name: "outline-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "external",
include_paths: ["platform/LayoutUnit.h"],
default_value: "LayoutUnit(3)",
type_name: "LayoutUnit",
computed_style_custom_functions: ["initial", "getter", "setter"],
converter: "ConvertLineWidth<unsigned short>",
},
{
name: "overflow-anchor",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: false,
runtime_flag: "ScrollAnchoring",
field_template: "keyword",
keywords: [
"visible", "none", "auto"
],
default_value: "auto",
},
{
name: "overflow-wrap",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "keyword",
keywords: ["normal", "break-word"],
default_value: "normal",
},
{
name: "overflow-x",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_template: "keyword",
keywords: [
"visible", "hidden", "scroll", "auto", "overlay", "-webkit-paged-x",
"-webkit-paged-y"
],
default_value: "visible",
type_name: "EOverflow",
},
{
name: "overflow-y",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_template: "keyword",
keywords: [
"visible", "hidden", "scroll", "auto", "overlay", "-webkit-paged-x",
"-webkit-paged-y"
],
default_value: "visible",
type_name: "EOverflow",
},
{
name: "overscroll-behavior-x",
property_methods: ["CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSOverscrollBehavior",
field_template: "keyword",
keywords: ["auto", "contain", "none"],
default_value: "auto",
type_name: "EOverscrollBehavior",
},
{
name: "overscroll-behavior-y",
property_methods: ["CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSOverscrollBehavior",
field_template: "keyword",
keywords: ["auto", "contain", "none"],
default_value: "auto",
type_name: "EOverscrollBehavior",
},
{
name: "padding-bottom",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertLength",
},
{
name: "padding-left",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertLength",
},
{
name: "padding-right",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertLength",
},
{
name: "padding-top",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
default_value: "Length(kFixed)",
converter: "ConvertLength",
},
{
name: "paint-order",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
converter: "ConvertPaintOrder",
},
{
name: "perspective",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "primitive",
default_value: "0.0",
type_name: "float",
converter: "ConvertPerspective",
},
{
name: "perspective-origin",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "external",
include_paths: ["platform/LengthPoint.h"],
default_value: "LengthPoint(Length(50.0, kPercent), Length(50.0, kPercent))",
type_name: "LengthPoint",
converter: "ConvertPosition",
},
{
name: "pointer-events",
property_methods: ["CSSValueFromComputedStyleInternal"],
independent: true,
inherited: true,
field_template: "keyword",
keywords: [
"none", "auto", "stroke", "fill", "painted", "visible", "visibleStroke",
"visibleFill", "visiblePainted", "bounding-box", "all"
],
default_value: "auto",
},
{
name: "position",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_template: "keyword",
keywords: [
"static", "relative", "absolute", "fixed", "sticky"
],
default_value: "static",
getter: "GetPosition",
custom_apply_functions_inherit: true,
},
{
name: "quotes",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "pointer",
include_paths: ["core/style/QuotesData.h"],
wrapper_pointer_name: "scoped_refptr",
default_value: "nullptr",
type_name: "QuotesData",
converter: "ConvertQuotes",
},
{
name: "resize",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["none", "both", "horizontal", "vertical"],
default_value: "none",
custom_apply_functions_value: true,
},
{
name: "right",
property_methods: ["ParseSingleValue", "IsLayoutDependent", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "surround",
field_template: "<length>",
keywords: ["auto"],
default_value: "Length()",
typedom_types: ["Length", "Percent"],
converter: "ConvertLengthOrAuto",
},
{
name: "r",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
converter: "ConvertLength",
},
{
name: "rx",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
converter: "ConvertLengthOrAuto",
},
{
name: "ry",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
converter: "ConvertLengthOrAuto",
},
{
name: "scroll-behavior",
property_methods: ["CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSOMSmoothScroll",
field_group: "*",
field_size: 2, // FIXME: Convert this to a keyword field
field_template: "primitive",
default_value: "kScrollBehaviorAuto",
type_name: "ScrollBehavior",
},
{
name: "scroll-margin-block-end",
property_methods: ["ParseSingleValue"],
runtime_flag: "CSSScrollSnapPoints",
direction_aware_options: {
logical_side: "after",
shorthand_for_physical_side: "scrollMarginShorthand",
},
},
{
name: "scroll-customization",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
converter: "ConvertFlags<blink::ScrollCustomization::ScrollDirection>",
type_name: "ScrollCustomization::ScrollDirection",
field_group: "*",
field_size: 4,
field_template: "primitive",
default_value: "ScrollCustomization::kScrollDirectionNone",
include_paths: ["platform/scroll/ScrollCustomization.h"],
runtime_flag: "ScrollCustomization",
},
{
name: "scroll-margin-block-start",
property_methods: ["ParseSingleValue"],
runtime_flag: "CSSScrollSnapPoints",
direction_aware_options: {
logical_side: "before",
shorthand_for_physical_side: "scrollMarginShorthand",
},
},
{
name: "scroll-margin-bottom",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "primitive",
default_value: "0.0f",
type_name: "float",
converter: "ConvertComputedLength<float>",
},
{
name: "scroll-margin-inline-end",
property_methods: ["ParseSingleValue"],
runtime_flag: "CSSScrollSnapPoints",
direction_aware_options: {
logical_side: "end",
shorthand_for_physical_side: "scrollMarginShorthand",
},
},
{
name: "scroll-margin-inline-start",
property_methods: ["ParseSingleValue"],
runtime_flag: "CSSScrollSnapPoints",
direction_aware_options: {
logical_side: "start",
shorthand_for_physical_side: "scrollMarginShorthand",
},
},
{
name: "scroll-margin-left",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "primitive",
default_value: "0.0f",
type_name: "float",
converter: "ConvertComputedLength<float>",
},
{
name: "scroll-margin-right",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "primitive",
default_value: "0.0f",
type_name: "float",
converter: "ConvertComputedLength<float>",
},
{
name: "scroll-margin-top",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "primitive",
default_value: "0.0f",
type_name: "float",
converter: "ConvertComputedLength<float>",
},
{
name: "scroll-padding-block-end",
property_methods: ["ParseSingleValue"],
runtime_flag: "CSSScrollSnapPoints",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
converter: "ConvertLength",
direction_aware_options: {
logical_side: "after",
shorthand_for_physical_side: "scrollPaddingShorthand",
},
},
{
name: "scroll-padding-block-start",
property_methods: ["ParseSingleValue"],
runtime_flag: "CSSScrollSnapPoints",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
converter: "ConvertLength",
direction_aware_options: {
logical_side: "before",
shorthand_for_physical_side: "scrollPaddingShorthand",
},
},
{
name: "scroll-padding-bottom",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "<length>",
default_value: "Length()",
typedom_types: ["Length", "Percent"],
converter: "ConvertLength",
},
{
name: "scroll-padding-inline-end",
property_methods: ["ParseSingleValue"],
runtime_flag: "CSSScrollSnapPoints",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
converter: "ConvertLength",
direction_aware_options: {
logical_side: "end",
shorthand_for_physical_side: "scrollPaddingShorthand",
},
},
{
name: "scroll-padding-inline-start",
property_methods: ["ParseSingleValue"],
runtime_flag: "CSSScrollSnapPoints",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
converter: "ConvertLength",
direction_aware_options: {
logical_side: "start",
shorthand_for_physical_side: "scrollPaddingShorthand",
},
},
{
name: "scroll-padding-left",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "<length>",
default_value: "Length()",
typedom_types: ["Length", "Percent"],
converter: "ConvertLength",
},
{
name: "scroll-padding-right",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "<length>",
default_value: "Length()",
typedom_types: ["Length", "Percent"],
converter: "ConvertLength",
},
{
name: "scroll-padding-top",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "<length>",
default_value: "Length()",
typedom_types: ["Length", "Percent"],
converter: "ConvertLength",
},
{
name: "scroll-snap-align",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "external",
include_paths: ["platform/scroll/ScrollSnapData.h"],
default_value: "ScrollSnapAlign()",
getter: "GetScrollSnapAlign",
type_name: "ScrollSnapAlign",
converter: "ConvertSnapAlign",
},
{
name: "scroll-snap-stop",
property_methods: ["CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_template: "keyword",
keywords: ["normal", "always"],
default_value: "normal",
},
{
name: "scroll-snap-type",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
runtime_flag: "CSSScrollSnapPoints",
field_group: "*",
field_template: "external",
include_paths: ["platform/scroll/ScrollSnapData.h"],
default_value: "ScrollSnapType()",
getter: "GetScrollSnapType",
type_name: "ScrollSnapType",
converter: "ConvertSnapType",
},
{
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"],
},
{
name: "shape-margin",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "<length>",
default_value: "Length(0, kFixed)",
converter: "ConvertLength",
},
{
name: "shape-outside",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
field_group: "*",
field_template: "external",
include_paths: ["core/style/ShapeValue.h"],
wrapper_pointer_name: "Persistent",
default_value: "nullptr",
typedom_types: ["Image"],
type_name: "ShapeValue",
computed_style_custom_functions: ["getter"],
converter: "ConvertShapeValue",
},
{
name: "shape-rendering",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
},
{
name: "size",
property_methods: ["ParseSingleValue"],
custom_apply_functions_all: 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,
svg: true,
converter: "ConvertColor",
},
{
name: "stop-opacity",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
svg: true,
converter: "ConvertNumberOrPercentage",
},
{
name: "stroke",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
svg: true,
setter: "SetStrokePaint",
custom_apply_functions_all: true,
},
{
name: "stroke-dasharray",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
svg: true,
name_for_methods: "StrokeDashArray",
converter: "ConvertStrokeDasharray",
},
{
name: "stroke-dashoffset",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
svg: true,
name_for_methods: "StrokeDashOffset",
converter: "ConvertLength",
},
{
name: "stroke-linecap",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
name_for_methods: "CapStyle",
type_name: "LineCap",
},
{
name: "stroke-linejoin",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
name_for_methods: "JoinStyle",
type_name: "LineJoin",
},
{
name: "stroke-miterlimit",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
svg: true,
name_for_methods: "StrokeMiterLimit",
type_name: "float",
},
{
name: "stroke-opacity",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
svg: true,
converter: "ConvertNumberOrPercentage",
},
{
name: "stroke-width",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
svg: true,
converter: "ConvertUnzoomedLength",
},
{
name: "table-layout",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_template: "keyword",
keywords: [
"auto", "fixed"
],
default_value: "auto",
},
{
name: "tab-size",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "external",
include_paths: ["platform/text/TabSize.h"],
default_value: "TabSize(8)",
getter: "GetTabSize",
type_name: "TabSize",
converter: "ConvertLengthOrTabSpaces",
},
{
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"
],
default_value: "start",
getter: "GetTextAlign",
custom_apply_functions_value: true,
},
{
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",
},
{
name: "text-anchor",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
svg: true,
},
{
name: "text-combine-upright",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "keyword",
keywords: ["none", "all"],
default_value: "none",
name_for_methods: "TextCombine",
},
{
name: "text-decoration-color",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal", "ColorIncludingFallback"],
interpolable: true,
field_group: "*",
field_template: "external",
include_paths: ["core/css/StyleColor.h"],
default_value: "StyleColor::CurrentColor()",
type_name: "StyleColor",
custom_apply_functions_all: true,
},
{
name: "text-decoration-line",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
field_group: "visual",
field_template: "multi_keyword",
keywords: ["none", "underline", "overline", "line-through", "blink"],
default_value: "none",
name_for_methods: "TextDecoration",
type_name: "TextDecoration",
converter: "ConvertFlags<TextDecoration>",
},
{
name: "text-decoration-skip-ink",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "keyword",
keywords: ["none", "auto"],
default_value: "auto",
},
{
name: "text-decoration-style",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["solid", "double", "dotted", "dashed", "wavy"],
default_value: "solid",
},
{
name: "text-indent",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
field_group: "*",
field_template: "<length>",
default_value: "Length(kFixed)",
custom_apply_functions_all: true,
},
{
name: "text-justify",
property_methods: ["CSSValueFromComputedStyleInternal"],
inherited: true,
runtime_flag: "CSS3Text",
field_group: "*",
field_template: "keyword",
include_paths: ["platform/text/TextJustify.h"],
keywords: ["auto", "none", "inter-word", "distribute"],
default_value: "auto",
getter: "GetTextJustify",
type_name: "TextJustify",
},
{
name: "text-overflow",
property_methods: ["CSSValueFromComputedStyleInternal"],
field_group: "*",
field_template: "keyword",
keywords: ["clip", "ellipsis"],
default_value: "clip",
},
{
name: "text-shadow",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
inherited: true,
field_group: "*",
field_template: "pointer",
include_paths: ["core/style/ShadowList.h"],
wrapper_pointer_name: "scoped_refptr",
default_value: "nullptr",
type_name: "ShadowList",
converter: "ConvertShadowList",
},
{
name: "text-size-adjust",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",
field_template: "external",
include_paths: ["core/style/TextSizeAdjust.h"],
default_value: "TextSizeAdjust::AdjustAuto()",
getter: "GetTextSizeAdjust",
type_name: "TextSizeAdjust",
converter: "ConvertTextSizeAdjust",
},
{
name: "text-transform",
property_methods: ["CSSValueFromComputedStyleInternal"],
independent: true,
inherited: true,
field_template: "keyword",
keywords: ["capitalize", "uppercase", "lowercase", "none"],
default_value: "none",
},
// FIXME: Implement support for 'under left' and 'under right' values.
{
name: "text-underline-position",
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
inherited: true,
field_group: "*",