Chromium Code Reviews| Index: Source/core/css/CSSProperties.in | 
| diff --git a/Source/core/css/CSSProperties.in b/Source/core/css/CSSProperties.in | 
| index b3663be41b3963d6d5be3269e7a999900d107791..623f5112ad8f6d430cb7b1748c5faba4d75a47f5 100644 | 
| --- a/Source/core/css/CSSProperties.in | 
| +++ b/Source/core/css/CSSProperties.in | 
| @@ -1,330 +1,436 @@ | 
| -// FIXME: When we have all the properties using the new StyleBuilder, we | 
| -// should use this for make_css_property_names.py | 
| -// Note that type_name is currently only used for non-custom value application | 
| -// and when explicitly referred to in generated applicators. | 
| -// Note: Mandatory blank line to skip parameter parsing phase | 
| +// 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 | 
| + | 
| + | 
| +// - longhands=property;other-property | 
| +// The property is a shorthand for several other properties. | 
| + | 
| + | 
| +// The remaining properties are used for the StyleBuilder and allow us to | 
| 
 
alancutter (OOO until 2018)
2014/07/28 01:09:09
s/properties/arguments/ otherwise it gets confusin
 
Timothy Loh
2014/07/28 02:54:19
As per in person discussion, sb_ removed from ever
 
 | 
| +// succinctly describe how to apply properties. When default handlers are not | 
| +// sufficient, we should prefer to use sb_converter, and failing that defining | 
| 
 
apavlov
2014/07/25 12:13:23
Sorry if I'm wrong, but it looks like "defining" s
 
Timothy Loh
2014/07/28 02:54:19
Done.
 
 | 
| +// 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 sb_converter doesn't suffice. | 
| + | 
| +// - font | 
| +// The default property handlers call into the FontBuilder instead of setting | 
| +// values directly onto the RenderStyle | 
| +// - svg | 
| +// The default property handlers access the SVGRenderStyle | 
| + | 
| +// - name_for_methods=BorderWidth | 
| 
 
apavlov
2014/07/25 12:13:23
It would be a lot easier to understand the implica
 
Timothy Loh
2014/07/28 02:54:19
I wanted the examples below to use actual properti
 
 | 
| +// Tweaks how we choose defaults for getter, setter, initial and type_name. | 
| +// For example, setting this to FooBar will make us choose a setter of setFooBar | 
| +// - initial | 
| +// The initial value accessor on the RenderStyle, defaults to e.g. initialBoxShadow | 
| +// - getter | 
| +// The RenderStyle getter, defaults to e.g. borderBottomLeft | 
| +// - setter | 
| +// The RenderStyle 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 | 
| + | 
| +// - sb_converter=convertRadius | 
| +// Call the given function on StyleBuilderConverter to get a value to set | 
| 
 
alancutter (OOO until 2018)
2014/07/28 01:09:09
"Specify a function on StyleBuilderConverter to be
 
Timothy Loh
2014/07/28 02:54:19
Rewrote this comment, have a look.
 
 | 
| + | 
| +// - sb_custom_initial | 
| +// - sb_custom_inherit | 
| +// - sb_custom_value | 
| +// - sb_custom_all | 
| +// Handlers of the given types will be declared but not defined. Setting | 
| +// sb_custom_all is equivalent to setting the other three flags | 
| + | 
| +// - sb_skip | 
| +// Ignore this property in the StyleBuilder | 
| + | 
| + | 
| +// Properties with StyleBuilder handling | 
| + | 
| +// Super High Priority properties impact the non-standard direction aware properties | 
| +direction sb_custom_value | 
| +-webkit-writing-mode sb_custom_value | 
| + | 
| +// High Priority. Other properties can depend upon these (e.g. font-size / ems) | 
| +color sb_custom_all | 
| +// FIXME: This is a mess due to crbug.com/353932. Shorthands shouldn't have | 
| +// any StyleBuilder handling! | 
| +font sb_custom_all, longhands=font-family;font-size;font-style;font-variant;font-weight;line-height | 
| +font-family sb_custom_all | 
| +font-kerning font, type_name=FontDescription::Kerning, name_for_methods=Kerning | 
| +font-size sb_custom_all | 
| +font-style font, type_name=FontStyle, name_for_methods=Style | 
| +font-variant font, type_name=FontVariant, name_for_methods=Variant | 
| +font-variant-ligatures sb_custom_all | 
| +font-weight sb_custom_all | 
| +-webkit-font-feature-settings sb_custom_all | 
| +-webkit-font-smoothing font, type_name=FontSmoothingMode | 
| +-webkit-locale sb_custom_value | 
| +-webkit-text-orientation sb_custom_value | 
| +text-rendering font, type_name=TextRenderingMode | 
| +zoom sb_custom_all | 
| + | 
| +// These set the same RenderStyle values as other non-prefixed properties, | 
| +// we should use those if they are specified. | 
| +-webkit-border-image initial=initialNinePieceImage, sb_custom_value | 
| +-webkit-transform-origin-x sb_converter=convertLength | 
| +-webkit-transform-origin-y sb_converter=convertLength | 
| +-webkit-transform-origin-z sb_converter=convertComputedLength<float> | 
| align-content | 
| -align-items custom_all | 
| -align-self custom_all | 
| -background-attachment custom_all | 
| -background-blend-mode custom_all | 
| -background-clip custom_all | 
| -background-color custom_all | 
| -background-image custom_all | 
| -background-origin custom_all | 
| -background-position-x custom_all | 
| -background-position-y custom_all | 
| -background-repeat-x custom_all | 
| -background-repeat-y custom_all | 
| -background-size custom_all | 
| -border-bottom-color custom_all | 
| -border-bottom-left-radius initial=initialBorderRadius, converter=convertRadius | 
| -border-bottom-right-radius initial=initialBorderRadius, converter=convertRadius | 
| +align-items sb_custom_all | 
| +alignment-baseline svg | 
| +align-self sb_custom_all | 
| +backface-visibility | 
| +background-attachment sb_custom_all | 
| +background-blend-mode sb_custom_all | 
| +background-clip sb_custom_all | 
| +background-color sb_custom_all | 
| +background-image sb_custom_all | 
| +background-origin sb_custom_all | 
| +background-position-x sb_custom_all | 
| +background-position-y sb_custom_all | 
| +background-repeat-x sb_custom_all | 
| +background-repeat-y sb_custom_all | 
| +background-size sb_custom_all | 
| +baseline-shift svg, sb_custom_inherit, sb_custom_value | 
| +border-bottom-color sb_custom_all | 
| +border-bottom-left-radius initial=initialBorderRadius, sb_converter=convertRadius | 
| +border-bottom-right-radius initial=initialBorderRadius, sb_converter=convertRadius | 
| border-bottom-style type_name=EBorderStyle, initial=initialBorderStyle | 
| -border-bottom-width initial=initialBorderWidth, converter=convertLineWidth<unsigned> | 
| +border-bottom-width initial=initialBorderWidth, sb_converter=convertLineWidth<unsigned> | 
| border-collapse | 
| -border-image-outset custom_all | 
| -border-image-repeat custom_all | 
| -border-image-slice custom_all | 
| -border-image-source custom_value | 
| -border-image-width custom_all | 
| -border-left-color custom_all | 
| +border-image-outset sb_custom_all | 
| +border-image-repeat sb_custom_all | 
| +border-image-slice sb_custom_all | 
| +border-image-source sb_custom_value | 
| +border-image-width sb_custom_all | 
| +border-left-color sb_custom_all | 
| border-left-style type_name=EBorderStyle, initial=initialBorderStyle | 
| -border-left-width initial=initialBorderWidth, converter=convertLineWidth<unsigned> | 
| -border-right-color custom_all | 
| +border-left-width initial=initialBorderWidth, sb_converter=convertLineWidth<unsigned> | 
| +border-right-color sb_custom_all | 
| border-right-style type_name=EBorderStyle, initial=initialBorderStyle | 
| -border-right-width initial=initialBorderWidth, converter=convertLineWidth<unsigned> | 
| -border-top-color custom_all | 
| -border-top-left-radius initial=initialBorderRadius, converter=convertRadius | 
| -border-top-right-radius initial=initialBorderRadius, converter=convertRadius | 
| +border-right-width initial=initialBorderWidth, sb_converter=convertLineWidth<unsigned> | 
| +border-top-color sb_custom_all | 
| +border-top-left-radius initial=initialBorderRadius, sb_converter=convertRadius | 
| +border-top-right-radius initial=initialBorderRadius, sb_converter=convertRadius | 
| border-top-style type_name=EBorderStyle, initial=initialBorderStyle | 
| -border-top-width initial=initialBorderWidth, converter=convertLineWidth<unsigned> | 
| -bottom initial=initialOffset, converter=convertLengthOrAuto | 
| -box-shadow converter=convertShadow | 
| +border-top-width initial=initialBorderWidth, sb_converter=convertLineWidth<unsigned> | 
| +bottom initial=initialOffset, sb_converter=convertLengthOrAuto | 
| +box-shadow sb_converter=convertShadow | 
| box-sizing | 
| +buffered-rendering svg | 
| caption-side | 
| clear | 
| -clip custom_all | 
| -color custom_all | 
| -content custom_all | 
| -counter-increment custom_all | 
| -counter-reset custom_all | 
| -cursor custom_all | 
| -direction custom_value | 
| +clip sb_custom_all | 
| +clip-path svg, name_for_methods=ClipperResource, sb_converter=convertFragmentIdentifier | 
| +clip-rule svg, type_name=WindRule | 
| +color-interpolation svg | 
| +color-interpolation-filters svg, type_name=EColorInterpolation | 
| +color-rendering svg | 
| +column-fill type_name=ColumnFill | 
| +content sb_custom_all | 
| +counter-increment sb_custom_all | 
| +counter-reset sb_custom_all | 
| +cursor sb_custom_all | 
| display | 
| +dominant-baseline svg | 
| empty-cells type_name=EEmptyCell | 
| -flex-basis converter=convertLengthOrAuto | 
| +fill svg, setter=setFillPaint, sb_custom_all | 
| +fill-opacity svg, sb_converter=convertNumberOrPercentage | 
| +fill-rule svg, type_name=WindRule | 
| +filter svg, name_for_methods=FilterResource, sb_converter=convertFragmentIdentifier | 
| +flex-basis sb_converter=convertLengthOrAuto | 
| flex-direction | 
| flex-grow type_name=float | 
| flex-shrink type_name=float | 
| flex-wrap | 
| float type_name=EFloat, name_for_methods=Floating | 
| -font custom_all | 
| -font-family custom_all | 
| -font-kerning font, type_name=FontDescription::Kerning, name_for_methods=Kerning | 
| -font-size custom_all | 
| -font-style font, type_name=FontStyle, name_for_methods=Style | 
| -font-variant font, type_name=FontVariant, name_for_methods=Variant | 
| -font-variant-ligatures custom_all | 
| -font-weight custom_all | 
| -grid-auto-flow custom_value | 
| -grid-auto-columns converter=convertGridTrackSize | 
| -grid-auto-rows converter=convertGridTrackSize | 
| -grid-column-start converter=convertGridPosition | 
| -grid-column-end converter=convertGridPosition | 
| -grid-row-start converter=convertGridPosition | 
| -grid-row-end converter=convertGridPosition | 
| -grid-template-columns custom_all | 
| -grid-template-rows custom_all | 
| -grid-template-areas custom_all | 
| -height initial=initialSize, converter=convertLengthSizing | 
| -justify-content | 
| +flood-color svg, sb_converter=convertSVGColor | 
| +flood-opacity svg, sb_converter=convertNumberOrPercentage | 
| +glyph-orientation-horizontal svg, sb_converter=convertGlyphOrientation | 
| +glyph-orientation-vertical svg, sb_custom_value | 
| +grid-auto-columns sb_converter=convertGridTrackSize | 
| +grid-auto-flow sb_custom_value | 
| +grid-auto-rows sb_converter=convertGridTrackSize | 
| +grid-column-end sb_converter=convertGridPosition | 
| +grid-column-start sb_converter=convertGridPosition | 
| +grid-row-end sb_converter=convertGridPosition | 
| +grid-row-start sb_converter=convertGridPosition | 
| +grid-template-areas sb_custom_all | 
| +grid-template-columns sb_custom_all | 
| +grid-template-rows sb_custom_all | 
| +height initial=initialSize, sb_converter=convertLengthSizing | 
| image-rendering | 
| isolation | 
| -justify-items custom_all | 
| -justify-self custom_all | 
| -left initial=initialOffset, converter=convertLengthOrAuto | 
| -letter-spacing initial=initialLetterWordSpacing, converter=convertSpacing | 
| -line-height getter=specifiedLineHeight, custom_value | 
| -list-style-image custom_value | 
| +justify-content | 
| +justify-items sb_custom_all | 
| +justify-self sb_custom_all | 
| +left initial=initialOffset, sb_converter=convertLengthOrAuto | 
| +letter-spacing initial=initialLetterWordSpacing, sb_converter=convertSpacing | 
| +lighting-color svg, sb_converter=convertSVGColor | 
| +line-height getter=specifiedLineHeight, sb_custom_value | 
| +list-style-image sb_custom_value | 
| list-style-position | 
| list-style-type | 
| -margin-bottom initial=initialMargin, converter=convertLengthOrAuto | 
| -margin-left initial=initialMargin, converter=convertLengthOrAuto | 
| -margin-right initial=initialMargin, converter=convertLengthOrAuto | 
| -margin-top initial=initialMargin, converter=convertLengthOrAuto | 
| -mask-source-type custom_all | 
| -max-height initial=initialMaxSize, converter=convertLengthMaxSizing | 
| -max-width initial=initialMaxSize, converter=convertLengthMaxSizing | 
| -min-height initial=initialMinSize, converter=convertLengthSizing | 
| -min-width initial=initialMinSize, converter=convertLengthSizing | 
| +margin-bottom initial=initialMargin, sb_converter=convertLengthOrAuto | 
| +margin-left initial=initialMargin, sb_converter=convertLengthOrAuto | 
| +margin-right initial=initialMargin, sb_converter=convertLengthOrAuto | 
| +margin-top initial=initialMargin, sb_converter=convertLengthOrAuto | 
| +marker-end svg, name_for_methods=MarkerEndResource, sb_converter=convertFragmentIdentifier | 
| +marker-mid svg, name_for_methods=MarkerMidResource, sb_converter=convertFragmentIdentifier | 
| +marker-start svg, name_for_methods=MarkerStartResource, sb_converter=convertFragmentIdentifier | 
| +mask svg, name_for_methods=MaskerResource, sb_converter=convertFragmentIdentifier | 
| +mask-source-type sb_custom_all | 
| +mask-type svg | 
| +max-height initial=initialMaxSize, sb_converter=convertLengthMaxSizing | 
| +max-width initial=initialMaxSize, sb_converter=convertLengthMaxSizing | 
| +min-height initial=initialMinSize, sb_converter=convertLengthSizing | 
| +min-width initial=initialMinSize, sb_converter=convertLengthSizing | 
| mix-blend-mode type_name=blink::WebBlendMode, name_for_methods=BlendMode | 
| object-fit type_name=ObjectFit | 
| -object-position converter=convertLengthPoint | 
| +object-position sb_converter=convertLengthPoint | 
| opacity type_name=float | 
| order type_name=int | 
| -orphans type_name=short, custom_all | 
| -outline-color custom_all | 
| -outline-offset converter=convertComputedLength<int> | 
| -outline-style custom_all | 
| -outline-width converter=convertLineWidth<unsigned short> | 
| +orphans type_name=short, sb_custom_all | 
| +outline-color sb_custom_all | 
| +outline-offset sb_converter=convertComputedLength<int> | 
| +outline-style sb_custom_all | 
| +outline-width sb_converter=convertLineWidth<unsigned short> | 
| overflow-wrap | 
| overflow-x type_name=EOverflow | 
| overflow-y type_name=EOverflow | 
| -padding-bottom initial=initialPadding, converter=convertLength | 
| -padding-left initial=initialPadding, converter=convertLength | 
| -padding-right initial=initialPadding, converter=convertLength | 
| -padding-top initial=initialPadding, converter=convertLength | 
| +padding-bottom initial=initialPadding, sb_converter=convertLength | 
| +padding-left initial=initialPadding, sb_converter=convertLength | 
| +padding-right initial=initialPadding, sb_converter=convertLength | 
| +padding-top initial=initialPadding, sb_converter=convertLength | 
| page-break-after type_name=EPageBreak, initial=initialPageBreak | 
| page-break-before type_name=EPageBreak, initial=initialPageBreak | 
| page-break-inside type_name=EPageBreak, initial=initialPageBreak | 
| -perspective custom_value | 
| +paint-order svg, sb_converter=convertPaintOrder | 
| +perspective sb_custom_value | 
| +perspective-origin sb_custom_all | 
| pointer-events | 
| position | 
| -quotes converter=convertQuotes | 
| -resize custom_value | 
| -right initial=initialOffset, converter=convertLengthOrAuto | 
| +quotes sb_converter=convertQuotes | 
| +resize sb_custom_value | 
| +right initial=initialOffset, sb_converter=convertLengthOrAuto | 
| scroll-behavior type_name=ScrollBehavior | 
| shape-image-threshold type_name=float | 
| -shape-margin converter=convertLength | 
| -shape-outside custom_value | 
| -size custom_all | 
| +shape-margin sb_converter=convertLength | 
| +shape-outside sb_custom_value | 
| +shape-rendering svg | 
| +size sb_custom_all | 
| speak | 
| +stop-color svg, sb_converter=convertSVGColor | 
| +stop-opacity svg, sb_converter=convertNumberOrPercentage | 
| +stroke svg, setter=setStrokePaint, sb_custom_all | 
| +stroke-dasharray svg, name_for_methods=StrokeDashArray, sb_converter=convertStrokeDasharray | 
| +stroke-dashoffset svg, name_for_methods=StrokeDashOffset, sb_converter=convertSVGLength | 
| +stroke-linecap svg, type_name=LineCap, name_for_methods=CapStyle | 
| +stroke-linejoin svg, type_name=LineJoin, name_for_methods=JoinStyle | 
| +stroke-miterlimit svg, type_name=float, name_for_methods=StrokeMiterLimit | 
| +stroke-opacity svg, sb_converter=convertNumberOrPercentage | 
| +stroke-width svg, sb_converter=convertSVGLength | 
| table-layout | 
| tab-size type_name=unsigned | 
| -text-align custom_value | 
| +text-align sb_custom_value | 
| text-align-last type_name=TextAlignLast | 
| -text-decoration-line name_for_methods=TextDecoration, custom_value | 
| -text-decoration-color custom_all | 
| +text-anchor svg | 
| +text-decoration-color sb_custom_all | 
| +text-decoration-line name_for_methods=TextDecoration, sb_custom_value | 
| text-decoration-style type_name=TextDecorationStyle | 
| -text-indent custom_all | 
| +text-indent sb_custom_all | 
| text-justify type_name=TextJustify | 
| text-overflow type_name=TextOverflow | 
| -text-rendering font, type_name=TextRenderingMode | 
| -text-shadow converter=convertShadow | 
| +text-shadow sb_converter=convertShadow | 
| text-transform | 
| -top initial=initialOffset, converter=convertLengthOrAuto | 
| -touch-action custom_value | 
| +text-underline-position sb_custom_value | 
| +top initial=initialOffset, sb_converter=convertLengthOrAuto | 
| +touch-action sb_custom_value | 
| touch-action-delay type_name=TouchActionDelay | 
| +transform sb_custom_value | 
| +transform-origin sb_custom_all | 
| +transform-style name_for_methods=TransformStyle3D | 
| unicode-bidi | 
| -vertical-align custom_inherit, custom_value | 
| +vector-effect svg | 
| +vertical-align sb_custom_inherit, sb_custom_value | 
| visibility | 
| -white-space | 
| -widows type_name=short, custom_all | 
| -width initial=initialSize, converter=convertLengthSizing | 
| -will-change custom_all | 
| -word-break | 
| -word-spacing initial=initialLetterWordSpacing, converter=convertSpacing | 
| -zoom custom_all | 
| -z-index type_name=int, custom_all | 
| - | 
| --webkit-animation-delay custom_all | 
| --webkit-animation-direction custom_all | 
| --webkit-animation-duration custom_all | 
| --webkit-animation-fillMode custom_all | 
| --webkit-animation-iteration-count custom_all | 
| --webkit-animation-name custom_all | 
| --webkit-animation-play-state custom_all | 
| --webkit-animation-timing-function custom_all | 
| --webkit-app-region custom_all | 
| +-webkit-animation-delay sb_custom_all | 
| +-webkit-animation-direction sb_custom_all | 
| +-webkit-animation-duration sb_custom_all | 
| +-webkit-animation-fill-mode sb_custom_all | 
| +-webkit-animation-iteration-count sb_custom_all | 
| +-webkit-animation-name sb_custom_all | 
| +-webkit-animation-play-state sb_custom_all | 
| +-webkit-animation-timing-function sb_custom_all | 
| -webkit-appearance type_name=ControlPart | 
| --webkit-aspect-ratio custom_all | 
| -backface-visibility | 
| --webkit-background-composite custom_all | 
| +-webkit-app-region sb_custom_all | 
| +-webkit-aspect-ratio sb_custom_all | 
| +-webkit-background-composite sb_custom_all | 
| -webkit-border-fit | 
| --webkit-border-horizontal-spacing name_for_methods=HorizontalBorderSpacing, converter=convertComputedLength<short> | 
| --webkit-border-image initial=initialNinePieceImage, custom_value | 
| --webkit-border-vertical-spacing name_for_methods=VerticalBorderSpacing, converter=convertComputedLength<short> | 
| +-webkit-border-horizontal-spacing name_for_methods=HorizontalBorderSpacing, sb_converter=convertComputedLength<short> | 
| +-webkit-border-vertical-spacing name_for_methods=VerticalBorderSpacing, sb_converter=convertComputedLength<short> | 
| -webkit-box-align type_name=EBoxAlignment | 
| -webkit-box-decoration-break | 
| -webkit-box-direction | 
| --webkit-box-flex-group type_name=unsigned int | 
| -webkit-box-flex type_name=float | 
| +-webkit-box-flex-group type_name=unsigned int | 
| -webkit-box-lines | 
| -webkit-box-ordinal-group type_name=unsigned int | 
| -webkit-box-orient | 
| -webkit-box-pack | 
| --webkit-box-reflect converter=convertBoxReflect | 
| --webkit-clip-path custom_value | 
| +-webkit-box-reflect sb_converter=convertBoxReflect | 
| +-webkit-clip-path sb_custom_value | 
| -webkit-column-break-after type_name=EPageBreak, initial=initialPageBreak | 
| -webkit-column-break-before type_name=EPageBreak, initial=initialPageBreak | 
| -webkit-column-break-inside type_name=EPageBreak, initial=initialPageBreak | 
| --webkit-column-count type_name=unsigned short, custom_all | 
| -column-fill type_name=ColumnFill | 
| --webkit-column-gap type_name=float, custom_all | 
| --webkit-column-rule-color custom_all | 
| +-webkit-column-count type_name=unsigned short, sb_custom_all | 
| +-webkit-column-gap type_name=float, sb_custom_all | 
| +-webkit-column-rule-color sb_custom_all | 
| -webkit-column-rule-style type_name=EBorderStyle, initial=initialBorderStyle | 
| --webkit-column-rule-width converter=convertLineWidth<unsigned short> | 
| +-webkit-column-rule-width sb_converter=convertLineWidth<unsigned short> | 
| -webkit-column-span type_name=ColumnSpan | 
| --webkit-column-width type_name=float, custom_all | 
| --webkit-filter custom_value | 
| --webkit-font-feature-settings custom_all | 
| --webkit-font-smoothing font, type_name=FontSmoothingMode | 
| --webkit-highlight converter=convertString<CSSValueNone> | 
| --webkit-hyphenate-character name_for_methods=HyphenationString, converter=convertString<CSSValueAuto> | 
| --webkit-line-box-contain converter=convertLineBoxContain | 
| +-webkit-column-width type_name=float, sb_custom_all | 
| +-webkit-filter sb_custom_value | 
| +-webkit-highlight sb_converter=convertString<CSSValueNone> | 
| +-webkit-hyphenate-character name_for_methods=HyphenationString, sb_converter=convertString<CSSValueAuto> | 
| +-webkit-line-box-contain sb_converter=convertLineBoxContain | 
| -webkit-line-break type_name=LineBreak | 
| -webkit-line-clamp type_name=LineClampValue | 
| --webkit-locale custom_value | 
| -webkit-margin-after-collapse type_name=EMarginCollapse | 
| -webkit-margin-before-collapse type_name=EMarginCollapse | 
| -webkit-margin-bottom-collapse type_name=EMarginCollapse, name_for_methods=MarginAfterCollapse | 
| -webkit-margin-top-collapse type_name=EMarginCollapse, name_for_methods=MarginBeforeCollapse | 
| --internal-marquee-direction name_for_methods=MarqueeDirection | 
| --internal-marquee-increment custom_value, name_for_methods=MarqueeIncrement | 
| --internal-marquee-repetition type_name=int, name_for_methods=MarqueeLoopCount, custom_value | 
| --internal-marquee-speed custom_value, name_for_methods=MarqueeSpeed | 
| --internal-marquee-style name_for_methods=MarqueeBehavior | 
| --webkit-mask-box-image-outset custom_all | 
| --webkit-mask-box-image-repeat custom_all | 
| --webkit-mask-box-image-slice custom_all | 
| --webkit-mask-box-image-source custom_value | 
| --webkit-mask-box-image-width custom_all | 
| --webkit-mask-clip custom_all | 
| --webkit-mask-composite custom_all | 
| --webkit-mask-image custom_all | 
| --webkit-mask-origin custom_all | 
| --webkit-mask-position-x custom_all | 
| --webkit-mask-position-y custom_all | 
| --webkit-mask-repeat-x custom_all | 
| --webkit-mask-repeat-y custom_all | 
| --webkit-mask-size custom_all | 
| -perspective-origin custom_all | 
| --webkit-perspective-origin-x converter=convertLength | 
| --webkit-perspective-origin-y converter=convertLength | 
| +-webkit-mask-box-image-outset sb_custom_all | 
| +-webkit-mask-box-image-repeat sb_custom_all | 
| +-webkit-mask-box-image-slice sb_custom_all | 
| +-webkit-mask-box-image-source sb_custom_value | 
| +-webkit-mask-box-image-width sb_custom_all | 
| +-webkit-mask-clip sb_custom_all | 
| +-webkit-mask-composite sb_custom_all | 
| +-webkit-mask-image sb_custom_all | 
| +-webkit-mask-origin sb_custom_all | 
| +-webkit-mask-position-x sb_custom_all | 
| +-webkit-mask-position-y sb_custom_all | 
| +-webkit-mask-repeat-x sb_custom_all | 
| +-webkit-mask-repeat-y sb_custom_all | 
| +-webkit-mask-size sb_custom_all | 
| +-webkit-perspective-origin-x sb_converter=convertLength | 
| +-webkit-perspective-origin-y sb_converter=convertLength | 
| -webkit-print-color-adjust type_name=PrintColorAdjust | 
| -webkit-rtl-ordering type_name=Order, setter=setRTLOrdering, initial=initialRTLOrdering | 
| -webkit-ruby-position type_name=RubyPosition | 
| --webkit-tap-highlight-color custom_value | 
| +-webkit-tap-highlight-color sb_custom_value | 
| -webkit-text-combine type_name=TextCombine | 
| --webkit-text-emphasis-color custom_all | 
| +-webkit-text-emphasis-color sb_custom_all | 
| -webkit-text-emphasis-position type_name=TextEmphasisPosition | 
| --webkit-text-emphasis-style custom_all | 
| --webkit-text-fill-color custom_all | 
| --webkit-text-orientation custom_value | 
| +-webkit-text-emphasis-style sb_custom_all | 
| +-webkit-text-fill-color sb_custom_all | 
| -webkit-text-security | 
| --webkit-text-stroke-color custom_all | 
| --webkit-text-stroke-width converter=convertTextStrokeWidth | 
| -text-underline-position custom_value | 
| -transform custom_value | 
| -transform-origin custom_all | 
| --webkit-transform-origin-x converter=convertLength | 
| --webkit-transform-origin-y converter=convertLength | 
| --webkit-transform-origin-z converter=convertComputedLength<float> | 
| -transform-style name_for_methods=TransformStyle3D | 
| --webkit-transition-delay custom_all | 
| --webkit-transition-duration custom_all | 
| --webkit-transition-property custom_all | 
| --webkit-transition-timing-function custom_all | 
| +-webkit-text-stroke-color sb_custom_all | 
| +-webkit-text-stroke-width sb_converter=convertTextStrokeWidth | 
| +-webkit-transition-delay sb_custom_all | 
| +-webkit-transition-duration sb_custom_all | 
| +-webkit-transition-property sb_custom_all | 
| +-webkit-transition-timing-function sb_custom_all | 
| -webkit-user-drag | 
| -webkit-user-modify | 
| -webkit-user-select | 
| --webkit-writing-mode custom_value | 
| - | 
| -alignment-baseline svg | 
| -baseline-shift svg, custom_inherit, custom_value | 
| -buffered-rendering svg | 
| -clip-path svg, name_for_methods=ClipperResource, converter=convertFragmentIdentifier | 
| -clip-rule svg, type_name=WindRule | 
| -color-interpolation svg | 
| -color-interpolation-filters svg, type_name=EColorInterpolation | 
| -color-rendering svg | 
| -dominant-baseline svg | 
| -fill svg, setter=setFillPaint, custom_all | 
| -fill-opacity svg, converter=convertNumberOrPercentage | 
| -fill-rule svg, type_name=WindRule | 
| -filter svg, name_for_methods=FilterResource, converter=convertFragmentIdentifier | 
| -flood-color svg, converter=convertSVGColor | 
| -flood-opacity svg, converter=convertNumberOrPercentage | 
| -glyph-orientation-horizontal svg, converter=convertGlyphOrientation | 
| -glyph-orientation-vertical svg, custom_value | 
| -lighting-color svg, converter=convertSVGColor | 
| -marker-start svg, name_for_methods=MarkerStartResource, converter=convertFragmentIdentifier | 
| -marker-mid svg, name_for_methods=MarkerMidResource, converter=convertFragmentIdentifier | 
| -marker-end svg, name_for_methods=MarkerEndResource, converter=convertFragmentIdentifier | 
| -mask svg, name_for_methods=MaskerResource, converter=convertFragmentIdentifier | 
| -mask-type svg | 
| -paint-order svg, converter=convertPaintOrder | 
| -shape-rendering svg | 
| -stop-color svg, converter=convertSVGColor | 
| -stop-opacity svg, converter=convertNumberOrPercentage | 
| -stroke svg, setter=setStrokePaint, custom_all | 
| -stroke-dasharray svg, name_for_methods=StrokeDashArray, converter=convertStrokeDasharray | 
| -stroke-dashoffset svg, name_for_methods=StrokeDashOffset, converter=convertSVGLength | 
| -stroke-linecap svg, type_name=LineCap, name_for_methods=CapStyle | 
| -stroke-linejoin svg, type_name=LineJoin, name_for_methods=JoinStyle | 
| -stroke-miterlimit svg, type_name=float, name_for_methods=StrokeMiterLimit | 
| -stroke-opacity svg, converter=convertNumberOrPercentage | 
| -stroke-width svg, converter=convertSVGLength | 
| -text-anchor svg | 
| -vector-effect svg | 
| +white-space | 
| +widows type_name=short, sb_custom_all | 
| +width initial=initialSize, sb_converter=convertLengthSizing | 
| +will-change sb_custom_all | 
| +word-break | 
| +word-spacing initial=initialLetterWordSpacing, sb_converter=convertSpacing | 
| writing-mode svg, type_name=SVGWritingMode | 
| +z-index type_name=int, sb_custom_all | 
| + | 
| +// Internal properties | 
| + | 
| +-internal-marquee-direction name_for_methods=MarqueeDirection | 
| +-internal-marquee-increment sb_custom_value, name_for_methods=MarqueeIncrement | 
| +-internal-marquee-repetition type_name=int, name_for_methods=MarqueeLoopCount, sb_custom_value | 
| +-internal-marquee-speed sb_custom_value, name_for_methods=MarqueeSpeed | 
| +-internal-marquee-style name_for_methods=MarqueeBehavior | 
| + | 
| +// Properties that we ignore in the StyleBuilder. Note that unprefixed animation | 
| +// and transition properties are here due to the way they have been unprefixed | 
| +// FIXME: We should see if any of these should actually be unreachable | 
| +all sb_skip | 
| +animation-delay sb_skip | 
| +animation-direction sb_skip | 
| +animation-duration sb_skip | 
| +animation-fill-mode sb_skip | 
| +animation-iteration-count sb_skip | 
| +animation-name sb_skip | 
| +animation-play-state sb_skip | 
| +animation-timing-function sb_skip | 
| +enable-background sb_skip | 
| +font-stretch sb_skip | 
| +max-zoom sb_skip | 
| +min-zoom sb_skip | 
| +orientation sb_skip | 
| +page sb_skip | 
| +src sb_skip | 
| +transition-delay sb_skip | 
| +transition-duration sb_skip | 
| +transition-property sb_skip | 
| +transition-timing-function sb_skip | 
| +unicode-range sb_skip | 
| +user-zoom sb_skip | 
| +-webkit-font-size-delta sb_skip | 
| +-webkit-text-decorations-in-effect sb_skip | 
| + | 
| +// Shorthands | 
| -// FIXME: We should look over these and see if some should actually be | 
| -// marked as unreachable. | 
| -animation-delay skip | 
| -animation-direction skip | 
| -animation-duration skip | 
| -animation-fill-mode skip | 
| -animation-iteration-count skip | 
| -animation-name skip | 
| -animation-play-state skip | 
| -animation-timing-function skip | 
| -transition-delay skip | 
| -transition-duration skip | 
| -transition-property skip | 
| -transition-timing-function skip | 
| -font-stretch skip | 
| -page skip | 
| -src skip | 
| -unicode-range skip | 
| --webkit-font-size-delta skip | 
| --webkit-text-decorations-in-effect skip | 
| -max-zoom skip | 
| -min-zoom skip | 
| -user-zoom skip | 
| -orientation skip | 
| -enable-background skip | 
| -invalid skip | 
| -all skip | 
| +animation longhands=animation-name;animation-duration;animation-timing-function;animation-delay;animation-iteration-count;animation-direction;animation-fill-mode;animation-play-state | 
| +background longhands=background-image;background-position-x;background-position-y;background-size;background-repeat-x;background-repeat-y;background-attachment;background-origin;background-clip;background-color | 
| +background-position longhands=background-position-x;background-position-y | 
| +background-repeat longhands=background-repeat-x;background-repeat-y | 
| +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-bottom longhands=border-bottom-width;border-bottom-style;border-bottom-color | 
| +border-color longhands=border-top-color;border-right-color;border-bottom-color;border-left-color | 
| +border-image longhands=border-image-source;border-image-slice;border-image-width;border-image-outset;border-image-repeat | 
| +border-left longhands=border-left-width;border-left-style;border-left-color | 
| +border-radius longhands=border-top-left-radius;border-top-right-radius;border-bottom-right-radius;border-bottom-left-radius | 
| +border-right longhands=border-right-width;border-right-style;border-right-color | 
| +border-spacing longhands=-webkit-border-horizontal-spacing;-webkit-border-vertical-spacing | 
| +border-style longhands=border-top-style;border-right-style;border-bottom-style;border-left-style | 
| +border-top longhands=border-top-width;border-top-style;border-top-color | 
| +border-width longhands=border-top-width;border-right-width;border-bottom-width;border-left-width | 
| +flex longhands=flex-grow;flex-shrink;flex-basis | 
| +flex-flow longhands=flex-direction;flex-wrap | 
| +grid longhands=grid-template;grid-auto-flow;grid-auto-columns;grid-auto-rows | 
| +grid-area longhands=grid-row-start;grid-column-start;grid-row-end;grid-column-end | 
| +grid-column longhands=grid-column-start;grid-column-end | 
| +grid-row longhands=grid-row-start;grid-row-end | 
| +grid-template longhands=grid-template-columns;grid-template-rows;grid-template-areas | 
| +list-style longhands=list-style-type;list-style-position;list-style-image | 
| +margin longhands=margin-top;margin-right;margin-bottom;margin-left | 
| +marker longhands=marker-start;marker-mid;marker-end | 
| +outline longhands=outline-color;outline-style;outline-width | 
| +overflow longhands=overflow-x;overflow-y | 
| +padding longhands=padding-top;padding-right;padding-bottom;padding-left | 
| +text-decoration longhands=text-decoration-line;text-decoration-style;text-decoration-color | 
| +transition longhands=transition-property;transition-duration;transition-timing-function;transition-delay | 
| +-webkit-animation longhands=-webkit-animation-name;-webkit-animation-duration;-webkit-animation-timing-function;-webkit-animation-delay;-webkit-animation-iteration-count;-webkit-animation-direction;-webkit-animation-fill-mode;-webkit-animation-play-state | 
| +-webkit-border-after longhands=-webkit-border-after-width;-webkit-border-after-style;-webkit-border-after-color | 
| +-webkit-border-before longhands=-webkit-border-before-width;-webkit-border-before-style;-webkit-border-before-color | 
| +-webkit-border-end longhands=-webkit-border-end-width;-webkit-border-end-style;-webkit-border-end-color | 
| +// "-webkit-border-radius: 1px 2px" behaves as "border-radius: 1px / 2px" | 
| +-webkit-border-radius longhands=border-top-left-radius;border-top-right-radius;border-bottom-right-radius;border-bottom-left-radius | 
| +-webkit-border-start longhands=-webkit-border-start-width;-webkit-border-start-style;-webkit-border-start-color | 
| +-webkit-column-rule longhands=-webkit-column-rule-width;-webkit-column-rule-style;-webkit-column-rule-color | 
| +-webkit-columns longhands=-webkit-column-width;-webkit-column-count | 
| +-webkit-margin-collapse longhands=-webkit-margin-before-collapse;-webkit-margin-after-collapse | 
| +-webkit-mask longhands=-webkit-mask-image;-webkit-mask-position-x;-webkit-mask-position-y;-webkit-mask-size;-webkit-mask-repeat-x;-webkit-mask-repeat-y;-webkit-mask-origin;-webkit-mask-clip | 
| +-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 | 
| +-webkit-mask-position longhands=-webkit-mask-position-x;-webkit-mask-position-y | 
| +-webkit-mask-repeat longhands=-webkit-mask-repeat-x;-webkit-mask-repeat-y | 
| +-webkit-text-emphasis longhands=-webkit-text-emphasis-style;-webkit-text-emphasis-color | 
| +-webkit-text-stroke longhands=-webkit-text-stroke-width;-webkit-text-stroke-color | 
| +-webkit-transform-origin longhands=-webkit-transform-origin-x;-webkit-transform-origin-y;-webkit-transform-origin-z | 
| +-webkit-transition longhands=-webkit-transition-property;-webkit-transition-duration;-webkit-transition-timing-function;-webkit-transition-delay |