layout/style/nsCSSPropList.h

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 /*
     7  * a list of all CSS properties with considerable data about them, for
     8  * preprocessing
     9  */
    11 /******
    13   This file contains the list of all parsed CSS properties.  It is
    14   designed to be used as inline input through the magic of C
    15   preprocessing.  All entries must be enclosed in the appropriate
    16   CSS_PROP_* macro which will have cruel and unusual things done to it.
    17   It is recommended (but not strictly necessary) to keep all entries in
    18   alphabetical order.
    20   The arguments to CSS_PROP and CSS_PROP_* are:
    22   -. 'name' entries represent a CSS property name and *must* use only
    23   lowercase characters.
    25   -. 'id' should be the same as 'name' except that all hyphens ('-')
    26   in 'name' are converted to underscores ('_') in 'id'. For properties
    27   on a standards track, any '-moz-' prefix is removed in 'id'. This
    28   lets us do nice things with the macros without having to copy/convert
    29   strings at runtime.  These are the names used for the enum values of
    30   the nsCSSProperty enumeration defined in nsCSSProps.h.
    32   -. 'method' is designed to be as input for CSS2Properties and similar
    33   callers.  It must always be the same as 'name' except it must use
    34   InterCaps and all hyphens ('-') must be removed.  Callers using this
    35   parameter must also define the CSS_PROP_PUBLIC_OR_PRIVATE(publicname_,
    36   privatename_) macro to yield either publicname_ or privatename_.
    37   The names differ in that publicname_ has Moz prefixes where they are
    38   used, and also in CssFloat vs. Float.  The caller's choice depends on
    39   whether the use is for internal use such as eCSSProperty_* or
    40   nsRuleData::ValueFor* or external use such as exposing DOM properties.
    42   -. 'flags', a bitfield containing CSS_PROPERTY_* flags.
    44   -. 'pref' is the name of a pref that controls whether the property
    45   is enabled.  The property is enabled if 'pref' is an empty string,
    46   or if the boolean property whose name is 'pref' is set to true.
    48   -. 'parsevariant', to be passed to ParseVariant in the parser.
    50   -. 'kwtable', which is either nullptr or the name of the appropriate
    51   keyword table member of class nsCSSProps, for use in
    52   nsCSSProps::LookupPropertyValue.
    54   -. 'stylestruct_' [used only for CSS_PROP, not CSS_PROP_*] gives the
    55   name of the style struct.  Can be used to make nsStyle##stylestruct_
    56   and eStyleStruct_##stylestruct_
    58   -. 'stylestructoffset_' [not used for CSS_PROP_BACKENDONLY] gives the
    59   result of offsetof(nsStyle*, member).  Ignored (and generally
    60   CSS_PROP_NO_OFFSET, or -1) for properties whose animtype_ is
    61   eStyleAnimType_None.
    63   -. 'animtype_' [not used for CSS_PROP_BACKENDONLY] gives the
    64   animation type (see nsStyleAnimType) of this property.
    66   CSS_PROP_SHORTHAND only takes 1-5.
    68  ******/
    71 /*************************************************************************/
    74 // All includers must explicitly define CSS_PROP_SHORTHAND if they
    75 // want it.
    76 #ifndef CSS_PROP_SHORTHAND
    77 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) /* nothing */
    78 #define DEFINED_CSS_PROP_SHORTHAND
    79 #endif
    81 #define CSS_PROP_DOMPROP_PREFIXED(name_) \
    82   CSS_PROP_PUBLIC_OR_PRIVATE(Moz ## name_, name_)
    84 #define CSS_PROP_NO_OFFSET (-1)
    86 // Callers may define CSS_PROP_LIST_EXCLUDE_INTERNAL if they want to
    87 // exclude internal properties that are not represented in the DOM (only
    88 // the DOM style code defines this).
    90 // Callers may also define CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
    91 // to exclude properties that are not considered to be components of the 'all'
    92 // shorthand property.  Currently this excludes 'direction' and 'unicode-bidi',
    93 // as required by the CSS Cascading and Inheritance specification, and any
    94 // internal properties that cannot be changed by using CSS syntax.  For example,
    95 // the internal '-moz-system-font' property is not excluded, as it is set by the
    96 // 'font' shorthand, while '-x-lang' is excluded as there is no way to set this
    97 // internal property from a style sheet.
    99 // A caller who wants all the properties can define the |CSS_PROP|
   100 // macro.
   101 #ifdef CSS_PROP
   103 #define USED_CSS_PROP
   104 #define CSS_PROP_FONT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Font, stylestructoffset_, animtype_)
   105 #define CSS_PROP_COLOR(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Color, stylestructoffset_, animtype_)
   106 #define CSS_PROP_BACKGROUND(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Background, stylestructoffset_, animtype_)
   107 #define CSS_PROP_LIST(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, List, stylestructoffset_, animtype_)
   108 #define CSS_PROP_POSITION(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Position, stylestructoffset_, animtype_)
   109 #define CSS_PROP_TEXT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Text, stylestructoffset_, animtype_)
   110 #define CSS_PROP_TEXTRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, TextReset, stylestructoffset_, animtype_)
   111 #define CSS_PROP_DISPLAY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Display, stylestructoffset_, animtype_)
   112 #define CSS_PROP_VISIBILITY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Visibility, stylestructoffset_, animtype_)
   113 #define CSS_PROP_CONTENT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Content, stylestructoffset_, animtype_)
   114 #define CSS_PROP_QUOTES(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Quotes, stylestructoffset_, animtype_)
   115 #define CSS_PROP_USERINTERFACE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, UserInterface, stylestructoffset_, animtype_)
   116 #define CSS_PROP_UIRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, UIReset, stylestructoffset_, animtype_)
   117 #define CSS_PROP_TABLE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Table, stylestructoffset_, animtype_)
   118 #define CSS_PROP_TABLEBORDER(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, TableBorder, stylestructoffset_, animtype_)
   119 #define CSS_PROP_MARGIN(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Margin, stylestructoffset_, animtype_)
   120 #define CSS_PROP_PADDING(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Padding, stylestructoffset_, animtype_)
   121 #define CSS_PROP_BORDER(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Border, stylestructoffset_, animtype_)
   122 #define CSS_PROP_OUTLINE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Outline, stylestructoffset_, animtype_)
   123 #define CSS_PROP_XUL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, XUL, stylestructoffset_, animtype_)
   124 #define CSS_PROP_COLUMN(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Column, stylestructoffset_, animtype_)
   125 #define CSS_PROP_SVG(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, SVG, stylestructoffset_, animtype_)
   126 #define CSS_PROP_SVGRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, SVGReset, stylestructoffset_, animtype_)
   127 #define CSS_PROP_VARIABLES(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Variables, stylestructoffset_, animtype_)
   129 // For properties that are stored in the CSS backend but are not
   130 // computed.  An includer may define this in addition to CSS_PROP, but
   131 // otherwise we treat it as the same.
   132 #ifndef CSS_PROP_BACKENDONLY
   133 #define CSS_PROP_BACKENDONLY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, BackendOnly, CSS_PROP_NO_OFFSET, eStyleAnimType_None)
   134 #define DEFINED_CSS_PROP_BACKENDONLY
   135 #endif
   137 #else /* !defined(CSS_PROP) */
   139 // An includer who does not define CSS_PROP can define any or all of the
   140 // per-struct macros that are equivalent to it, and the rest will be
   141 // ignored.
   143 #ifndef CSS_PROP_FONT
   144 #define CSS_PROP_FONT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   145 #define DEFINED_CSS_PROP_FONT
   146 #endif
   147 #ifndef CSS_PROP_COLOR
   148 #define CSS_PROP_COLOR(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   149 #define DEFINED_CSS_PROP_COLOR
   150 #endif
   151 #ifndef CSS_PROP_BACKGROUND
   152 #define CSS_PROP_BACKGROUND(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   153 #define DEFINED_CSS_PROP_BACKGROUND
   154 #endif
   155 #ifndef CSS_PROP_LIST
   156 #define CSS_PROP_LIST(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   157 #define DEFINED_CSS_PROP_LIST
   158 #endif
   159 #ifndef CSS_PROP_POSITION
   160 #define CSS_PROP_POSITION(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   161 #define DEFINED_CSS_PROP_POSITION
   162 #endif
   163 #ifndef CSS_PROP_TEXT
   164 #define CSS_PROP_TEXT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   165 #define DEFINED_CSS_PROP_TEXT
   166 #endif
   167 #ifndef CSS_PROP_TEXTRESET
   168 #define CSS_PROP_TEXTRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   169 #define DEFINED_CSS_PROP_TEXTRESET
   170 #endif
   171 #ifndef CSS_PROP_DISPLAY
   172 #define CSS_PROP_DISPLAY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   173 #define DEFINED_CSS_PROP_DISPLAY
   174 #endif
   175 #ifndef CSS_PROP_VISIBILITY
   176 #define CSS_PROP_VISIBILITY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   177 #define DEFINED_CSS_PROP_VISIBILITY
   178 #endif
   179 #ifndef CSS_PROP_CONTENT
   180 #define CSS_PROP_CONTENT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   181 #define DEFINED_CSS_PROP_CONTENT
   182 #endif
   183 #ifndef CSS_PROP_QUOTES
   184 #define CSS_PROP_QUOTES(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   185 #define DEFINED_CSS_PROP_QUOTES
   186 #endif
   187 #ifndef CSS_PROP_USERINTERFACE
   188 #define CSS_PROP_USERINTERFACE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   189 #define DEFINED_CSS_PROP_USERINTERFACE
   190 #endif
   191 #ifndef CSS_PROP_UIRESET
   192 #define CSS_PROP_UIRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   193 #define DEFINED_CSS_PROP_UIRESET
   194 #endif
   195 #ifndef CSS_PROP_TABLE
   196 #define CSS_PROP_TABLE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   197 #define DEFINED_CSS_PROP_TABLE
   198 #endif
   199 #ifndef CSS_PROP_TABLEBORDER
   200 #define CSS_PROP_TABLEBORDER(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   201 #define DEFINED_CSS_PROP_TABLEBORDER
   202 #endif
   203 #ifndef CSS_PROP_MARGIN
   204 #define CSS_PROP_MARGIN(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   205 #define DEFINED_CSS_PROP_MARGIN
   206 #endif
   207 #ifndef CSS_PROP_PADDING
   208 #define CSS_PROP_PADDING(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   209 #define DEFINED_CSS_PROP_PADDING
   210 #endif
   211 #ifndef CSS_PROP_BORDER
   212 #define CSS_PROP_BORDER(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   213 #define DEFINED_CSS_PROP_BORDER
   214 #endif
   215 #ifndef CSS_PROP_OUTLINE
   216 #define CSS_PROP_OUTLINE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   217 #define DEFINED_CSS_PROP_OUTLINE
   218 #endif
   219 #ifndef CSS_PROP_XUL
   220 #define CSS_PROP_XUL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   221 #define DEFINED_CSS_PROP_XUL
   222 #endif
   223 #ifndef CSS_PROP_COLUMN
   224 #define CSS_PROP_COLUMN(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   225 #define DEFINED_CSS_PROP_COLUMN
   226 #endif
   227 #ifndef CSS_PROP_SVG
   228 #define CSS_PROP_SVG(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   229 #define DEFINED_CSS_PROP_SVG
   230 #endif
   231 #ifndef CSS_PROP_SVGRESET
   232 #define CSS_PROP_SVGRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   233 #define DEFINED_CSS_PROP_SVGRESET
   234 #endif
   235 #ifndef CSS_PROP_VARIABLES
   236 #define CSS_PROP_VARIABLES(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
   237 #define DEFINED_CSS_PROP_VARIABLES
   238 #endif
   240 #ifndef CSS_PROP_BACKENDONLY
   241 #define CSS_PROP_BACKENDONLY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_) /* nothing */
   242 #define DEFINED_CSS_PROP_BACKENDONLY
   243 #endif
   245 #endif /* !defined(CSS_PROP) */
   247 /*************************************************************************/
   249 // For notes XXX bug 3935 below, the names being parsed do not correspond
   250 // to the constants used internally.  It would be nice to bring the
   251 // constants into line sometime.
   253 // The parser will refuse to parse properties marked with -x-.
   255 // Those marked XXX bug 48973 are CSS2 properties that we support
   256 // differently from the spec for UI requirements.  If we ever
   257 // support them correctly the old constants need to be renamed and
   258 // new ones should be entered.
   260 // CSS2.1 section 5.12.1 says that the properties that apply to
   261 // :first-line are: font properties, color properties, background
   262 // properties, 'word-spacing', 'letter-spacing', 'text-decoration',
   263 // 'vertical-align', 'text-transform', and 'line-height'.
   264 //
   265 // We also allow 'text-shadow', which was listed in CSS2 (where the
   266 // property existed).
   268 // CSS2.1 section 5.12.2 says that the properties that apply to
   269 // :first-letter are: font properties, 'text-decoration',
   270 // 'text-transform', 'letter-spacing', 'word-spacing' (when
   271 // appropriate), 'line-height', 'float', 'vertical-align' (only if
   272 // 'float' is 'none'), margin properties, padding properties, border
   273 // properties, 'color', and background properties.  We also allow
   274 // 'text-shadow' (see above) and 'box-shadow' (which is like the
   275 // border properties).
   277 // We include '-moz-background-inline-policy' (css3-background's
   278 // 'background-break') in both as a background property, although this
   279 // is somewhat questionable.
   281 CSS_PROP_DISPLAY(
   282     -moz-appearance,
   283     appearance,
   284     CSS_PROP_DOMPROP_PREFIXED(Appearance),
   285     CSS_PROPERTY_PARSE_VALUE,
   286     "",
   287     VARIANT_HK,
   288     kAppearanceKTable,
   289     CSS_PROP_NO_OFFSET,
   290     eStyleAnimType_None)
   291 CSS_PROP_SHORTHAND(
   292     -moz-outline-radius,
   293     _moz_outline_radius,
   294     CSS_PROP_DOMPROP_PREFIXED(OutlineRadius),
   295     CSS_PROPERTY_PARSE_FUNCTION,
   296     "")
   297 CSS_PROP_OUTLINE(
   298     -moz-outline-radius-topleft,
   299     _moz_outline_radius_topLeft,
   300     CSS_PROP_DOMPROP_PREFIXED(OutlineRadiusTopleft),
   301     CSS_PROPERTY_PARSE_FUNCTION |
   302         CSS_PROPERTY_VALUE_NONNEGATIVE |
   303         CSS_PROPERTY_STORES_CALC |
   304         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
   305     "",
   306     0,
   307     nullptr,
   308     offsetof(nsStyleOutline, mOutlineRadius),
   309     eStyleAnimType_Corner_TopLeft)
   310 CSS_PROP_OUTLINE(
   311     -moz-outline-radius-topright,
   312     _moz_outline_radius_topRight,
   313     CSS_PROP_DOMPROP_PREFIXED(OutlineRadiusTopright),
   314     CSS_PROPERTY_PARSE_FUNCTION |
   315         CSS_PROPERTY_VALUE_NONNEGATIVE |
   316         CSS_PROPERTY_STORES_CALC |
   317         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
   318     "",
   319     0,
   320     nullptr,
   321     offsetof(nsStyleOutline, mOutlineRadius),
   322     eStyleAnimType_Corner_TopRight)
   323 CSS_PROP_OUTLINE(
   324     -moz-outline-radius-bottomright,
   325     _moz_outline_radius_bottomRight,
   326     CSS_PROP_DOMPROP_PREFIXED(OutlineRadiusBottomright),
   327     CSS_PROPERTY_PARSE_FUNCTION |
   328         CSS_PROPERTY_VALUE_NONNEGATIVE |
   329         CSS_PROPERTY_STORES_CALC |
   330         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
   331     "",
   332     0,
   333     nullptr,
   334     offsetof(nsStyleOutline, mOutlineRadius),
   335     eStyleAnimType_Corner_BottomRight)
   336 CSS_PROP_OUTLINE(
   337     -moz-outline-radius-bottomleft,
   338     _moz_outline_radius_bottomLeft,
   339     CSS_PROP_DOMPROP_PREFIXED(OutlineRadiusBottomleft),
   340     CSS_PROPERTY_PARSE_FUNCTION |
   341         CSS_PROPERTY_VALUE_NONNEGATIVE |
   342         CSS_PROPERTY_STORES_CALC |
   343         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
   344     "",
   345     0,
   346     nullptr,
   347     offsetof(nsStyleOutline, mOutlineRadius),
   348     eStyleAnimType_Corner_BottomLeft)
   349 CSS_PROP_TEXT(
   350     -moz-tab-size,
   351     _moz_tab_size,
   352     CSS_PROP_DOMPROP_PREFIXED(TabSize),
   353     CSS_PROPERTY_PARSE_VALUE |
   354         CSS_PROPERTY_VALUE_NONNEGATIVE,
   355     "",
   356     VARIANT_HI,
   357     nullptr,
   358     offsetof(nsStyleText, mTabSize),
   359     eStyleAnimType_None)
   360 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
   361 CSS_PROP_FONT(
   362     -x-system-font,
   363     _x_system_font,
   364     CSS_PROP_DOMPROP_PREFIXED(SystemFont),
   365     CSS_PROPERTY_PARSE_INACCESSIBLE |
   366         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   367         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
   368     "",
   369     0,
   370     kFontKTable,
   371     CSS_PROP_NO_OFFSET,
   372     eStyleAnimType_None)
   373 #endif // !defined(CSS_PROP_LIST_EXCLUDE_INTERNAL)
   374 CSS_PROP_SHORTHAND(
   375     all,
   376     all,
   377     All,
   378     CSS_PROPERTY_PARSE_FUNCTION,
   379     "layout.css.all-shorthand.enabled")
   380 CSS_PROP_SHORTHAND(
   381     animation,
   382     animation,
   383     Animation,
   384     CSS_PROPERTY_PARSE_FUNCTION,
   385     "")
   386 CSS_PROP_DISPLAY(
   387     animation-delay,
   388     animation_delay,
   389     AnimationDelay,
   390     CSS_PROPERTY_PARSE_VALUE_LIST |
   391         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   392     "",
   393     VARIANT_TIME, // used by list parsing
   394     nullptr,
   395     CSS_PROP_NO_OFFSET,
   396     eStyleAnimType_None)
   397 CSS_PROP_DISPLAY(
   398     animation-direction,
   399     animation_direction,
   400     AnimationDirection,
   401     CSS_PROPERTY_PARSE_VALUE_LIST |
   402         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   403     "",
   404     VARIANT_KEYWORD, // used by list parsing
   405     kAnimationDirectionKTable,
   406     CSS_PROP_NO_OFFSET,
   407     eStyleAnimType_None)
   408 CSS_PROP_DISPLAY(
   409     animation-duration,
   410     animation_duration,
   411     AnimationDuration,
   412     CSS_PROPERTY_PARSE_VALUE_LIST |
   413         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   414     "",
   415     VARIANT_TIME | VARIANT_NONNEGATIVE_DIMENSION, // used by list parsing
   416     nullptr,
   417     CSS_PROP_NO_OFFSET,
   418     eStyleAnimType_None)
   419 CSS_PROP_DISPLAY(
   420     animation-fill-mode,
   421     animation_fill_mode,
   422     AnimationFillMode,
   423     CSS_PROPERTY_PARSE_VALUE_LIST |
   424         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   425     "",
   426     VARIANT_KEYWORD, // used by list parsing
   427     kAnimationFillModeKTable,
   428     CSS_PROP_NO_OFFSET,
   429     eStyleAnimType_None)
   430 CSS_PROP_DISPLAY(
   431     animation-iteration-count,
   432     animation_iteration_count,
   433     AnimationIterationCount,
   434     CSS_PROPERTY_PARSE_VALUE_LIST |
   435         // nonnegative per
   436         // http://lists.w3.org/Archives/Public/www-style/2011Mar/0355.html
   437         CSS_PROPERTY_VALUE_NONNEGATIVE |
   438         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   439     "",
   440     VARIANT_KEYWORD | VARIANT_NUMBER, // used by list parsing
   441     kAnimationIterationCountKTable,
   442     CSS_PROP_NO_OFFSET,
   443     eStyleAnimType_None)
   444 CSS_PROP_DISPLAY(
   445     animation-name,
   446     animation_name,
   447     AnimationName,
   448     CSS_PROPERTY_PARSE_VALUE_LIST |
   449         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   450     "",
   451     // FIXME: The spec should say something about 'inherit' and 'initial'
   452     // not being allowed.
   453     VARIANT_NONE | VARIANT_IDENTIFIER_NO_INHERIT, // used by list parsing
   454     nullptr,
   455     CSS_PROP_NO_OFFSET,
   456     eStyleAnimType_None)
   457 CSS_PROP_DISPLAY(
   458     animation-play-state,
   459     animation_play_state,
   460     AnimationPlayState,
   461     CSS_PROPERTY_PARSE_VALUE_LIST |
   462         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   463     "",
   464     VARIANT_KEYWORD, // used by list parsing
   465     kAnimationPlayStateKTable,
   466     CSS_PROP_NO_OFFSET,
   467     eStyleAnimType_None)
   468 CSS_PROP_DISPLAY(
   469     animation-timing-function,
   470     animation_timing_function,
   471     AnimationTimingFunction,
   472     CSS_PROPERTY_PARSE_VALUE_LIST |
   473         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   474     "",
   475     VARIANT_KEYWORD | VARIANT_TIMING_FUNCTION, // used by list parsing
   476     kTransitionTimingFunctionKTable,
   477     CSS_PROP_NO_OFFSET,
   478     eStyleAnimType_None)
   479 CSS_PROP_SHORTHAND(
   480     background,
   481     background,
   482     Background,
   483     CSS_PROPERTY_PARSE_FUNCTION,
   484     "")
   485 CSS_PROP_BACKGROUND(
   486     background-attachment,
   487     background_attachment,
   488     BackgroundAttachment,
   489     CSS_PROPERTY_PARSE_VALUE_LIST |
   490         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   491         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   492         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   493     "",
   494     VARIANT_KEYWORD, // used by list parsing
   495     kBackgroundAttachmentKTable,
   496     CSS_PROP_NO_OFFSET,
   497     eStyleAnimType_None)
   498 CSS_PROP_BACKGROUND(
   499     background-clip,
   500     background_clip,
   501     BackgroundClip,
   502     CSS_PROPERTY_PARSE_VALUE_LIST |
   503         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   504         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   505         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   506     "",
   507     VARIANT_KEYWORD, // used by list parsing
   508     kBackgroundOriginKTable,
   509     CSS_PROP_NO_OFFSET,
   510     eStyleAnimType_None)
   511 CSS_PROP_BACKGROUND(
   512     background-color,
   513     background_color,
   514     BackgroundColor,
   515     CSS_PROPERTY_PARSE_VALUE |
   516         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   517         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   518         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
   519         CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
   520     "",
   521     VARIANT_HC,
   522     nullptr,
   523     offsetof(nsStyleBackground, mBackgroundColor),
   524     eStyleAnimType_Color)
   525 CSS_PROP_BACKGROUND(
   526     background-image,
   527     background_image,
   528     BackgroundImage,
   529     CSS_PROPERTY_PARSE_VALUE_LIST |
   530         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   531         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   532         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
   533         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
   534         CSS_PROPERTY_START_IMAGE_LOADS,
   535     "",
   536     VARIANT_IMAGE, // used by list parsing
   537     nullptr,
   538     CSS_PROP_NO_OFFSET,
   539     eStyleAnimType_None)
   540 CSS_PROP_BACKGROUND(
   541     -moz-background-inline-policy,
   542     _moz_background_inline_policy,
   543     CSS_PROP_DOMPROP_PREFIXED(BackgroundInlinePolicy),
   544     CSS_PROPERTY_PARSE_VALUE |
   545         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   546         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
   547     "",
   548     VARIANT_HK,
   549     kBackgroundInlinePolicyKTable,
   550     CSS_PROP_NO_OFFSET,
   551     eStyleAnimType_None)
   552 CSS_PROP_BACKGROUND(
   553     background-blend-mode,
   554     background_blend_mode,
   555     BackgroundBlendMode,
   556     CSS_PROPERTY_PARSE_VALUE_LIST |
   557         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   558         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   559         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   560     "layout.css.background-blend-mode.enabled",
   561     VARIANT_KEYWORD, // used by list parsing
   562     kBlendModeKTable,
   563     CSS_PROP_NO_OFFSET,
   564     eStyleAnimType_None)
   565 CSS_PROP_BACKGROUND(
   566     background-origin,
   567     background_origin,
   568     BackgroundOrigin,
   569     CSS_PROPERTY_PARSE_VALUE_LIST |
   570         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   571         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   572         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   573     "",
   574     VARIANT_KEYWORD, // used by list parsing
   575     kBackgroundOriginKTable,
   576     CSS_PROP_NO_OFFSET,
   577     eStyleAnimType_None)
   578 CSS_PROP_BACKGROUND(
   579     background-position,
   580     background_position,
   581     BackgroundPosition,
   582     CSS_PROPERTY_PARSE_FUNCTION |
   583         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   584         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   585         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
   586         CSS_PROPERTY_STORES_CALC,
   587     "",
   588     0,
   589     kBackgroundPositionKTable,
   590     CSS_PROP_NO_OFFSET,
   591     eStyleAnimType_Custom)
   592 CSS_PROP_BACKGROUND(
   593     background-repeat,
   594     background_repeat,
   595     BackgroundRepeat,
   596     CSS_PROPERTY_PARSE_FUNCTION |
   597         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   598         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   599         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
   600     "",
   601     VARIANT_KEYWORD, // used by list parsing
   602     kBackgroundRepeatKTable,
   603     CSS_PROP_NO_OFFSET,
   604     eStyleAnimType_None)
   605 CSS_PROP_BACKGROUND(
   606     background-size,
   607     background_size,
   608     BackgroundSize,
   609     CSS_PROPERTY_PARSE_FUNCTION |
   610         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
   611         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
   612         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
   613         CSS_PROPERTY_VALUE_NONNEGATIVE |
   614         CSS_PROPERTY_STORES_CALC,
   615     "",
   616     0,
   617     kBackgroundSizeKTable,
   618     CSS_PROP_NO_OFFSET,
   619     eStyleAnimType_Custom)
   620 CSS_PROP_DISPLAY(
   621     -moz-binding,
   622     binding,
   623     CSS_PROP_DOMPROP_PREFIXED(Binding),
   624     CSS_PROPERTY_PARSE_VALUE,
   625     "",
   626     VARIANT_HUO,
   627     nullptr,
   628     CSS_PROP_NO_OFFSET,
   629     eStyleAnimType_None) // XXX bug 3935
   630 CSS_PROP_SHORTHAND(
   631     border,
   632     border,
   633     Border,
   634     CSS_PROPERTY_PARSE_FUNCTION,
   635     "")
   636 CSS_PROP_SHORTHAND(
   637     border-bottom,
   638     border_bottom,
   639     BorderBottom,
   640     CSS_PROPERTY_PARSE_FUNCTION,
   641     "")
   642 CSS_PROP_BORDER(
   643     border-bottom-color,
   644     border_bottom_color,
   645     BorderBottomColor,
   646     CSS_PROPERTY_PARSE_VALUE |
   647         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   648         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
   649         CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
   650     "",
   651     VARIANT_HCK,
   652     kBorderColorKTable,
   653     CSS_PROP_NO_OFFSET,
   654     eStyleAnimType_Custom)
   655 CSS_PROP_BORDER(
   656     -moz-border-bottom-colors,
   657     border_bottom_colors,
   658     CSS_PROP_DOMPROP_PREFIXED(BorderBottomColors),
   659     CSS_PROPERTY_PARSE_FUNCTION |
   660         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   661         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
   662     "",
   663     0,
   664     nullptr,
   665     CSS_PROP_NO_OFFSET,
   666     eStyleAnimType_None)
   667 CSS_PROP_BORDER(
   668     border-bottom-style,
   669     border_bottom_style,
   670     BorderBottomStyle,
   671     CSS_PROPERTY_PARSE_VALUE |
   672         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
   673     "",
   674     VARIANT_HK,
   675     kBorderStyleKTable,
   676     CSS_PROP_NO_OFFSET,
   677     eStyleAnimType_None)  // on/off will need reflow
   678 CSS_PROP_BORDER(
   679     border-bottom-width,
   680     border_bottom_width,
   681     BorderBottomWidth,
   682     CSS_PROPERTY_PARSE_VALUE |
   683         CSS_PROPERTY_VALUE_NONNEGATIVE |
   684         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   685         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
   686         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
   687     "",
   688     VARIANT_HKL | VARIANT_CALC,
   689     kBorderWidthKTable,
   690     CSS_PROP_NO_OFFSET,
   691     eStyleAnimType_Custom)
   692 CSS_PROP_TABLEBORDER(
   693     border-collapse,
   694     border_collapse,
   695     BorderCollapse,
   696     CSS_PROPERTY_PARSE_VALUE,
   697     "",
   698     VARIANT_HK,
   699     kBorderCollapseKTable,
   700     CSS_PROP_NO_OFFSET,
   701     eStyleAnimType_None)
   702 CSS_PROP_SHORTHAND(
   703     border-color,
   704     border_color,
   705     BorderColor,
   706     CSS_PROPERTY_PARSE_FUNCTION |
   707         CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
   708     "")
   709 CSS_PROP_SHORTHAND(
   710     -moz-border-end,
   711     border_end,
   712     CSS_PROP_DOMPROP_PREFIXED(BorderEnd),
   713     CSS_PROPERTY_PARSE_FUNCTION,
   714     "")
   715 CSS_PROP_SHORTHAND(
   716     -moz-border-end-color,
   717     border_end_color,
   718     CSS_PROP_DOMPROP_PREFIXED(BorderEndColor),
   719     CSS_PROPERTY_PARSE_FUNCTION,
   720     "")
   721 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
   722 CSS_PROP_BORDER(
   723     border-end-color-value,
   724     border_end_color_value,
   725     BorderEndColorValue,
   726     CSS_PROPERTY_PARSE_INACCESSIBLE |
   727         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
   728     "",
   729     VARIANT_HCK, // used only internally
   730     kBorderColorKTable,
   731     CSS_PROP_NO_OFFSET,
   732     eStyleAnimType_None)
   733 #endif
   734 CSS_PROP_SHORTHAND(
   735     -moz-border-end-style,
   736     border_end_style,
   737     CSS_PROP_DOMPROP_PREFIXED(BorderEndStyle),
   738     CSS_PROPERTY_PARSE_FUNCTION,
   739     "")
   740 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
   741 CSS_PROP_BORDER(
   742     border-end-style-value,
   743     border_end_style_value,
   744     BorderEndStyleValue,
   745     CSS_PROPERTY_PARSE_INACCESSIBLE |
   746         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
   747     "",
   748     VARIANT_HK, // used only internally
   749     kBorderStyleKTable,
   750     CSS_PROP_NO_OFFSET,
   751     eStyleAnimType_None)
   752 #endif
   753 CSS_PROP_SHORTHAND(
   754     -moz-border-end-width,
   755     border_end_width,
   756     CSS_PROP_DOMPROP_PREFIXED(BorderEndWidth),
   757     CSS_PROPERTY_PARSE_FUNCTION,
   758     "")
   759 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
   760 CSS_PROP_BORDER(
   761     border-end-width-value,
   762     border_end_width_value,
   763     BorderEndWidthValue,
   764     CSS_PROPERTY_PARSE_INACCESSIBLE |
   765         CSS_PROPERTY_VALUE_NONNEGATIVE |
   766         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
   767     "",
   768     VARIANT_HKL | VARIANT_CALC,
   769     kBorderWidthKTable,
   770     CSS_PROP_NO_OFFSET,
   771     eStyleAnimType_None)
   772 #endif
   773 CSS_PROP_SHORTHAND(
   774     border-image,
   775     border_image,
   776     BorderImage,
   777     CSS_PROPERTY_PARSE_FUNCTION,
   778     "")
   779 CSS_PROP_BORDER(
   780     border-image-source,
   781     border_image_source,
   782     BorderImageSource,
   783     CSS_PROPERTY_PARSE_VALUE |
   784         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   785         CSS_PROPERTY_START_IMAGE_LOADS,
   786     "",
   787     VARIANT_IMAGE | VARIANT_INHERIT,
   788     nullptr,
   789     CSS_PROP_NO_OFFSET,
   790     eStyleAnimType_None)
   791 CSS_PROP_BORDER(
   792     border-image-slice,
   793     border_image_slice,
   794     BorderImageSlice,
   795     CSS_PROPERTY_PARSE_FUNCTION |
   796         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
   797     "",
   798     0,
   799     kBorderImageSliceKTable,
   800     CSS_PROP_NO_OFFSET,
   801     eStyleAnimType_None)
   802 CSS_PROP_BORDER(
   803     border-image-width,
   804     border_image_width,
   805     BorderImageWidth,
   806     CSS_PROPERTY_PARSE_FUNCTION |
   807         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
   808     "",
   809     0,
   810     nullptr,
   811     CSS_PROP_NO_OFFSET,
   812     eStyleAnimType_None)
   813 CSS_PROP_BORDER(
   814     border-image-outset,
   815     border_image_outset,
   816     BorderImageOutset,
   817     CSS_PROPERTY_PARSE_FUNCTION |
   818         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
   819     "",
   820     0,
   821     nullptr,
   822     CSS_PROP_NO_OFFSET,
   823     eStyleAnimType_None)
   824 CSS_PROP_BORDER(
   825     border-image-repeat,
   826     border_image_repeat,
   827     BorderImageRepeat,
   828     CSS_PROPERTY_PARSE_FUNCTION |
   829         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
   830     "",
   831     0,
   832     kBorderImageRepeatKTable,
   833     CSS_PROP_NO_OFFSET,
   834     eStyleAnimType_None)
   835 CSS_PROP_SHORTHAND(
   836     border-left,
   837     border_left,
   838     BorderLeft,
   839     CSS_PROPERTY_PARSE_FUNCTION,
   840     "")
   841 CSS_PROP_SHORTHAND(
   842     border-left-color,
   843     border_left_color,
   844     BorderLeftColor,
   845     CSS_PROPERTY_PARSE_FUNCTION |
   846         CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
   847     "")
   848 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
   849 CSS_PROP_BORDER(
   850     border-left-color-value,
   851     border_left_color_value,
   852     BorderLeftColorValue,
   853     CSS_PROPERTY_PARSE_INACCESSIBLE |
   854         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   855         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
   856         CSS_PROPERTY_REPORT_OTHER_NAME,
   857     "",
   858     VARIANT_HCK, // used only internally
   859     kBorderColorKTable,
   860     CSS_PROP_NO_OFFSET,
   861     eStyleAnimType_Custom)
   862 CSS_PROP_BORDER(
   863     border-left-color-ltr-source,
   864     border_left_color_ltr_source,
   865     BorderLeftColorLTRSource,
   866     CSS_PROPERTY_PARSE_INACCESSIBLE |
   867         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   868         CSS_PROPERTY_DIRECTIONAL_SOURCE |
   869         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
   870     "",
   871     0,
   872     kBoxPropSourceKTable,
   873     CSS_PROP_NO_OFFSET,
   874     eStyleAnimType_None)
   875 CSS_PROP_BORDER(
   876     border-left-color-rtl-source,
   877     border_left_color_rtl_source,
   878     BorderLeftColorRTLSource,
   879     CSS_PROPERTY_PARSE_INACCESSIBLE |
   880         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   881         CSS_PROPERTY_DIRECTIONAL_SOURCE |
   882         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
   883     "",
   884     0,
   885     kBoxPropSourceKTable,
   886     CSS_PROP_NO_OFFSET,
   887     eStyleAnimType_None)
   888 #endif
   889 CSS_PROP_BORDER(
   890     -moz-border-left-colors,
   891     border_left_colors,
   892     CSS_PROP_DOMPROP_PREFIXED(BorderLeftColors),
   893     CSS_PROPERTY_PARSE_FUNCTION |
   894         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   895         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
   896     "",
   897     0,
   898     nullptr,
   899     CSS_PROP_NO_OFFSET,
   900     eStyleAnimType_None)
   901 CSS_PROP_SHORTHAND(
   902     border-left-style,
   903     border_left_style,
   904     BorderLeftStyle,
   905     CSS_PROPERTY_PARSE_FUNCTION,
   906     "") // on/off will need reflow
   907 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
   908 CSS_PROP_BORDER(
   909     border-left-style-value,
   910     border_left_style_value,
   911     BorderLeftStyleValue,
   912     CSS_PROPERTY_PARSE_INACCESSIBLE |
   913         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   914         CSS_PROPERTY_REPORT_OTHER_NAME,
   915     "",
   916     VARIANT_HK, // used only internally
   917     kBorderStyleKTable,
   918     CSS_PROP_NO_OFFSET,
   919     eStyleAnimType_None)
   920 CSS_PROP_BORDER(
   921     border-left-style-ltr-source,
   922     border_left_style_ltr_source,
   923     BorderLeftStyleLTRSource,
   924     CSS_PROPERTY_PARSE_INACCESSIBLE |
   925         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   926         CSS_PROPERTY_DIRECTIONAL_SOURCE,
   927     "",
   928     0,
   929     kBoxPropSourceKTable,
   930     CSS_PROP_NO_OFFSET,
   931     eStyleAnimType_None)
   932 CSS_PROP_BORDER(
   933     border-left-style-rtl-source,
   934     border_left_style_rtl_source,
   935     BorderLeftStyleRTLSource,
   936     CSS_PROPERTY_PARSE_INACCESSIBLE |
   937         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   938         CSS_PROPERTY_DIRECTIONAL_SOURCE,
   939     "",
   940     0,
   941     kBoxPropSourceKTable,
   942     CSS_PROP_NO_OFFSET,
   943     eStyleAnimType_None)
   944 #endif
   945 CSS_PROP_SHORTHAND(
   946     border-left-width,
   947     border_left_width,
   948     BorderLeftWidth,
   949     CSS_PROPERTY_PARSE_FUNCTION |
   950         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
   951         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
   952     "")
   953 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
   954 CSS_PROP_BORDER(
   955     border-left-width-value,
   956     border_left_width_value,
   957     BorderLeftWidthValue,
   958     CSS_PROPERTY_PARSE_INACCESSIBLE |
   959         CSS_PROPERTY_VALUE_NONNEGATIVE |
   960         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   961         CSS_PROPERTY_REPORT_OTHER_NAME,
   962     "",
   963     VARIANT_HKL | VARIANT_CALC,
   964     kBorderWidthKTable,
   965     CSS_PROP_NO_OFFSET,
   966     eStyleAnimType_Custom)
   967 CSS_PROP_BORDER(
   968     border-left-width-ltr-source,
   969     border_left_width_ltr_source,
   970     BorderLeftWidthLTRSource,
   971     CSS_PROPERTY_PARSE_INACCESSIBLE |
   972         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   973         CSS_PROPERTY_DIRECTIONAL_SOURCE,
   974     "",
   975     0,
   976     kBoxPropSourceKTable,
   977     CSS_PROP_NO_OFFSET,
   978     eStyleAnimType_None)
   979 CSS_PROP_BORDER(
   980     border-left-width-rtl-source,
   981     border_left_width_rtl_source,
   982     BorderLeftWidthRTLSource,
   983     CSS_PROPERTY_PARSE_INACCESSIBLE |
   984         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
   985         CSS_PROPERTY_DIRECTIONAL_SOURCE,
   986     "",
   987     0,
   988     kBoxPropSourceKTable,
   989     CSS_PROP_NO_OFFSET,
   990     eStyleAnimType_None)
   991 #endif
   992 CSS_PROP_SHORTHAND(
   993     border-right,
   994     border_right,
   995     BorderRight,
   996     CSS_PROPERTY_PARSE_FUNCTION,
   997     "")
   998 CSS_PROP_SHORTHAND(
   999     border-right-color,
  1000     border_right_color,
  1001     BorderRightColor,
  1002     CSS_PROPERTY_PARSE_FUNCTION |
  1003         CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
  1004     "")
  1005 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  1006 CSS_PROP_BORDER(
  1007     border-right-color-value,
  1008     border_right_color_value,
  1009     BorderRightColorValue,
  1010     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1011         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1012         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
  1013         CSS_PROPERTY_REPORT_OTHER_NAME,
  1014     "",
  1015     VARIANT_HCK, // used only internally
  1016     kBorderColorKTable,
  1017     CSS_PROP_NO_OFFSET,
  1018     eStyleAnimType_Custom)
  1019 CSS_PROP_BORDER(
  1020     border-right-color-ltr-source,
  1021     border_right_color_ltr_source,
  1022     BorderRightColorLTRSource,
  1023     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1024         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1025         CSS_PROPERTY_DIRECTIONAL_SOURCE |
  1026         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1027     "",
  1028     0,
  1029     kBoxPropSourceKTable,
  1030     CSS_PROP_NO_OFFSET,
  1031     eStyleAnimType_None)
  1032 CSS_PROP_BORDER(
  1033     border-right-color-rtl-source,
  1034     border_right_color_rtl_source,
  1035     BorderRightColorRTLSource,
  1036     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1037         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1038         CSS_PROPERTY_DIRECTIONAL_SOURCE |
  1039         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1040     "",
  1041     0,
  1042     kBoxPropSourceKTable,
  1043     CSS_PROP_NO_OFFSET,
  1044     eStyleAnimType_None)
  1045 #endif
  1046 CSS_PROP_BORDER(
  1047     -moz-border-right-colors,
  1048     border_right_colors,
  1049     CSS_PROP_DOMPROP_PREFIXED(BorderRightColors),
  1050     CSS_PROPERTY_PARSE_FUNCTION |
  1051         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1052         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1053     "",
  1054     0,
  1055     nullptr,
  1056     CSS_PROP_NO_OFFSET,
  1057     eStyleAnimType_None)
  1058 CSS_PROP_SHORTHAND(
  1059     border-right-style,
  1060     border_right_style,
  1061     BorderRightStyle,
  1062     CSS_PROPERTY_PARSE_FUNCTION,
  1063     "") // on/off will need reflow
  1064 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  1065 CSS_PROP_BORDER(
  1066     border-right-style-value,
  1067     border_right_style_value,
  1068     BorderRightStyleValue,
  1069     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1070         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1071         CSS_PROPERTY_REPORT_OTHER_NAME,
  1072     "",
  1073     VARIANT_HK, // used only internally
  1074     kBorderStyleKTable,
  1075     CSS_PROP_NO_OFFSET,
  1076     eStyleAnimType_None)
  1077 CSS_PROP_BORDER(
  1078     border-right-style-ltr-source,
  1079     border_right_style_ltr_source,
  1080     BorderRightStyleLTRSource,
  1081     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1082         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1083         CSS_PROPERTY_DIRECTIONAL_SOURCE,
  1084     "",
  1085     0,
  1086     kBoxPropSourceKTable,
  1087     CSS_PROP_NO_OFFSET,
  1088     eStyleAnimType_None)
  1089 CSS_PROP_BORDER(
  1090     border-right-style-rtl-source,
  1091     border_right_style_rtl_source,
  1092     BorderRightStyleRTLSource,
  1093     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1094         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1095         CSS_PROPERTY_DIRECTIONAL_SOURCE,
  1096     "",
  1097     0,
  1098     kBoxPropSourceKTable,
  1099     CSS_PROP_NO_OFFSET,
  1100     eStyleAnimType_None)
  1101 #endif
  1102 CSS_PROP_SHORTHAND(
  1103     border-right-width,
  1104     border_right_width,
  1105     BorderRightWidth,
  1106     CSS_PROPERTY_PARSE_FUNCTION |
  1107         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  1108         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1109     "")
  1110 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  1111 CSS_PROP_BORDER(
  1112     border-right-width-value,
  1113     border_right_width_value,
  1114     BorderRightWidthValue,
  1115     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1116         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1117         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1118         CSS_PROPERTY_REPORT_OTHER_NAME,
  1119     "",
  1120     VARIANT_HKL | VARIANT_CALC,
  1121     kBorderWidthKTable,
  1122     CSS_PROP_NO_OFFSET,
  1123     eStyleAnimType_Custom)
  1124 CSS_PROP_BORDER(
  1125     border-right-width-ltr-source,
  1126     border_right_width_ltr_source,
  1127     BorderRightWidthLTRSource,
  1128     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1129         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1130         CSS_PROPERTY_DIRECTIONAL_SOURCE,
  1131     "",
  1132     0,
  1133     kBoxPropSourceKTable,
  1134     CSS_PROP_NO_OFFSET,
  1135     eStyleAnimType_None)
  1136 CSS_PROP_BORDER(
  1137     border-right-width-rtl-source,
  1138     border_right_width_rtl_source,
  1139     BorderRightWidthRTLSource,
  1140     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1141         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1142         CSS_PROPERTY_DIRECTIONAL_SOURCE,
  1143     "",
  1144     0,
  1145     kBoxPropSourceKTable,
  1146     CSS_PROP_NO_OFFSET,
  1147     eStyleAnimType_None)
  1148 #endif
  1149 CSS_PROP_TABLEBORDER(
  1150     border-spacing,
  1151     border_spacing,
  1152     BorderSpacing,
  1153     CSS_PROPERTY_PARSE_FUNCTION |
  1154         CSS_PROPERTY_VALUE_NONNEGATIVE,
  1155     "",
  1156     0,
  1157     nullptr,
  1158     CSS_PROP_NO_OFFSET,
  1159     eStyleAnimType_Custom)
  1160 CSS_PROP_SHORTHAND(
  1161     -moz-border-start,
  1162     border_start,
  1163     CSS_PROP_DOMPROP_PREFIXED(BorderStart),
  1164     CSS_PROPERTY_PARSE_FUNCTION,
  1165     "")
  1166 CSS_PROP_SHORTHAND(
  1167     -moz-border-start-color,
  1168     border_start_color,
  1169     CSS_PROP_DOMPROP_PREFIXED(BorderStartColor),
  1170     CSS_PROPERTY_PARSE_FUNCTION,
  1171     "")
  1172 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  1173 CSS_PROP_BORDER(
  1174     border-start-color-value,
  1175     border_start_color_value,
  1176     BorderStartColorValue,
  1177     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1178         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1179     "",
  1180     VARIANT_HCK, // used only internally
  1181     kBorderColorKTable,
  1182     CSS_PROP_NO_OFFSET,
  1183     eStyleAnimType_None)
  1184 #endif
  1185 CSS_PROP_SHORTHAND(
  1186     -moz-border-start-style,
  1187     border_start_style,
  1188     CSS_PROP_DOMPROP_PREFIXED(BorderStartStyle),
  1189     CSS_PROPERTY_PARSE_FUNCTION,
  1190     "")
  1191 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  1192 CSS_PROP_BORDER(
  1193     border-start-style-value,
  1194     border_start_style_value,
  1195     BorderStartStyleValue,
  1196     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1197         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1198     "",
  1199     VARIANT_HK, // used only internally
  1200     kBorderStyleKTable,
  1201     CSS_PROP_NO_OFFSET,
  1202     eStyleAnimType_None)
  1203 #endif
  1204 CSS_PROP_SHORTHAND(
  1205     -moz-border-start-width,
  1206     border_start_width,
  1207     CSS_PROP_DOMPROP_PREFIXED(BorderStartWidth),
  1208     CSS_PROPERTY_PARSE_FUNCTION,
  1209     "")
  1210 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  1211 CSS_PROP_BORDER(
  1212     border-start-width-value,
  1213     border_start_width_value,
  1214     BorderStartWidthValue,
  1215     CSS_PROPERTY_PARSE_INACCESSIBLE |
  1216         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1217         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1218     "",
  1219     VARIANT_HKL | VARIANT_CALC,
  1220     kBorderWidthKTable,
  1221     CSS_PROP_NO_OFFSET,
  1222     eStyleAnimType_None)
  1223 #endif
  1224 CSS_PROP_SHORTHAND(
  1225     border-style,
  1226     border_style,
  1227     BorderStyle,
  1228     CSS_PROPERTY_PARSE_FUNCTION,
  1229     "")  // on/off will need reflow
  1230 CSS_PROP_SHORTHAND(
  1231     border-top,
  1232     border_top,
  1233     BorderTop,
  1234     CSS_PROPERTY_PARSE_FUNCTION,
  1235     "")
  1236 CSS_PROP_BORDER(
  1237     border-top-color,
  1238     border_top_color,
  1239     BorderTopColor,
  1240     CSS_PROPERTY_PARSE_VALUE |
  1241         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1242         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
  1243         CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
  1244     "",
  1245     VARIANT_HCK,
  1246     kBorderColorKTable,
  1247     CSS_PROP_NO_OFFSET,
  1248     eStyleAnimType_Custom)
  1249 CSS_PROP_BORDER(
  1250     -moz-border-top-colors,
  1251     border_top_colors,
  1252     CSS_PROP_DOMPROP_PREFIXED(BorderTopColors),
  1253     CSS_PROPERTY_PARSE_FUNCTION |
  1254         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1255         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1256     "",
  1257     0,
  1258     nullptr,
  1259     CSS_PROP_NO_OFFSET,
  1260     eStyleAnimType_None)
  1261 CSS_PROP_BORDER(
  1262     border-top-style,
  1263     border_top_style,
  1264     BorderTopStyle,
  1265     CSS_PROPERTY_PARSE_VALUE |
  1266         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1267     "",
  1268     VARIANT_HK,
  1269     kBorderStyleKTable,
  1270     CSS_PROP_NO_OFFSET,
  1271     eStyleAnimType_None)  // on/off will need reflow
  1272 CSS_PROP_BORDER(
  1273     border-top-width,
  1274     border_top_width,
  1275     BorderTopWidth,
  1276     CSS_PROPERTY_PARSE_VALUE |
  1277         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1278         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1279         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  1280         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1281     "",
  1282     VARIANT_HKL | VARIANT_CALC,
  1283     kBorderWidthKTable,
  1284     CSS_PROP_NO_OFFSET,
  1285     eStyleAnimType_Custom)
  1286 CSS_PROP_SHORTHAND(
  1287     border-width,
  1288     border_width,
  1289     BorderWidth,
  1290     CSS_PROPERTY_PARSE_FUNCTION |
  1291         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  1292     "")
  1293 CSS_PROP_SHORTHAND(
  1294     border-radius,
  1295     border_radius,
  1296     BorderRadius,
  1297     CSS_PROPERTY_PARSE_FUNCTION,
  1298     "")
  1299 CSS_PROP_BORDER(
  1300     border-top-left-radius,
  1301     border_top_left_radius,
  1302     BorderTopLeftRadius,
  1303     CSS_PROPERTY_PARSE_FUNCTION |
  1304         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1305         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1306         CSS_PROPERTY_STORES_CALC |
  1307         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1308     "",
  1309     0,
  1310     nullptr,
  1311     offsetof(nsStyleBorder, mBorderRadius),
  1312     eStyleAnimType_Corner_TopLeft)
  1313 CSS_PROP_BORDER(
  1314     border-top-right-radius,
  1315     border_top_right_radius,
  1316     BorderTopRightRadius,
  1317     CSS_PROPERTY_PARSE_FUNCTION |
  1318         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1319         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1320         CSS_PROPERTY_STORES_CALC |
  1321         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1322     "",
  1323     0,
  1324     nullptr,
  1325     offsetof(nsStyleBorder, mBorderRadius),
  1326     eStyleAnimType_Corner_TopRight)
  1327 CSS_PROP_BORDER(
  1328     border-bottom-right-radius,
  1329     border_bottom_right_radius,
  1330     BorderBottomRightRadius,
  1331     CSS_PROPERTY_PARSE_FUNCTION |
  1332         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1333         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1334         CSS_PROPERTY_STORES_CALC |
  1335         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1336     "",
  1337     0,
  1338     nullptr,
  1339     offsetof(nsStyleBorder, mBorderRadius),
  1340     eStyleAnimType_Corner_BottomRight)
  1341 CSS_PROP_BORDER(
  1342     border-bottom-left-radius,
  1343     border_bottom_left_radius,
  1344     BorderBottomLeftRadius,
  1345     CSS_PROPERTY_PARSE_FUNCTION |
  1346         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1347         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1348         CSS_PROPERTY_STORES_CALC |
  1349         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1350     "",
  1351     0,
  1352     nullptr,
  1353     offsetof(nsStyleBorder, mBorderRadius),
  1354     eStyleAnimType_Corner_BottomLeft)
  1355 CSS_PROP_POSITION(
  1356     bottom,
  1357     bottom,
  1358     Bottom,
  1359     CSS_PROPERTY_PARSE_VALUE |
  1360         CSS_PROPERTY_STORES_CALC |
  1361         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  1362         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1363     "",
  1364     VARIANT_AHLP | VARIANT_CALC,
  1365     nullptr,
  1366     offsetof(nsStylePosition, mOffset),
  1367     eStyleAnimType_Sides_Bottom)
  1368 CSS_PROP_BORDER(
  1369     box-shadow,
  1370     box_shadow,
  1371     BoxShadow,
  1372     CSS_PROPERTY_PARSE_FUNCTION |
  1373         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1374         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  1375         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1376         // NOTE: some components must be nonnegative
  1377     "",
  1378     0,
  1379     kBoxShadowTypeKTable,
  1380     offsetof(nsStyleBorder, mBoxShadow),
  1381     eStyleAnimType_Shadow)
  1382 CSS_PROP_POSITION(
  1383     box-sizing,
  1384     box_sizing,
  1385     BoxSizing,
  1386     CSS_PROPERTY_PARSE_VALUE,
  1387     "",
  1388     VARIANT_HK,
  1389     kBoxSizingKTable,
  1390     CSS_PROP_NO_OFFSET,
  1391     eStyleAnimType_None)
  1392 CSS_PROP_TABLEBORDER(
  1393     caption-side,
  1394     caption_side,
  1395     CaptionSide,
  1396     CSS_PROPERTY_PARSE_VALUE,
  1397     "",
  1398     VARIANT_HK,
  1399     kCaptionSideKTable,
  1400     CSS_PROP_NO_OFFSET,
  1401     eStyleAnimType_None)
  1402 CSS_PROP_DISPLAY(
  1403     clear,
  1404     clear,
  1405     Clear,
  1406     CSS_PROPERTY_PARSE_VALUE,
  1407     "",
  1408     VARIANT_HK,
  1409     kClearKTable,
  1410     CSS_PROP_NO_OFFSET,
  1411     eStyleAnimType_None)
  1412 CSS_PROP_DISPLAY(
  1413     clip,
  1414     clip,
  1415     Clip,
  1416     CSS_PROPERTY_PARSE_FUNCTION |
  1417         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  1418     "",
  1419     0,
  1420     nullptr,
  1421     offsetof(nsStyleDisplay, mClip),
  1422     eStyleAnimType_Custom)
  1423 CSS_PROP_COLOR(
  1424     color,
  1425     color,
  1426     Color,
  1427     CSS_PROPERTY_PARSE_VALUE |
  1428         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1429         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  1430         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
  1431         CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
  1432     "",
  1433     VARIANT_HC,
  1434     nullptr,
  1435     offsetof(nsStyleColor, mColor),
  1436     eStyleAnimType_Color)
  1437 CSS_PROP_SHORTHAND(
  1438     -moz-columns,
  1439     _moz_columns,
  1440     CSS_PROP_DOMPROP_PREFIXED(Columns),
  1441     CSS_PROPERTY_PARSE_FUNCTION,
  1442     "")
  1443 CSS_PROP_COLUMN(
  1444     -moz-column-count,
  1445     _moz_column_count,
  1446     CSS_PROP_DOMPROP_PREFIXED(ColumnCount),
  1447     CSS_PROPERTY_PARSE_VALUE |
  1448         // Need to reject 0 in addition to negatives.  If we accept 0, we
  1449         // need to change NS_STYLE_COLUMN_COUNT_AUTO to something else.
  1450         CSS_PROPERTY_VALUE_AT_LEAST_ONE,
  1451     "",
  1452     VARIANT_AHI,
  1453     nullptr,
  1454     offsetof(nsStyleColumn, mColumnCount),
  1455     eStyleAnimType_Custom)
  1456 CSS_PROP_COLUMN(
  1457     -moz-column-fill,
  1458     _moz_column_fill,
  1459     CSS_PROP_DOMPROP_PREFIXED(ColumnFill),
  1460     CSS_PROPERTY_PARSE_VALUE,
  1461     "",
  1462     VARIANT_HK,
  1463     kColumnFillKTable,
  1464     CSS_PROP_NO_OFFSET,
  1465     eStyleAnimType_None)
  1466 CSS_PROP_COLUMN(
  1467     -moz-column-width,
  1468     _moz_column_width,
  1469     CSS_PROP_DOMPROP_PREFIXED(ColumnWidth),
  1470     CSS_PROPERTY_PARSE_VALUE |
  1471         CSS_PROPERTY_VALUE_NONNEGATIVE,
  1472     "",
  1473     VARIANT_AHL | VARIANT_CALC,
  1474     nullptr,
  1475     offsetof(nsStyleColumn, mColumnWidth),
  1476     eStyleAnimType_Coord)
  1477 CSS_PROP_COLUMN(
  1478     -moz-column-gap,
  1479     _moz_column_gap,
  1480     CSS_PROP_DOMPROP_PREFIXED(ColumnGap),
  1481     CSS_PROPERTY_PARSE_VALUE |
  1482         CSS_PROPERTY_VALUE_NONNEGATIVE,
  1483     "",
  1484     VARIANT_HL | VARIANT_NORMAL | VARIANT_CALC,
  1485     nullptr,
  1486     offsetof(nsStyleColumn, mColumnGap),
  1487     eStyleAnimType_Coord)
  1488 CSS_PROP_SHORTHAND(
  1489     -moz-column-rule,
  1490     _moz_column_rule,
  1491     CSS_PROP_DOMPROP_PREFIXED(ColumnRule),
  1492     CSS_PROPERTY_PARSE_FUNCTION,
  1493     "")
  1494 CSS_PROP_COLUMN(
  1495     -moz-column-rule-color,
  1496     _moz_column_rule_color,
  1497     CSS_PROP_DOMPROP_PREFIXED(ColumnRuleColor),
  1498     CSS_PROPERTY_PARSE_VALUE |
  1499         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1500     "",
  1501     VARIANT_HCK,
  1502     kBorderColorKTable,
  1503     CSS_PROP_NO_OFFSET,
  1504     eStyleAnimType_Custom)
  1505 CSS_PROP_COLUMN(
  1506     -moz-column-rule-style,
  1507     _moz_column_rule_style,
  1508     CSS_PROP_DOMPROP_PREFIXED(ColumnRuleStyle),
  1509     CSS_PROPERTY_PARSE_VALUE,
  1510     "",
  1511     VARIANT_HK,
  1512     kBorderStyleKTable,
  1513     CSS_PROP_NO_OFFSET,
  1514     eStyleAnimType_None)
  1515 CSS_PROP_COLUMN(
  1516     -moz-column-rule-width,
  1517     _moz_column_rule_width,
  1518     CSS_PROP_DOMPROP_PREFIXED(ColumnRuleWidth),
  1519     CSS_PROPERTY_PARSE_VALUE |
  1520         CSS_PROPERTY_VALUE_NONNEGATIVE,
  1521     "",
  1522     VARIANT_HKL | VARIANT_CALC,
  1523     kBorderWidthKTable,
  1524     CSS_PROP_NO_OFFSET,
  1525     eStyleAnimType_Custom)
  1526 CSS_PROP_CONTENT(
  1527     content,
  1528     content,
  1529     Content,
  1530     CSS_PROPERTY_PARSE_FUNCTION |
  1531         CSS_PROPERTY_START_IMAGE_LOADS,
  1532     "",
  1533     0,
  1534     kContentKTable,
  1535     CSS_PROP_NO_OFFSET,
  1536     eStyleAnimType_None)
  1537 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  1538 CSS_PROP_TEXT(
  1539     -moz-control-character-visibility,
  1540     _moz_control_character_visibility,
  1541     CSS_PROP_DOMPROP_PREFIXED(ControlCharacterVisibility),
  1542     CSS_PROPERTY_PARSE_VALUE,
  1543     "",
  1544     VARIANT_HK,
  1545     kControlCharacterVisibilityKTable,
  1546     CSS_PROP_NO_OFFSET,
  1547     eStyleAnimType_None)
  1548 #endif
  1549 CSS_PROP_CONTENT(
  1550     counter-increment,
  1551     counter_increment,
  1552     CounterIncrement,
  1553     CSS_PROPERTY_PARSE_FUNCTION,
  1554     "",
  1555     0,
  1556     nullptr,
  1557     CSS_PROP_NO_OFFSET,
  1558     eStyleAnimType_None) // XXX bug 137285
  1559 CSS_PROP_CONTENT(
  1560     counter-reset,
  1561     counter_reset,
  1562     CounterReset,
  1563     CSS_PROPERTY_PARSE_FUNCTION,
  1564     "",
  1565     0,
  1566     nullptr,
  1567     CSS_PROP_NO_OFFSET,
  1568     eStyleAnimType_None) // XXX bug 137285
  1569 CSS_PROP_USERINTERFACE(
  1570     cursor,
  1571     cursor,
  1572     Cursor,
  1573     CSS_PROPERTY_PARSE_FUNCTION |
  1574         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  1575         CSS_PROPERTY_START_IMAGE_LOADS |
  1576         CSS_PROPERTY_IMAGE_IS_IN_ARRAY_0,
  1577     "",
  1578     0,
  1579     kCursorKTable,
  1580     CSS_PROP_NO_OFFSET,
  1581     eStyleAnimType_None)
  1582 #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  1583 CSS_PROP_VISIBILITY(
  1584     direction,
  1585     direction,
  1586     Direction,
  1587     CSS_PROPERTY_PARSE_VALUE,
  1588     "",
  1589     VARIANT_HK,
  1590     kDirectionKTable,
  1591     CSS_PROP_NO_OFFSET,
  1592     eStyleAnimType_None)
  1593 #endif // !defined(CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND)
  1594 CSS_PROP_DISPLAY(
  1595     display,
  1596     display,
  1597     Display,
  1598     CSS_PROPERTY_PARSE_VALUE |
  1599         // This is allowed because we need to make the placeholder
  1600         // pseudo-element an inline-block in the UA stylesheet. It is a block
  1601         // by default.
  1602         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1603     "",
  1604     VARIANT_HK,
  1605     kDisplayKTable,
  1606     offsetof(nsStyleDisplay, mDisplay),
  1607     eStyleAnimType_EnumU8)
  1608 CSS_PROP_TABLEBORDER(
  1609     empty-cells,
  1610     empty_cells,
  1611     EmptyCells,
  1612     CSS_PROPERTY_PARSE_VALUE,
  1613     "",
  1614     VARIANT_HK,
  1615     kEmptyCellsKTable,
  1616     CSS_PROP_NO_OFFSET,
  1617     eStyleAnimType_None)
  1618 CSS_PROP_POSITION(
  1619     align-content,
  1620     align_content,
  1621     AlignContent,
  1622     CSS_PROPERTY_PARSE_VALUE,
  1623     "",
  1624     VARIANT_HK,
  1625     kAlignContentKTable,
  1626     offsetof(nsStylePosition, mAlignContent),
  1627     eStyleAnimType_EnumU8)
  1628 CSS_PROP_POSITION(
  1629     align-items,
  1630     align_items,
  1631     AlignItems,
  1632     CSS_PROPERTY_PARSE_VALUE,
  1633     "",
  1634     VARIANT_HK,
  1635     kAlignItemsKTable,
  1636     offsetof(nsStylePosition, mAlignItems),
  1637     eStyleAnimType_EnumU8)
  1638 CSS_PROP_POSITION(
  1639     align-self,
  1640     align_self,
  1641     AlignSelf,
  1642     CSS_PROPERTY_PARSE_VALUE,
  1643     "",
  1644     VARIANT_HK,
  1645     kAlignSelfKTable,
  1646     offsetof(nsStylePosition, mAlignSelf),
  1647     eStyleAnimType_EnumU8)
  1648 CSS_PROP_SHORTHAND(
  1649     flex,
  1650     flex,
  1651     Flex,
  1652     CSS_PROPERTY_PARSE_FUNCTION,
  1653     "")
  1654 CSS_PROP_POSITION(
  1655     flex-basis,
  1656     flex_basis,
  1657     FlexBasis,
  1658     CSS_PROPERTY_PARSE_VALUE |
  1659         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1660         CSS_PROPERTY_STORES_CALC,
  1661     "",
  1662     // NOTE: The parsing implementation for the 'flex' shorthand property has
  1663     // its own code to parse each subproperty. It does not depend on the
  1664     // longhand parsing defined here.
  1665     VARIANT_AHKLP | VARIANT_CALC,
  1666     kWidthKTable,
  1667     offsetof(nsStylePosition, mFlexBasis),
  1668     eStyleAnimType_Coord)
  1669 CSS_PROP_POSITION(
  1670     flex-direction,
  1671     flex_direction,
  1672     FlexDirection,
  1673     CSS_PROPERTY_PARSE_VALUE,
  1674     "",
  1675     VARIANT_HK,
  1676     kFlexDirectionKTable,
  1677     offsetof(nsStylePosition, mFlexDirection),
  1678     eStyleAnimType_EnumU8)
  1679 CSS_PROP_SHORTHAND(
  1680     flex-flow,
  1681     flex_flow,
  1682     FlexFlow,
  1683     CSS_PROPERTY_PARSE_FUNCTION,
  1684     "")
  1685 CSS_PROP_POSITION(
  1686     flex-grow,
  1687     flex_grow,
  1688     FlexGrow,
  1689     CSS_PROPERTY_PARSE_VALUE |
  1690       CSS_PROPERTY_VALUE_NONNEGATIVE,
  1691     "",
  1692     // NOTE: The parsing implementation for the 'flex' shorthand property has
  1693     // its own code to parse each subproperty. It does not depend on the
  1694     // longhand parsing defined here.
  1695     VARIANT_HN,
  1696     nullptr,
  1697     offsetof(nsStylePosition, mFlexGrow),
  1698     eStyleAnimType_float) // float, except animations to/from 0 shouldn't work
  1699 CSS_PROP_POSITION(
  1700     flex-shrink,
  1701     flex_shrink,
  1702     FlexShrink,
  1703     CSS_PROPERTY_PARSE_VALUE |
  1704       CSS_PROPERTY_VALUE_NONNEGATIVE,
  1705     "",
  1706     // NOTE: The parsing implementation for the 'flex' shorthand property has
  1707     // its own code to parse each subproperty. It does not depend on the
  1708     // longhand parsing defined here.
  1709     VARIANT_HN,
  1710     nullptr,
  1711     offsetof(nsStylePosition, mFlexShrink),
  1712     eStyleAnimType_float) // float, except animations to/from 0 shouldn't work
  1713 CSS_PROP_POSITION(
  1714     flex-wrap,
  1715     flex_wrap,
  1716     FlexWrap,
  1717     CSS_PROPERTY_PARSE_VALUE,
  1718     "",
  1719     VARIANT_HK,
  1720     kFlexWrapKTable,
  1721     offsetof(nsStylePosition, mFlexWrap),
  1722     eStyleAnimType_EnumU8)
  1723 CSS_PROP_POSITION(
  1724     order,
  1725     order,
  1726     Order,
  1727     CSS_PROPERTY_PARSE_VALUE,
  1728     "",
  1729     VARIANT_HI,
  1730     nullptr,
  1731     offsetof(nsStylePosition, mOrder),
  1732     eStyleAnimType_Custom) // <integer>
  1733 CSS_PROP_POSITION(
  1734     justify-content,
  1735     justify_content,
  1736     JustifyContent,
  1737     CSS_PROPERTY_PARSE_VALUE,
  1738     "",
  1739     VARIANT_HK,
  1740     kJustifyContentKTable,
  1741     offsetof(nsStylePosition, mJustifyContent),
  1742     eStyleAnimType_EnumU8)
  1743 CSS_PROP_DISPLAY(
  1744     float,
  1745     float,
  1746     CSS_PROP_PUBLIC_OR_PRIVATE(CssFloat, Float),
  1747     CSS_PROPERTY_PARSE_VALUE |
  1748         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1749     "",
  1750     VARIANT_HK,
  1751     kFloatKTable,
  1752     CSS_PROP_NO_OFFSET,
  1753     eStyleAnimType_None)
  1754 CSS_PROP_BORDER(
  1755     -moz-float-edge,
  1756     float_edge,
  1757     CSS_PROP_DOMPROP_PREFIXED(FloatEdge),
  1758     CSS_PROPERTY_PARSE_VALUE,
  1759     "",
  1760     VARIANT_HK,
  1761     kFloatEdgeKTable,
  1762     CSS_PROP_NO_OFFSET,
  1763     eStyleAnimType_None) // XXX bug 3935
  1764 CSS_PROP_SHORTHAND(
  1765     font,
  1766     font,
  1767     Font,
  1768     CSS_PROPERTY_PARSE_FUNCTION,
  1769     "")
  1770 CSS_PROP_FONT(
  1771     font-family,
  1772     font_family,
  1773     FontFamily,
  1774     CSS_PROPERTY_PARSE_VALUE |
  1775         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1776         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1777         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1778     "",
  1779     0,
  1780     nullptr,
  1781     CSS_PROP_NO_OFFSET,
  1782     eStyleAnimType_None)
  1783 CSS_PROP_FONT(
  1784     -moz-font-feature-settings,
  1785     font_feature_settings,
  1786     CSS_PROP_DOMPROP_PREFIXED(FontFeatureSettings),
  1787     CSS_PROPERTY_PARSE_VALUE |
  1788         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1789         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1790         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1791     "",
  1792     0,
  1793     nullptr,
  1794     CSS_PROP_NO_OFFSET,
  1795     eStyleAnimType_None)
  1796 CSS_PROP_FONT(
  1797     font-kerning,
  1798     font_kerning,
  1799     FontKerning,
  1800     CSS_PROPERTY_PARSE_VALUE |
  1801         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1802         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1803     "layout.css.font-features.enabled",
  1804     VARIANT_HK,
  1805     kFontKerningKTable,
  1806     CSS_PROP_NO_OFFSET,
  1807     eStyleAnimType_None)
  1808 CSS_PROP_FONT(
  1809     -moz-font-language-override,
  1810     font_language_override,
  1811     CSS_PROP_DOMPROP_PREFIXED(FontLanguageOverride),
  1812     CSS_PROPERTY_PARSE_VALUE |
  1813         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1814         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1815     "",
  1816     VARIANT_NORMAL | VARIANT_INHERIT | VARIANT_STRING,
  1817     nullptr,
  1818     CSS_PROP_NO_OFFSET,
  1819     eStyleAnimType_None)
  1820 CSS_PROP_FONT(
  1821     font-size,
  1822     font_size,
  1823     FontSize,
  1824     CSS_PROPERTY_PARSE_VALUE |
  1825         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1826         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1827         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  1828         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  1829     "",
  1830     VARIANT_HKLP | VARIANT_SYSFONT | VARIANT_CALC,
  1831     kFontSizeKTable,
  1832     // Note that mSize is the correct place for *reading* the computed value,
  1833     // but setting it requires setting mFont.size as well.
  1834     offsetof(nsStyleFont, mSize),
  1835     eStyleAnimType_nscoord)
  1836 CSS_PROP_FONT(
  1837     font-size-adjust,
  1838     font_size_adjust,
  1839     FontSizeAdjust,
  1840     CSS_PROPERTY_PARSE_VALUE |
  1841         CSS_PROPERTY_VALUE_NONNEGATIVE |
  1842         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1843         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1844     "",
  1845     VARIANT_HON | VARIANT_SYSFONT,
  1846     nullptr,
  1847     offsetof(nsStyleFont, mFont.sizeAdjust),
  1848     eStyleAnimType_float)
  1849 CSS_PROP_FONT(
  1850     -moz-osx-font-smoothing,
  1851     osx_font_smoothing,
  1852     CSS_PROP_DOMPROP_PREFIXED(OSXFontSmoothing),
  1853     CSS_PROPERTY_PARSE_VALUE |
  1854         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1855         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1856     "layout.css.osx-font-smoothing.enabled",
  1857     VARIANT_HK,
  1858     kFontSmoothingKTable,
  1859     CSS_PROP_NO_OFFSET,
  1860     eStyleAnimType_None)
  1861 CSS_PROP_FONT(
  1862     font-stretch,
  1863     font_stretch,
  1864     FontStretch,
  1865     CSS_PROPERTY_PARSE_VALUE |
  1866         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1867         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1868     "",
  1869     VARIANT_HK | VARIANT_SYSFONT,
  1870     kFontStretchKTable,
  1871     offsetof(nsStyleFont, mFont.stretch),
  1872     eStyleAnimType_Custom)
  1873 CSS_PROP_FONT(
  1874     font-style,
  1875     font_style,
  1876     FontStyle,
  1877     CSS_PROPERTY_PARSE_VALUE |
  1878         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1879         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1880     "",
  1881     VARIANT_HK | VARIANT_SYSFONT,
  1882     kFontStyleKTable,
  1883     offsetof(nsStyleFont, mFont.style),
  1884     eStyleAnimType_EnumU8)
  1885 CSS_PROP_FONT(
  1886     font-synthesis,
  1887     font_synthesis,
  1888     FontSynthesis,
  1889     CSS_PROPERTY_PARSE_VALUE |
  1890         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1891         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1892         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1893     "layout.css.font-features.enabled",
  1894     0,
  1895     kFontSynthesisKTable,
  1896     CSS_PROP_NO_OFFSET,
  1897     eStyleAnimType_None)
  1898 CSS_PROP_FONT(
  1899     font-variant,
  1900     font_variant,
  1901     FontVariant,
  1902     CSS_PROPERTY_PARSE_VALUE |
  1903         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1904         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1905     "",
  1906     VARIANT_HK | VARIANT_SYSFONT,
  1907     kFontVariantKTable,
  1908     offsetof(nsStyleFont, mFont.variant),
  1909     eStyleAnimType_EnumU8)
  1910 CSS_PROP_FONT(
  1911     font-variant-alternates,
  1912     font_variant_alternates,
  1913     FontVariantAlternates,
  1914     CSS_PROPERTY_PARSE_VALUE |
  1915         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1916         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1917         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1918     "layout.css.font-features.enabled",
  1919     VARIANT_HK,
  1920     kFontVariantAlternatesKTable,
  1921     CSS_PROP_NO_OFFSET,
  1922     eStyleAnimType_None)
  1923 CSS_PROP_FONT(
  1924     font-variant-caps,
  1925     font_variant_caps,
  1926     FontVariantCaps,
  1927     CSS_PROPERTY_PARSE_VALUE |
  1928         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1929         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1930     "layout.css.font-features.enabled",
  1931     VARIANT_HMK,
  1932     kFontVariantCapsKTable,
  1933     CSS_PROP_NO_OFFSET,
  1934     eStyleAnimType_None)
  1935 CSS_PROP_FONT(
  1936     font-variant-east-asian,
  1937     font_variant_east_asian,
  1938     FontVariantEastAsian,
  1939     CSS_PROPERTY_PARSE_VALUE |
  1940         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1941         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1942         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1943     "layout.css.font-features.enabled",
  1944     0,
  1945     kFontVariantEastAsianKTable,
  1946     CSS_PROP_NO_OFFSET,
  1947     eStyleAnimType_None)
  1948 CSS_PROP_FONT(
  1949     font-variant-ligatures,
  1950     font_variant_ligatures,
  1951     FontVariantLigatures,
  1952     CSS_PROPERTY_PARSE_VALUE |
  1953         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1954         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1955         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1956     "layout.css.font-features.enabled",
  1957     0,
  1958     kFontVariantLigaturesKTable,
  1959     CSS_PROP_NO_OFFSET,
  1960     eStyleAnimType_None)
  1961 CSS_PROP_FONT(
  1962     font-variant-numeric,
  1963     font_variant_numeric,
  1964     FontVariantNumeric,
  1965     CSS_PROPERTY_PARSE_VALUE |
  1966         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1967         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1968         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1969     "layout.css.font-features.enabled",
  1970     0,
  1971     kFontVariantNumericKTable,
  1972     CSS_PROP_NO_OFFSET,
  1973     eStyleAnimType_None)
  1974 CSS_PROP_FONT(
  1975     font-variant-position,
  1976     font_variant_position,
  1977     FontVariantPosition,
  1978     CSS_PROPERTY_PARSE_VALUE |
  1979         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1980         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1981     "layout.css.font-features.enabled",
  1982     VARIANT_HMK,
  1983     kFontVariantPositionKTable,
  1984     CSS_PROP_NO_OFFSET,
  1985     eStyleAnimType_None)
  1986 CSS_PROP_FONT(
  1987     font-weight,
  1988     font_weight,
  1989     FontWeight,
  1990     CSS_PROPERTY_PARSE_VALUE |
  1991         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1992         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1993         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1994         // NOTE: This property has range restrictions on interpolation!
  1995     "",
  1996     0,
  1997     kFontWeightKTable,
  1998     offsetof(nsStyleFont, mFont.weight),
  1999     eStyleAnimType_Custom)
  2000 CSS_PROP_UIRESET(
  2001     -moz-force-broken-image-icon,
  2002     force_broken_image_icon,
  2003     CSS_PROP_DOMPROP_PREFIXED(ForceBrokenImageIcon),
  2004     CSS_PROPERTY_PARSE_VALUE |
  2005         CSS_PROPERTY_VALUE_NONNEGATIVE,
  2006     "",
  2007     VARIANT_HI,
  2008     nullptr,
  2009     CSS_PROP_NO_OFFSET,
  2010     eStyleAnimType_None) // bug 58646
  2011 CSS_PROP_POSITION(
  2012     grid-auto-flow,
  2013     grid_auto_flow,
  2014     GridAutoFlow,
  2015     CSS_PROPERTY_PARSE_FUNCTION,
  2016     "layout.css.grid.enabled",
  2017     0,
  2018     kGridAutoFlowKTable,
  2019     CSS_PROP_NO_OFFSET,
  2020     eStyleAnimType_None)
  2021 CSS_PROP_POSITION(
  2022     grid-auto-columns,
  2023     grid_auto_columns,
  2024     GridAutoColumns,
  2025     CSS_PROPERTY_PARSE_FUNCTION |
  2026         CSS_PROPERTY_STORES_CALC,
  2027     "layout.css.grid.enabled",
  2028     0,
  2029     kGridTrackBreadthKTable,
  2030     CSS_PROP_NO_OFFSET,
  2031     eStyleAnimType_None)
  2032 CSS_PROP_POSITION(
  2033     grid-auto-rows,
  2034     grid_auto_rows,
  2035     GridAutoRows,
  2036     CSS_PROPERTY_PARSE_FUNCTION |
  2037         CSS_PROPERTY_STORES_CALC,
  2038     "layout.css.grid.enabled",
  2039     0,
  2040     kGridTrackBreadthKTable,
  2041     CSS_PROP_NO_OFFSET,
  2042     eStyleAnimType_None)
  2043 CSS_PROP_POSITION(
  2044     grid-auto-position,
  2045     grid_auto_position,
  2046     GridAutoPosition,
  2047     CSS_PROPERTY_PARSE_FUNCTION,
  2048     "layout.css.grid.enabled",
  2049     0,
  2050     nullptr,
  2051     CSS_PROP_NO_OFFSET,
  2052     eStyleAnimType_None)
  2053 CSS_PROP_POSITION(
  2054     grid-template-areas,
  2055     grid_template_areas,
  2056     GridTemplateAreas,
  2057     CSS_PROPERTY_PARSE_FUNCTION,
  2058     "layout.css.grid.enabled",
  2059     0,
  2060     nullptr,
  2061     CSS_PROP_NO_OFFSET,
  2062     eStyleAnimType_None)
  2063 CSS_PROP_POSITION(
  2064     grid-template-columns,
  2065     grid_template_columns,
  2066     GridTemplateColumns,
  2067     CSS_PROPERTY_PARSE_FUNCTION |
  2068         CSS_PROPERTY_STORES_CALC |
  2069         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2070     "layout.css.grid.enabled",
  2071     0,
  2072     kGridTrackBreadthKTable,
  2073     CSS_PROP_NO_OFFSET,
  2074     eStyleAnimType_None)
  2075 CSS_PROP_POSITION(
  2076     grid-template-rows,
  2077     grid_template_rows,
  2078     GridTemplateRows,
  2079     CSS_PROPERTY_PARSE_FUNCTION |
  2080         CSS_PROPERTY_STORES_CALC |
  2081         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2082     "layout.css.grid.enabled",
  2083     0,
  2084     kGridTrackBreadthKTable,
  2085     CSS_PROP_NO_OFFSET,
  2086     eStyleAnimType_None)
  2087 CSS_PROP_SHORTHAND(
  2088     grid-template,
  2089     grid_template,
  2090     GridTemplate,
  2091     CSS_PROPERTY_PARSE_FUNCTION,
  2092     "layout.css.grid.enabled")
  2093 CSS_PROP_SHORTHAND(
  2094     grid,
  2095     grid,
  2096     Grid,
  2097     CSS_PROPERTY_PARSE_FUNCTION,
  2098     "layout.css.grid.enabled")
  2099 CSS_PROP_POSITION(
  2100     grid-column-start,
  2101     grid_column_start,
  2102     GridColumnStart,
  2103     CSS_PROPERTY_PARSE_FUNCTION,
  2104     "layout.css.grid.enabled",
  2105     0,
  2106     nullptr,
  2107     CSS_PROP_NO_OFFSET,
  2108     eStyleAnimType_None)
  2109 CSS_PROP_POSITION(
  2110     grid-column-end,
  2111     grid_column_end,
  2112     GridColumnEnd,
  2113     CSS_PROPERTY_PARSE_FUNCTION,
  2114     "layout.css.grid.enabled",
  2115     0,
  2116     nullptr,
  2117     CSS_PROP_NO_OFFSET,
  2118     eStyleAnimType_None)
  2119 CSS_PROP_POSITION(
  2120     grid-row-start,
  2121     grid_row_start,
  2122     GridRowStart,
  2123     CSS_PROPERTY_PARSE_FUNCTION,
  2124     "layout.css.grid.enabled",
  2125     0,
  2126     nullptr,
  2127     CSS_PROP_NO_OFFSET,
  2128     eStyleAnimType_None)
  2129 CSS_PROP_POSITION(
  2130     grid-row-end,
  2131     grid_row_end,
  2132     GridRowEnd,
  2133     CSS_PROPERTY_PARSE_FUNCTION,
  2134     "layout.css.grid.enabled",
  2135     0,
  2136     nullptr,
  2137     CSS_PROP_NO_OFFSET,
  2138     eStyleAnimType_None)
  2139 CSS_PROP_SHORTHAND(
  2140     grid-column,
  2141     grid_column,
  2142     GridColumn,
  2143     CSS_PROPERTY_PARSE_FUNCTION,
  2144     "layout.css.grid.enabled")
  2145 CSS_PROP_SHORTHAND(
  2146     grid-row,
  2147     grid_row,
  2148     GridRow,
  2149     CSS_PROPERTY_PARSE_FUNCTION,
  2150     "layout.css.grid.enabled")
  2151 CSS_PROP_SHORTHAND(
  2152     grid-area,
  2153     grid_area,
  2154     GridArea,
  2155     CSS_PROPERTY_PARSE_FUNCTION,
  2156     "layout.css.grid.enabled")
  2157 CSS_PROP_POSITION(
  2158     height,
  2159     height,
  2160     Height,
  2161     CSS_PROPERTY_PARSE_VALUE |
  2162         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2163         CSS_PROPERTY_STORES_CALC |
  2164         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2165         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2166     "",
  2167     VARIANT_AHLP | VARIANT_CALC,
  2168     nullptr,
  2169     offsetof(nsStylePosition, mHeight),
  2170     eStyleAnimType_Coord)
  2171 CSS_PROP_VISIBILITY(
  2172     image-orientation,
  2173     image_orientation,
  2174     ImageOrientation,
  2175     CSS_PROPERTY_PARSE_VALUE |
  2176         CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  2177     "layout.css.image-orientation.enabled",
  2178     0,
  2179     kImageOrientationKTable,
  2180     offsetof(nsStyleVisibility, mImageOrientation),
  2181     eStyleAnimType_None)
  2182 CSS_PROP_LIST(
  2183     -moz-image-region,
  2184     image_region,
  2185     CSS_PROP_DOMPROP_PREFIXED(ImageRegion),
  2186     CSS_PROPERTY_PARSE_FUNCTION,
  2187     "",
  2188     0,
  2189     nullptr,
  2190     offsetof(nsStyleList, mImageRegion),
  2191     eStyleAnimType_Custom)
  2192 CSS_PROP_UIRESET(
  2193     ime-mode,
  2194     ime_mode,
  2195     ImeMode,
  2196     CSS_PROPERTY_PARSE_VALUE,
  2197     "",
  2198     VARIANT_HK,
  2199     kIMEModeKTable,
  2200     CSS_PROP_NO_OFFSET,
  2201     eStyleAnimType_None)
  2202 CSS_PROP_POSITION(
  2203     left,
  2204     left,
  2205     Left,
  2206     CSS_PROPERTY_PARSE_VALUE |
  2207         CSS_PROPERTY_STORES_CALC |
  2208         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2209         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2210     "",
  2211     VARIANT_AHLP | VARIANT_CALC,
  2212     nullptr,
  2213     offsetof(nsStylePosition, mOffset),
  2214     eStyleAnimType_Sides_Left)
  2215 CSS_PROP_TEXT(
  2216     letter-spacing,
  2217     letter_spacing,
  2218     LetterSpacing,
  2219     CSS_PROPERTY_PARSE_VALUE |
  2220         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  2221         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2222         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  2223     "",
  2224     VARIANT_HL | VARIANT_NORMAL | VARIANT_CALC,
  2225     nullptr,
  2226     offsetof(nsStyleText, mLetterSpacing),
  2227     eStyleAnimType_Coord)
  2228 CSS_PROP_TEXT(
  2229     line-height,
  2230     line_height,
  2231     LineHeight,
  2232     CSS_PROPERTY_PARSE_VALUE |
  2233         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2234         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  2235         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2236         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2237     "",
  2238     VARIANT_HLPN | VARIANT_KEYWORD | VARIANT_NORMAL | VARIANT_SYSFONT,
  2239     kLineHeightKTable,
  2240     offsetof(nsStyleText, mLineHeight),
  2241     eStyleAnimType_Coord)
  2242 CSS_PROP_SHORTHAND(
  2243     list-style,
  2244     list_style,
  2245     ListStyle,
  2246     CSS_PROPERTY_PARSE_FUNCTION,
  2247     "")
  2248 CSS_PROP_LIST(
  2249     list-style-image,
  2250     list_style_image,
  2251     ListStyleImage,
  2252     CSS_PROPERTY_PARSE_VALUE |
  2253         CSS_PROPERTY_START_IMAGE_LOADS,
  2254     "",
  2255     VARIANT_HUO,
  2256     nullptr,
  2257     CSS_PROP_NO_OFFSET,
  2258     eStyleAnimType_None)
  2259 CSS_PROP_LIST(
  2260     list-style-position,
  2261     list_style_position,
  2262     ListStylePosition,
  2263     CSS_PROPERTY_PARSE_VALUE,
  2264     "",
  2265     VARIANT_HK,
  2266     kListStylePositionKTable,
  2267     CSS_PROP_NO_OFFSET,
  2268     eStyleAnimType_None)
  2269 CSS_PROP_LIST(
  2270     list-style-type,
  2271     list_style_type,
  2272     ListStyleType,
  2273     CSS_PROPERTY_PARSE_VALUE,
  2274     "",
  2275     VARIANT_HK,
  2276     kListStyleKTable,
  2277     CSS_PROP_NO_OFFSET,
  2278     eStyleAnimType_None)
  2279 CSS_PROP_SHORTHAND(
  2280     margin,
  2281     margin,
  2282     Margin,
  2283     CSS_PROPERTY_PARSE_FUNCTION |
  2284         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2285         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2286     "")
  2287 CSS_PROP_MARGIN(
  2288     margin-bottom,
  2289     margin_bottom,
  2290     MarginBottom,
  2291     CSS_PROPERTY_PARSE_VALUE |
  2292         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2293         CSS_PROPERTY_STORES_CALC |
  2294         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2295         CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2296         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2297     "",
  2298     VARIANT_AHLP | VARIANT_CALC,
  2299     nullptr,
  2300     offsetof(nsStyleMargin, mMargin),
  2301     eStyleAnimType_Sides_Bottom)
  2302 CSS_PROP_SHORTHAND(
  2303     -moz-margin-end,
  2304     margin_end,
  2305     CSS_PROP_DOMPROP_PREFIXED(MarginEnd),
  2306     CSS_PROPERTY_PARSE_FUNCTION |
  2307         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2308     "")
  2309 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2310 CSS_PROP_MARGIN(
  2311     margin-end-value,
  2312     margin_end_value,
  2313     MarginEndValue,
  2314     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2315         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2316         CSS_PROPERTY_STORES_CALC |
  2317         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2318     "",
  2319     VARIANT_AHLP | VARIANT_CALC, // for internal use
  2320     nullptr,
  2321     CSS_PROP_NO_OFFSET,
  2322     eStyleAnimType_None)
  2323 #endif
  2324 CSS_PROP_SHORTHAND(
  2325     margin-left,
  2326     margin_left,
  2327     MarginLeft,
  2328     CSS_PROPERTY_PARSE_FUNCTION |
  2329         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2330         CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2331         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2332     "")
  2333 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2334 CSS_PROP_MARGIN(
  2335     margin-left-value,
  2336     margin_left_value,
  2337     MarginLeftValue,
  2338     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2339         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2340         CSS_PROPERTY_REPORT_OTHER_NAME |
  2341         CSS_PROPERTY_STORES_CALC |
  2342         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2343     "",
  2344     VARIANT_AHLP | VARIANT_CALC, // for internal use
  2345     nullptr,
  2346     offsetof(nsStyleMargin, mMargin),
  2347     eStyleAnimType_Sides_Left)
  2348 CSS_PROP_MARGIN(
  2349     margin-left-ltr-source,
  2350     margin_left_ltr_source,
  2351     MarginLeftLTRSource,
  2352     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2353         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2354         CSS_PROPERTY_DIRECTIONAL_SOURCE |
  2355         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2356     "",
  2357     0,
  2358     kBoxPropSourceKTable,
  2359     CSS_PROP_NO_OFFSET,
  2360     eStyleAnimType_None)
  2361 CSS_PROP_MARGIN(
  2362     margin-left-rtl-source,
  2363     margin_left_rtl_source,
  2364     MarginLeftRTLSource,
  2365     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2366         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2367         CSS_PROPERTY_DIRECTIONAL_SOURCE |
  2368         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2369     "",
  2370     0,
  2371     kBoxPropSourceKTable,
  2372     CSS_PROP_NO_OFFSET,
  2373     eStyleAnimType_None)
  2374 #endif
  2375 CSS_PROP_SHORTHAND(
  2376     margin-right,
  2377     margin_right,
  2378     MarginRight,
  2379     CSS_PROPERTY_PARSE_FUNCTION |
  2380         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2381         CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2382         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2383     "")
  2384 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2385 CSS_PROP_MARGIN(
  2386     margin-right-value,
  2387     margin_right_value,
  2388     MarginRightValue,
  2389     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2390         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2391         CSS_PROPERTY_REPORT_OTHER_NAME |
  2392         CSS_PROPERTY_STORES_CALC |
  2393         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2394     "",
  2395     VARIANT_AHLP | VARIANT_CALC, // for internal use
  2396     nullptr,
  2397     offsetof(nsStyleMargin, mMargin),
  2398     eStyleAnimType_Sides_Right)
  2399 CSS_PROP_MARGIN(
  2400     margin-right-ltr-source,
  2401     margin_right_ltr_source,
  2402     MarginRightLTRSource,
  2403     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2404         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2405         CSS_PROPERTY_DIRECTIONAL_SOURCE |
  2406         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2407     "",
  2408     0,
  2409     kBoxPropSourceKTable,
  2410     CSS_PROP_NO_OFFSET,
  2411     eStyleAnimType_None)
  2412 CSS_PROP_MARGIN(
  2413     margin-right-rtl-source,
  2414     margin_right_rtl_source,
  2415     MarginRightRTLSource,
  2416     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2417         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2418         CSS_PROPERTY_DIRECTIONAL_SOURCE |
  2419         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2420     "",
  2421     0,
  2422     kBoxPropSourceKTable,
  2423     CSS_PROP_NO_OFFSET,
  2424     eStyleAnimType_None)
  2425 #endif
  2426 CSS_PROP_SHORTHAND(
  2427     -moz-margin-start,
  2428     margin_start,
  2429     CSS_PROP_DOMPROP_PREFIXED(MarginStart),
  2430     CSS_PROPERTY_PARSE_FUNCTION |
  2431     CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2432     "")
  2433 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2434 CSS_PROP_MARGIN(
  2435     margin-start-value,
  2436     margin_start_value,
  2437     MarginStartValue,
  2438     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2439         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2440         CSS_PROPERTY_STORES_CALC |
  2441         CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2442     "",
  2443     VARIANT_AHLP | VARIANT_CALC, // for internal use
  2444     nullptr,
  2445     CSS_PROP_NO_OFFSET,
  2446     eStyleAnimType_None)
  2447 #endif
  2448 CSS_PROP_MARGIN(
  2449     margin-top,
  2450     margin_top,
  2451     MarginTop,
  2452     CSS_PROPERTY_PARSE_VALUE |
  2453         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2454         CSS_PROPERTY_STORES_CALC |
  2455         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2456         CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2457         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2458     "",
  2459     VARIANT_AHLP | VARIANT_CALC,
  2460     nullptr,
  2461     offsetof(nsStyleMargin, mMargin),
  2462     eStyleAnimType_Sides_Top)
  2463 CSS_PROP_CONTENT(
  2464     marker-offset,
  2465     marker_offset,
  2466     MarkerOffset,
  2467     CSS_PROPERTY_PARSE_VALUE,
  2468     "",
  2469     VARIANT_AHL | VARIANT_CALC,
  2470     nullptr,
  2471     offsetof(nsStyleContent, mMarkerOffset),
  2472     eStyleAnimType_Coord)
  2473 CSS_PROP_BACKENDONLY(
  2474     marks,
  2475     marks,
  2476     Marks,
  2477     CSS_PROPERTY_PARSE_VALUE |
  2478         CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  2479     "",
  2480     0,
  2481     kPageMarksKTable)
  2482 CSS_PROP_POSITION(
  2483     max-height,
  2484     max_height,
  2485     MaxHeight,
  2486     CSS_PROPERTY_PARSE_VALUE |
  2487         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2488         CSS_PROPERTY_STORES_CALC |
  2489         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2490     "",
  2491     VARIANT_HLPO | VARIANT_CALC,
  2492     nullptr,
  2493     offsetof(nsStylePosition, mMaxHeight),
  2494     eStyleAnimType_Coord)
  2495 CSS_PROP_POSITION(
  2496     max-width,
  2497     max_width,
  2498     MaxWidth,
  2499     CSS_PROPERTY_PARSE_VALUE |
  2500         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2501         CSS_PROPERTY_STORES_CALC |
  2502         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2503     "",
  2504     VARIANT_HKLPO | VARIANT_CALC,
  2505     kWidthKTable,
  2506     offsetof(nsStylePosition, mMaxWidth),
  2507     eStyleAnimType_Coord)
  2508 CSS_PROP_POSITION(
  2509     min-height,
  2510     min_height,
  2511     MinHeight,
  2512     CSS_PROPERTY_PARSE_VALUE |
  2513         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2514         CSS_PROPERTY_STORES_CALC |
  2515         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2516     "",
  2517     VARIANT_HLP | VARIANT_CALC,
  2518     nullptr,
  2519     offsetof(nsStylePosition, mMinHeight),
  2520     eStyleAnimType_Coord)
  2521 CSS_PROP_POSITION(
  2522     min-width,
  2523     min_width,
  2524     MinWidth,
  2525     CSS_PROPERTY_PARSE_VALUE |
  2526         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2527         CSS_PROPERTY_STORES_CALC |
  2528         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2529     "",
  2530     VARIANT_HKLP | VARIANT_CALC,
  2531     kWidthKTable,
  2532     offsetof(nsStylePosition, mMinWidth),
  2533     eStyleAnimType_Coord)
  2534 CSS_PROP_DISPLAY(
  2535     mix-blend-mode,
  2536     mix_blend_mode,
  2537     MixBlendMode,
  2538     CSS_PROPERTY_PARSE_VALUE |
  2539         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  2540     "layout.css.mix-blend-mode.enabled",
  2541     VARIANT_HK,
  2542     kBlendModeKTable,
  2543     CSS_PROP_NO_OFFSET,
  2544     eStyleAnimType_None)
  2545 CSS_PROP_DISPLAY(
  2546     opacity,
  2547     opacity,
  2548     Opacity,
  2549     CSS_PROPERTY_PARSE_VALUE |
  2550         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2551     "",
  2552     VARIANT_HN,
  2553     nullptr,
  2554     offsetof(nsStyleDisplay, mOpacity),
  2555     eStyleAnimType_float)
  2556 CSS_PROP_DISPLAY(
  2557     -moz-orient,
  2558     orient,
  2559     CSS_PROP_DOMPROP_PREFIXED(Orient),
  2560     CSS_PROPERTY_PARSE_VALUE,
  2561     "",
  2562     VARIANT_HK,
  2563     kOrientKTable,
  2564     CSS_PROP_NO_OFFSET,
  2565     eStyleAnimType_None)
  2566 CSS_PROP_BACKENDONLY(
  2567     orphans,
  2568     orphans,
  2569     Orphans,
  2570     CSS_PROPERTY_PARSE_VALUE |
  2571         CSS_PROPERTY_VALUE_AT_LEAST_ONE,
  2572     "",
  2573     VARIANT_HI,
  2574     nullptr)
  2575 CSS_PROP_SHORTHAND(
  2576     outline,
  2577     outline,
  2578     Outline,
  2579     CSS_PROPERTY_PARSE_FUNCTION,
  2580     "")
  2581 CSS_PROP_OUTLINE(
  2582     outline-color,
  2583     outline_color,
  2584     OutlineColor,
  2585     CSS_PROPERTY_PARSE_VALUE |
  2586         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  2587     "",
  2588     VARIANT_HCK,
  2589     kOutlineColorKTable,
  2590     CSS_PROP_NO_OFFSET,
  2591     eStyleAnimType_Custom)
  2592 CSS_PROP_OUTLINE(
  2593     outline-style,
  2594     outline_style,
  2595     OutlineStyle,
  2596     CSS_PROPERTY_PARSE_VALUE,
  2597     "",
  2598     VARIANT_HK,
  2599     kOutlineStyleKTable,
  2600     CSS_PROP_NO_OFFSET,
  2601     eStyleAnimType_None)
  2602 CSS_PROP_OUTLINE(
  2603     outline-width,
  2604     outline_width,
  2605     OutlineWidth,
  2606     CSS_PROPERTY_PARSE_VALUE |
  2607         CSS_PROPERTY_VALUE_NONNEGATIVE,
  2608     "",
  2609     VARIANT_HKL | VARIANT_CALC,
  2610     kBorderWidthKTable,
  2611     offsetof(nsStyleOutline, mOutlineWidth),
  2612     eStyleAnimType_Coord)
  2613 CSS_PROP_OUTLINE(
  2614     outline-offset,
  2615     outline_offset,
  2616     OutlineOffset,
  2617     CSS_PROPERTY_PARSE_VALUE,
  2618     "",
  2619     VARIANT_HL | VARIANT_CALC,
  2620     nullptr,
  2621     offsetof(nsStyleOutline, mOutlineOffset),
  2622     eStyleAnimType_nscoord)
  2623 CSS_PROP_SHORTHAND(
  2624     overflow,
  2625     overflow,
  2626     Overflow,
  2627     CSS_PROPERTY_PARSE_FUNCTION,
  2628     "")
  2629 CSS_PROP_DISPLAY(
  2630     overflow-clip-box,
  2631     overflow_clip_box,
  2632     OverflowClipBox,
  2633     CSS_PROPERTY_PARSE_VALUE |
  2634         CSS_PROPERTY_ALWAYS_ENABLED_IN_UA_SHEETS |
  2635         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2636     "layout.css.overflow-clip-box.enabled",
  2637     VARIANT_HK,
  2638     kOverflowClipBoxKTable,
  2639     CSS_PROP_NO_OFFSET,
  2640     eStyleAnimType_None)
  2641 CSS_PROP_DISPLAY(
  2642     overflow-x,
  2643     overflow_x,
  2644     OverflowX,
  2645     CSS_PROPERTY_PARSE_VALUE |
  2646         // This is required by the UA stylesheet and can't be overridden.
  2647         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2648     "",
  2649     VARIANT_HK,
  2650     kOverflowSubKTable,
  2651     CSS_PROP_NO_OFFSET,
  2652     eStyleAnimType_None)
  2653 CSS_PROP_DISPLAY(
  2654     overflow-y,
  2655     overflow_y,
  2656     OverflowY,
  2657     CSS_PROPERTY_PARSE_VALUE |
  2658         // This is required by the UA stylesheet and can't be overridden.
  2659         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2660     "",
  2661     VARIANT_HK,
  2662     kOverflowSubKTable,
  2663     CSS_PROP_NO_OFFSET,
  2664     eStyleAnimType_None)
  2665 CSS_PROP_SHORTHAND(
  2666     padding,
  2667     padding,
  2668     Padding,
  2669     CSS_PROPERTY_PARSE_FUNCTION |
  2670         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  2671     "")
  2672 CSS_PROP_PADDING(
  2673     padding-bottom,
  2674     padding_bottom,
  2675     PaddingBottom,
  2676     CSS_PROPERTY_PARSE_VALUE |
  2677         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2678         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2679         // This is required by the UA stylesheet and can't be overridden.
  2680         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2681         CSS_PROPERTY_STORES_CALC |
  2682         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2683         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2684     "",
  2685     VARIANT_HLP | VARIANT_CALC,
  2686     nullptr,
  2687     offsetof(nsStylePadding, mPadding),
  2688     eStyleAnimType_Sides_Bottom)
  2689 CSS_PROP_SHORTHAND(
  2690     -moz-padding-end,
  2691     padding_end,
  2692     CSS_PROP_DOMPROP_PREFIXED(PaddingEnd),
  2693     CSS_PROPERTY_PARSE_FUNCTION,
  2694     "")
  2695 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2696 CSS_PROP_PADDING(
  2697     padding-end-value,
  2698     padding_end_value,
  2699     PaddingEndValue,
  2700     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2701         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2702         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2703         // This is required by the UA stylesheet and can't be overridden.
  2704         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2705         CSS_PROPERTY_STORES_CALC,
  2706     "",
  2707     VARIANT_HLP | VARIANT_CALC, // for internal use
  2708     nullptr,
  2709     CSS_PROP_NO_OFFSET,
  2710     eStyleAnimType_None)
  2711 #endif
  2712 CSS_PROP_SHORTHAND(
  2713     padding-left,
  2714     padding_left,
  2715     PaddingLeft,
  2716     CSS_PROPERTY_PARSE_FUNCTION |
  2717         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2718         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2719     "")
  2720 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2721 CSS_PROP_PADDING(
  2722     padding-left-value,
  2723     padding_left_value,
  2724     PaddingLeftValue,
  2725     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2726         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2727         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2728         // This is required by the UA stylesheet and can't be overridden.
  2729         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2730         CSS_PROPERTY_REPORT_OTHER_NAME |
  2731         CSS_PROPERTY_STORES_CALC,
  2732     "",
  2733     VARIANT_HLP | VARIANT_CALC, // for internal use
  2734     nullptr,
  2735     offsetof(nsStylePadding, mPadding),
  2736     eStyleAnimType_Sides_Left)
  2737 CSS_PROP_PADDING(
  2738     padding-left-ltr-source,
  2739     padding_left_ltr_source,
  2740     PaddingLeftLTRSource,
  2741     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2742         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2743         // This is required by the UA stylesheet and can't be overridden.
  2744         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2745         CSS_PROPERTY_DIRECTIONAL_SOURCE,
  2746     "",
  2747     0,
  2748     kBoxPropSourceKTable,
  2749     CSS_PROP_NO_OFFSET,
  2750     eStyleAnimType_None)
  2751 CSS_PROP_PADDING(
  2752     padding-left-rtl-source,
  2753     padding_left_rtl_source,
  2754     PaddingLeftRTLSource,
  2755     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2756         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2757         // This is required by the UA stylesheet and can't be overridden.
  2758         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2759         CSS_PROPERTY_DIRECTIONAL_SOURCE,
  2760     "",
  2761     0,
  2762     kBoxPropSourceKTable,
  2763     CSS_PROP_NO_OFFSET,
  2764     eStyleAnimType_None)
  2765 #endif
  2766 CSS_PROP_SHORTHAND(
  2767     padding-right,
  2768     padding_right,
  2769     PaddingRight,
  2770     CSS_PROPERTY_PARSE_FUNCTION |
  2771         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2772         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2773     "")
  2774 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2775 CSS_PROP_PADDING(
  2776     padding-right-value,
  2777     padding_right_value,
  2778     PaddingRightValue,
  2779     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2780         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2781         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2782         // This is required by the UA stylesheet and can't be overridden.
  2783         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2784         CSS_PROPERTY_REPORT_OTHER_NAME |
  2785         CSS_PROPERTY_STORES_CALC,
  2786     "",
  2787     VARIANT_HLP | VARIANT_CALC, // for internal use
  2788     nullptr,
  2789     offsetof(nsStylePadding, mPadding),
  2790     eStyleAnimType_Sides_Right)
  2791 CSS_PROP_PADDING(
  2792     padding-right-ltr-source,
  2793     padding_right_ltr_source,
  2794     PaddingRightLTRSource,
  2795     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2796         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2797         // This is required by the UA stylesheet and can't be overridden.
  2798         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2799         CSS_PROPERTY_DIRECTIONAL_SOURCE,
  2800     "",
  2801     0,
  2802     kBoxPropSourceKTable,
  2803     CSS_PROP_NO_OFFSET,
  2804     eStyleAnimType_None)
  2805 CSS_PROP_PADDING(
  2806     padding-right-rtl-source,
  2807     padding_right_rtl_source,
  2808     PaddingRightRTLSource,
  2809     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2810         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2811         CSS_PROPERTY_DIRECTIONAL_SOURCE,
  2812     "",
  2813     0,
  2814     kBoxPropSourceKTable,
  2815     CSS_PROP_NO_OFFSET,
  2816     eStyleAnimType_None)
  2817 #endif
  2818 CSS_PROP_SHORTHAND(
  2819     -moz-padding-start,
  2820     padding_start,
  2821     CSS_PROP_DOMPROP_PREFIXED(PaddingStart),
  2822     CSS_PROPERTY_PARSE_FUNCTION,
  2823     "")
  2824 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2825 CSS_PROP_PADDING(
  2826     padding-start-value,
  2827     padding_start_value,
  2828     PaddingStartValue,
  2829     CSS_PROPERTY_PARSE_INACCESSIBLE |
  2830         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2831         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2832         // This is required by the UA stylesheet and can't be overridden.
  2833         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2834         CSS_PROPERTY_STORES_CALC,
  2835     "",
  2836     VARIANT_HLP | VARIANT_CALC, // for internal use
  2837     nullptr,
  2838     CSS_PROP_NO_OFFSET,
  2839     eStyleAnimType_None)
  2840 #endif
  2841 CSS_PROP_PADDING(
  2842     padding-top,
  2843     padding_top,
  2844     PaddingTop,
  2845     CSS_PROPERTY_PARSE_VALUE |
  2846         CSS_PROPERTY_VALUE_NONNEGATIVE |
  2847         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2848         // This is required by the UA stylesheet and can't be overridden.
  2849         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2850         CSS_PROPERTY_STORES_CALC |
  2851         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2852         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2853     "",
  2854     VARIANT_HLP | VARIANT_CALC,
  2855     nullptr,
  2856     offsetof(nsStylePadding, mPadding),
  2857     eStyleAnimType_Sides_Top)
  2858 CSS_PROP_BACKENDONLY(
  2859     page,
  2860     page,
  2861     Page,
  2862     CSS_PROPERTY_PARSE_VALUE,
  2863     "",
  2864     VARIANT_AUTO | VARIANT_IDENTIFIER,
  2865     nullptr)
  2866 CSS_PROP_DISPLAY(
  2867     page-break-after,
  2868     page_break_after,
  2869     PageBreakAfter,
  2870     CSS_PROPERTY_PARSE_VALUE,
  2871     "",
  2872     VARIANT_HK,
  2873     kPageBreakKTable,
  2874     CSS_PROP_NO_OFFSET,
  2875     eStyleAnimType_None) // temp fix for bug 24000
  2876 CSS_PROP_DISPLAY(
  2877     page-break-before,
  2878     page_break_before,
  2879     PageBreakBefore,
  2880     CSS_PROPERTY_PARSE_VALUE,
  2881     "",
  2882     VARIANT_HK,
  2883     kPageBreakKTable,
  2884     CSS_PROP_NO_OFFSET,
  2885     eStyleAnimType_None) // temp fix for bug 24000
  2886 CSS_PROP_DISPLAY(
  2887     page-break-inside,
  2888     page_break_inside,
  2889     PageBreakInside,
  2890     CSS_PROPERTY_PARSE_VALUE,
  2891     "",
  2892     VARIANT_HK,
  2893     kPageBreakInsideKTable,
  2894     CSS_PROP_NO_OFFSET,
  2895     eStyleAnimType_None)
  2896 CSS_PROP_SVG(
  2897     paint-order,
  2898     paint_order,
  2899     PaintOrder,
  2900     CSS_PROPERTY_PARSE_FUNCTION,
  2901     "svg.paint-order.enabled",
  2902     0,
  2903     nullptr,
  2904     CSS_PROP_NO_OFFSET,
  2905     eStyleAnimType_None)
  2906 CSS_PROP_VISIBILITY(
  2907     pointer-events,
  2908     pointer_events,
  2909     PointerEvents,
  2910     CSS_PROPERTY_PARSE_VALUE |
  2911         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2912     "",
  2913     VARIANT_HK,
  2914     kPointerEventsKTable,
  2915     offsetof(nsStyleVisibility, mPointerEvents),
  2916     eStyleAnimType_EnumU8)
  2917 CSS_PROP_DISPLAY(
  2918     position,
  2919     position,
  2920     Position,
  2921     CSS_PROPERTY_PARSE_VALUE |
  2922         // For position: sticky
  2923         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  2924     "",
  2925     VARIANT_HK,
  2926     kPositionKTable,
  2927     CSS_PROP_NO_OFFSET,
  2928     eStyleAnimType_None)
  2929 CSS_PROP_QUOTES(
  2930     quotes,
  2931     quotes,
  2932     Quotes,
  2933     CSS_PROPERTY_PARSE_FUNCTION,
  2934     "",
  2935     0,
  2936     nullptr,
  2937     CSS_PROP_NO_OFFSET,
  2938     eStyleAnimType_None)
  2939 CSS_PROP_DISPLAY(
  2940     resize,
  2941     resize,
  2942     Resize,
  2943     CSS_PROPERTY_PARSE_VALUE |
  2944         // This is allowed because the UA stylesheet sets 'resize: both;' on
  2945         // textarea and we need to disable this for the placeholder
  2946         // pseudo-element.
  2947         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2948     "",
  2949     VARIANT_HK,
  2950     kResizeKTable,
  2951     CSS_PROP_NO_OFFSET,
  2952     eStyleAnimType_None)
  2953 CSS_PROP_POSITION(
  2954     right,
  2955     right,
  2956     Right,
  2957     CSS_PROPERTY_PARSE_VALUE |
  2958         CSS_PROPERTY_STORES_CALC |
  2959         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2960         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2961     "",
  2962     VARIANT_AHLP | VARIANT_CALC,
  2963     nullptr,
  2964     offsetof(nsStylePosition, mOffset),
  2965     eStyleAnimType_Sides_Right)
  2966 CSS_PROP_BACKENDONLY(
  2967     size,
  2968     size,
  2969     Size,
  2970     CSS_PROPERTY_PARSE_FUNCTION,
  2971     "",
  2972     0,
  2973     kPageSizeKTable)
  2974 CSS_PROP_TABLE(
  2975     table-layout,
  2976     table_layout,
  2977     TableLayout,
  2978     CSS_PROPERTY_PARSE_VALUE,
  2979     "",
  2980     VARIANT_HK,
  2981     kTableLayoutKTable,
  2982     CSS_PROP_NO_OFFSET,
  2983     eStyleAnimType_None)
  2984 CSS_PROP_TEXT(
  2985     text-align,
  2986     text_align,
  2987     TextAlign,
  2988     CSS_PROPERTY_PARSE_VALUE | CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  2989       CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2990     "",
  2991     // When we support aligning on a string, we can parse text-align
  2992     // as a string....
  2993     VARIANT_HK /* | VARIANT_STRING */,
  2994     kTextAlignKTable,
  2995     CSS_PROP_NO_OFFSET,
  2996     eStyleAnimType_None)
  2997 CSS_PROP_TEXT(
  2998     -moz-text-align-last,
  2999     text_align_last,
  3000     CSS_PROP_DOMPROP_PREFIXED(TextAlignLast),
  3001     CSS_PROPERTY_PARSE_VALUE | CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  3002     "",
  3003     VARIANT_HK,
  3004     kTextAlignLastKTable,
  3005     offsetof(nsStyleText, mTextAlignLast),
  3006     eStyleAnimType_None)
  3007 CSS_PROP_SHORTHAND(
  3008     text-decoration,
  3009     text_decoration,
  3010     TextDecoration,
  3011     CSS_PROPERTY_PARSE_FUNCTION,
  3012     "")
  3013 CSS_PROP_TEXT(
  3014     text-combine-upright,
  3015     text_combine_upright,
  3016     TextCombineUpright,
  3017     CSS_PROPERTY_PARSE_VALUE |
  3018         CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  3019     "layout.css.vertical-text.enabled",
  3020     0,
  3021     kTextCombineUprightKTable,
  3022     offsetof(nsStyleText, mTextCombineUpright),
  3023     eStyleAnimType_EnumU8)
  3024 CSS_PROP_TEXTRESET(
  3025     -moz-text-decoration-color,
  3026     text_decoration_color,
  3027     CSS_PROP_DOMPROP_PREFIXED(TextDecorationColor),
  3028     CSS_PROPERTY_PARSE_VALUE |
  3029         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3030         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3031         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  3032     "",
  3033     VARIANT_HCK,
  3034     kBorderColorKTable,
  3035     CSS_PROP_NO_OFFSET,
  3036     eStyleAnimType_Custom)
  3037 CSS_PROP_TEXTRESET(
  3038     -moz-text-decoration-line,
  3039     text_decoration_line,
  3040     CSS_PROP_DOMPROP_PREFIXED(TextDecorationLine),
  3041     CSS_PROPERTY_PARSE_VALUE |
  3042         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3043         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3044         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3045     "",
  3046     0,
  3047     kTextDecorationLineKTable,
  3048     offsetof(nsStyleTextReset, mTextDecorationLine),
  3049     eStyleAnimType_EnumU8)
  3050 CSS_PROP_TEXTRESET(
  3051     -moz-text-decoration-style,
  3052     text_decoration_style,
  3053     CSS_PROP_DOMPROP_PREFIXED(TextDecorationStyle),
  3054     CSS_PROPERTY_PARSE_VALUE |
  3055         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3056         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3057     "",
  3058     VARIANT_HK,
  3059     kTextDecorationStyleKTable,
  3060     CSS_PROP_NO_OFFSET,
  3061     eStyleAnimType_Custom)
  3062 CSS_PROP_TEXT(
  3063     text-indent,
  3064     text_indent,
  3065     TextIndent,
  3066     CSS_PROPERTY_PARSE_VALUE |
  3067         CSS_PROPERTY_STORES_CALC |
  3068         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3069     "",
  3070     VARIANT_HLP | VARIANT_CALC,
  3071     nullptr,
  3072     offsetof(nsStyleText, mTextIndent),
  3073     eStyleAnimType_Coord)
  3074 CSS_PROP_TEXT(
  3075     text-orientation,
  3076     text_orientation,
  3077     TextOrientation,
  3078     CSS_PROPERTY_PARSE_VALUE,
  3079     "layout.css.vertical-text.enabled",
  3080     VARIANT_HK,
  3081     kTextOrientationKTable,
  3082     offsetof(nsStyleText, mTextOrientation),
  3083     eStyleAnimType_EnumU8)
  3084 CSS_PROP_TEXTRESET(
  3085     text-overflow,
  3086     text_overflow,
  3087     TextOverflow,
  3088     CSS_PROPERTY_PARSE_VALUE |
  3089         CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3090         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3091     "",
  3092     0,
  3093     kTextOverflowKTable,
  3094     offsetof(nsStyleTextReset, mTextOverflow),
  3095     eStyleAnimType_None)
  3096 CSS_PROP_TEXT(
  3097     text-shadow,
  3098     text_shadow,
  3099     TextShadow,
  3100     CSS_PROPERTY_PARSE_FUNCTION |
  3101         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3102         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3103         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  3104         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  3105         // NOTE: some components must be nonnegative
  3106     "",
  3107     0,
  3108     nullptr,
  3109     offsetof(nsStyleText, mTextShadow),
  3110     eStyleAnimType_Shadow)
  3111 CSS_PROP_TEXT(
  3112     -moz-text-size-adjust,
  3113     text_size_adjust,
  3114     CSS_PROP_DOMPROP_PREFIXED(TextSizeAdjust),
  3115     CSS_PROPERTY_PARSE_VALUE,
  3116     "",
  3117     VARIANT_AUTO | VARIANT_NONE | VARIANT_INHERIT,
  3118     nullptr,
  3119     CSS_PROP_NO_OFFSET,
  3120     eStyleAnimType_None)
  3121 CSS_PROP_TEXT(
  3122     text-transform,
  3123     text_transform,
  3124     TextTransform,
  3125     CSS_PROPERTY_PARSE_VALUE |
  3126         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3127         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3128     "",
  3129     VARIANT_HK,
  3130     kTextTransformKTable,
  3131     CSS_PROP_NO_OFFSET,
  3132     eStyleAnimType_None)
  3133 CSS_PROP_DISPLAY(
  3134     transform,
  3135     transform,
  3136     Transform,
  3137     CSS_PROPERTY_PARSE_FUNCTION |
  3138         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  3139         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  3140     "",
  3141     0,
  3142     nullptr,
  3143     offsetof(nsStyleDisplay, mSpecifiedTransform),
  3144     eStyleAnimType_Custom)
  3145 CSS_PROP_DISPLAY(
  3146     transform-origin,
  3147     transform_origin,
  3148     TransformOrigin,
  3149     CSS_PROPERTY_PARSE_FUNCTION |
  3150         CSS_PROPERTY_STORES_CALC |
  3151         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3152     "",
  3153     0,
  3154     kBackgroundPositionKTable,
  3155     CSS_PROP_NO_OFFSET,
  3156     eStyleAnimType_Custom)
  3157 CSS_PROP_DISPLAY(
  3158     perspective-origin,
  3159     perspective_origin,
  3160     PerspectiveOrigin,
  3161     CSS_PROPERTY_PARSE_FUNCTION |
  3162         CSS_PROPERTY_STORES_CALC |
  3163         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3164     "",
  3165     0,
  3166     kBackgroundPositionKTable,
  3167     CSS_PROP_NO_OFFSET,
  3168     eStyleAnimType_Custom)
  3169 CSS_PROP_DISPLAY(
  3170     perspective,
  3171     perspective,
  3172     Perspective,
  3173     CSS_PROPERTY_PARSE_VALUE |
  3174         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  3175     "",
  3176     VARIANT_NONE | VARIANT_INHERIT | VARIANT_LENGTH | VARIANT_POSITIVE_DIMENSION,
  3177     nullptr,
  3178     offsetof(nsStyleDisplay, mChildPerspective),
  3179     eStyleAnimType_Coord)
  3180 CSS_PROP_DISPLAY(
  3181     transform-style,
  3182     transform_style,
  3183     TransformStyle,
  3184     CSS_PROPERTY_PARSE_VALUE |
  3185         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  3186     "",
  3187     VARIANT_HK,
  3188     kTransformStyleKTable,
  3189     CSS_PROP_NO_OFFSET,
  3190     eStyleAnimType_None)
  3191 CSS_PROP_DISPLAY(
  3192     backface-visibility,
  3193     backface_visibility,
  3194     BackfaceVisibility,
  3195     CSS_PROPERTY_PARSE_VALUE,
  3196     "",
  3197     VARIANT_HK,
  3198     kBackfaceVisibilityKTable,
  3199     offsetof(nsStyleDisplay, mBackfaceVisibility),
  3200     eStyleAnimType_None)
  3201 CSS_PROP_POSITION(
  3202     top,
  3203     top,
  3204     Top,
  3205     CSS_PROPERTY_PARSE_VALUE |
  3206         CSS_PROPERTY_STORES_CALC |
  3207         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  3208         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3209     "",
  3210     VARIANT_AHLP | VARIANT_CALC,
  3211     nullptr,
  3212     offsetof(nsStylePosition, mOffset),
  3213     eStyleAnimType_Sides_Top)
  3214  CSS_PROP_DISPLAY(
  3215     touch-action,
  3216     touch_action,
  3217     TouchAction,
  3218     CSS_PROPERTY_PARSE_VALUE |
  3219         CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  3220     "layout.css.touch_action.enabled",
  3221     VARIANT_HK,
  3222     kTouchActionKTable,
  3223     CSS_PROP_NO_OFFSET,
  3224     eStyleAnimType_None)
  3225 CSS_PROP_SHORTHAND(
  3226     transition,
  3227     transition,
  3228     Transition,
  3229     CSS_PROPERTY_PARSE_FUNCTION,
  3230     "")
  3231 CSS_PROP_DISPLAY(
  3232     transition-delay,
  3233     transition_delay,
  3234     TransitionDelay,
  3235     CSS_PROPERTY_PARSE_VALUE_LIST |
  3236         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  3237     "",
  3238     VARIANT_TIME, // used by list parsing
  3239     nullptr,
  3240     CSS_PROP_NO_OFFSET,
  3241     eStyleAnimType_None)
  3242 CSS_PROP_DISPLAY(
  3243     transition-duration,
  3244     transition_duration,
  3245     TransitionDuration,
  3246     CSS_PROPERTY_PARSE_VALUE_LIST |
  3247         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  3248     "",
  3249     VARIANT_TIME | VARIANT_NONNEGATIVE_DIMENSION, // used by list parsing
  3250     nullptr,
  3251     CSS_PROP_NO_OFFSET,
  3252     eStyleAnimType_None)
  3253 CSS_PROP_DISPLAY(
  3254     transition-property,
  3255     transition_property,
  3256     TransitionProperty,
  3257     CSS_PROPERTY_PARSE_FUNCTION |
  3258         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  3259     "",
  3260     VARIANT_IDENTIFIER | VARIANT_NONE | VARIANT_ALL, // used only in shorthand
  3261     nullptr,
  3262     CSS_PROP_NO_OFFSET,
  3263     eStyleAnimType_None)
  3264 CSS_PROP_DISPLAY(
  3265     transition-timing-function,
  3266     transition_timing_function,
  3267     TransitionTimingFunction,
  3268     CSS_PROPERTY_PARSE_VALUE_LIST |
  3269         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  3270     "",
  3271     VARIANT_KEYWORD | VARIANT_TIMING_FUNCTION, // used by list parsing
  3272     kTransitionTimingFunctionKTable,
  3273     CSS_PROP_NO_OFFSET,
  3274     eStyleAnimType_None)
  3275 #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  3276 CSS_PROP_TEXTRESET(
  3277     unicode-bidi,
  3278     unicode_bidi,
  3279     UnicodeBidi,
  3280     CSS_PROPERTY_PARSE_VALUE,
  3281     "",
  3282     VARIANT_HK,
  3283     kUnicodeBidiKTable,
  3284     CSS_PROP_NO_OFFSET,
  3285     eStyleAnimType_None)
  3286 #endif // !defined(CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND)
  3287 CSS_PROP_USERINTERFACE(
  3288     -moz-user-focus,
  3289     user_focus,
  3290     CSS_PROP_DOMPROP_PREFIXED(UserFocus),
  3291     CSS_PROPERTY_PARSE_VALUE,
  3292     "",
  3293     VARIANT_HK,
  3294     kUserFocusKTable,
  3295     CSS_PROP_NO_OFFSET,
  3296     eStyleAnimType_None) // XXX bug 3935
  3297 CSS_PROP_USERINTERFACE(
  3298     -moz-user-input,
  3299     user_input,
  3300     CSS_PROP_DOMPROP_PREFIXED(UserInput),
  3301     CSS_PROPERTY_PARSE_VALUE,
  3302     "",
  3303     VARIANT_HK,
  3304     kUserInputKTable,
  3305     CSS_PROP_NO_OFFSET,
  3306     eStyleAnimType_None) // XXX ??? // XXX bug 3935
  3307 CSS_PROP_USERINTERFACE(
  3308     -moz-user-modify,
  3309     user_modify,
  3310     CSS_PROP_DOMPROP_PREFIXED(UserModify),
  3311     CSS_PROPERTY_PARSE_VALUE,
  3312     "",
  3313     VARIANT_HK,
  3314     kUserModifyKTable,
  3315     CSS_PROP_NO_OFFSET,
  3316     eStyleAnimType_None) // XXX bug 3935
  3317 CSS_PROP_UIRESET(
  3318     -moz-user-select,
  3319     user_select,
  3320     CSS_PROP_DOMPROP_PREFIXED(UserSelect),
  3321     CSS_PROPERTY_PARSE_VALUE,
  3322     "",
  3323     VARIANT_HK,
  3324     kUserSelectKTable,
  3325     CSS_PROP_NO_OFFSET,
  3326     eStyleAnimType_None) // XXX bug 3935
  3327 // NOTE: vertical-align is only supposed to apply to :first-letter when
  3328 // 'float' is 'none', but we don't worry about that since it has no
  3329 // effect otherwise
  3330 CSS_PROP_TEXTRESET(
  3331     vertical-align,
  3332     vertical_align,
  3333     VerticalAlign,
  3334     CSS_PROPERTY_PARSE_VALUE |
  3335         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3336         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3337         CSS_PROPERTY_STORES_CALC |
  3338         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3339     "",
  3340     VARIANT_HKLP | VARIANT_CALC,
  3341     kVerticalAlignKTable,
  3342     offsetof(nsStyleTextReset, mVerticalAlign),
  3343     eStyleAnimType_Coord)
  3344 CSS_PROP_VISIBILITY(
  3345     visibility,
  3346     visibility,
  3347     Visibility,
  3348     CSS_PROPERTY_PARSE_VALUE,
  3349     "",
  3350     VARIANT_HK,
  3351     kVisibilityKTable,
  3352     offsetof(nsStyleVisibility, mVisible),
  3353     eStyleAnimType_EnumU8)  // reflow for collapse
  3354 CSS_PROP_TEXT(
  3355     white-space,
  3356     white_space,
  3357     WhiteSpace,
  3358     CSS_PROPERTY_PARSE_VALUE |
  3359         // This is required by the UA stylesheet and can't be overridden.
  3360         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3361     "",
  3362     VARIANT_HK,
  3363     kWhitespaceKTable,
  3364     CSS_PROP_NO_OFFSET,
  3365     eStyleAnimType_None)
  3366 CSS_PROP_BACKENDONLY(
  3367     widows,
  3368     widows,
  3369     Widows,
  3370     CSS_PROPERTY_PARSE_VALUE |
  3371         CSS_PROPERTY_VALUE_AT_LEAST_ONE,
  3372     "",
  3373     VARIANT_HI,
  3374     nullptr)
  3375 CSS_PROP_POSITION(
  3376     width,
  3377     width,
  3378     Width,
  3379     CSS_PROPERTY_PARSE_VALUE |
  3380         CSS_PROPERTY_VALUE_NONNEGATIVE |
  3381         CSS_PROPERTY_STORES_CALC |
  3382         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  3383         CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3384     "",
  3385     VARIANT_AHKLP | VARIANT_CALC,
  3386     kWidthKTable,
  3387     offsetof(nsStylePosition, mWidth),
  3388     eStyleAnimType_Coord)
  3389 CSS_PROP_UIRESET(
  3390     -moz-window-shadow,
  3391     _moz_window_shadow,
  3392     CSS_PROP_DOMPROP_PREFIXED(WindowShadow),
  3393     CSS_PROPERTY_PARSE_VALUE,
  3394     "",
  3395     VARIANT_HK,
  3396     kWindowShadowKTable,
  3397     CSS_PROP_NO_OFFSET,
  3398     eStyleAnimType_None)
  3399 CSS_PROP_TEXT(
  3400     word-break,
  3401     word_break,
  3402     WordBreak,
  3403     CSS_PROPERTY_PARSE_VALUE,
  3404     "",
  3405     VARIANT_HK,
  3406     kWordBreakKTable,
  3407     offsetof(nsStyleText, mWordBreak),
  3408     eStyleAnimType_EnumU8)
  3409 CSS_PROP_TEXT(
  3410     word-spacing,
  3411     word_spacing,
  3412     WordSpacing,
  3413     CSS_PROPERTY_PARSE_VALUE |
  3414         CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3415         CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3416         CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  3417     "",
  3418     VARIANT_HL | VARIANT_NORMAL | VARIANT_CALC,
  3419     nullptr,
  3420     offsetof(nsStyleText, mWordSpacing),
  3421     eStyleAnimType_nscoord)
  3422 CSS_PROP_TEXT(
  3423     word-wrap,
  3424     word_wrap,
  3425     WordWrap,
  3426     CSS_PROPERTY_PARSE_VALUE,
  3427     "",
  3428     VARIANT_HK,
  3429     kWordWrapKTable,
  3430     CSS_PROP_NO_OFFSET,
  3431     eStyleAnimType_None)
  3432 CSS_PROP_TEXT(
  3433     -moz-hyphens,
  3434     hyphens,
  3435     CSS_PROP_DOMPROP_PREFIXED(Hyphens),
  3436     CSS_PROPERTY_PARSE_VALUE,
  3437     "",
  3438     VARIANT_HK,
  3439     kHyphensKTable,
  3440     CSS_PROP_NO_OFFSET,
  3441     eStyleAnimType_None)
  3442 CSS_PROP_VISIBILITY(
  3443     writing-mode,
  3444     writing_mode,
  3445     WritingMode,
  3446     CSS_PROPERTY_PARSE_VALUE,
  3447     "layout.css.vertical-text.enabled",
  3448     VARIANT_HK,
  3449     kWritingModeKTable,
  3450     offsetof(nsStyleVisibility, mWritingMode),
  3451     eStyleAnimType_EnumU8)
  3452 CSS_PROP_POSITION(
  3453     z-index,
  3454     z_index,
  3455     ZIndex,
  3456     CSS_PROPERTY_PARSE_VALUE |
  3457         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  3458     "",
  3459     VARIANT_AHI,
  3460     nullptr,
  3461     offsetof(nsStylePosition, mZIndex),
  3462     eStyleAnimType_Coord)
  3463 CSS_PROP_XUL(
  3464     -moz-box-align,
  3465     box_align,
  3466     CSS_PROP_DOMPROP_PREFIXED(BoxAlign),
  3467     CSS_PROPERTY_PARSE_VALUE,
  3468     "",
  3469     VARIANT_HK,
  3470     kBoxAlignKTable,
  3471     CSS_PROP_NO_OFFSET,
  3472     eStyleAnimType_None) // XXX bug 3935
  3473 CSS_PROP_XUL(
  3474     -moz-box-direction,
  3475     box_direction,
  3476     CSS_PROP_DOMPROP_PREFIXED(BoxDirection),
  3477     CSS_PROPERTY_PARSE_VALUE,
  3478     "",
  3479     VARIANT_HK,
  3480     kBoxDirectionKTable,
  3481     CSS_PROP_NO_OFFSET,
  3482     eStyleAnimType_None) // XXX bug 3935
  3483 CSS_PROP_XUL(
  3484     -moz-box-flex,
  3485     box_flex,
  3486     CSS_PROP_DOMPROP_PREFIXED(BoxFlex),
  3487     CSS_PROPERTY_PARSE_VALUE |
  3488         CSS_PROPERTY_VALUE_NONNEGATIVE,
  3489     "",
  3490     VARIANT_HN,
  3491     nullptr,
  3492     offsetof(nsStyleXUL, mBoxFlex),
  3493     eStyleAnimType_float) // XXX bug 3935
  3494 CSS_PROP_XUL(
  3495     -moz-box-orient,
  3496     box_orient,
  3497     CSS_PROP_DOMPROP_PREFIXED(BoxOrient),
  3498     CSS_PROPERTY_PARSE_VALUE,
  3499     "",
  3500     VARIANT_HK,
  3501     kBoxOrientKTable,
  3502     CSS_PROP_NO_OFFSET,
  3503     eStyleAnimType_None) // XXX bug 3935
  3504 CSS_PROP_XUL(
  3505     -moz-box-pack,
  3506     box_pack,
  3507     CSS_PROP_DOMPROP_PREFIXED(BoxPack),
  3508     CSS_PROPERTY_PARSE_VALUE,
  3509     "",
  3510     VARIANT_HK,
  3511     kBoxPackKTable,
  3512     CSS_PROP_NO_OFFSET,
  3513     eStyleAnimType_None) // XXX bug 3935
  3514 CSS_PROP_XUL(
  3515     -moz-box-ordinal-group,
  3516     box_ordinal_group,
  3517     CSS_PROP_DOMPROP_PREFIXED(BoxOrdinalGroup),
  3518     CSS_PROPERTY_PARSE_VALUE |
  3519         CSS_PROPERTY_VALUE_NONNEGATIVE,
  3520     "",
  3521     VARIANT_HI,
  3522     nullptr,
  3523     CSS_PROP_NO_OFFSET,
  3524     eStyleAnimType_None)
  3525 CSS_PROP_XUL(
  3526     -moz-stack-sizing,
  3527     stack_sizing,
  3528     CSS_PROP_DOMPROP_PREFIXED(StackSizing),
  3529     CSS_PROPERTY_PARSE_VALUE,
  3530     "",
  3531     VARIANT_HK,
  3532     kStackSizingKTable,
  3533     CSS_PROP_NO_OFFSET,
  3534     eStyleAnimType_None)
  3536 #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  3537 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  3538 CSS_PROP_FONT(
  3539     -moz-script-level,
  3540     script_level,
  3541     ScriptLevel,
  3542     // REVIEW: no range restriction?
  3543     // NOTE: CSSParserImpl::ParseSingleValueProperty only accepts this
  3544     // property when mUnsafeRulesEnabled is set.
  3545     CSS_PROPERTY_PARSE_VALUE,
  3546     "",
  3547     // script-level can take Auto, Integer and Number values, but only Auto
  3548     // ("increment if parent is not in displaystyle") and Integer
  3549     // ("relative") values can be specified in a style sheet.
  3550     VARIANT_AHI,
  3551     nullptr,
  3552     CSS_PROP_NO_OFFSET,
  3553     eStyleAnimType_None)
  3554 CSS_PROP_FONT(
  3555     -moz-script-size-multiplier,
  3556     script_size_multiplier,
  3557     ScriptSizeMultiplier,
  3558     // REVIEW: no range restriction?
  3559     CSS_PROPERTY_PARSE_INACCESSIBLE,
  3560     "",
  3561     0,
  3562     nullptr,
  3563     CSS_PROP_NO_OFFSET,
  3564     eStyleAnimType_None)
  3565 CSS_PROP_FONT(
  3566     -moz-script-min-size,
  3567     script_min_size,
  3568     ScriptMinSize,
  3569     // REVIEW: no range restriction?
  3570     CSS_PROPERTY_PARSE_INACCESSIBLE,
  3571     "",
  3572     0,
  3573     nullptr,
  3574     CSS_PROP_NO_OFFSET,
  3575     eStyleAnimType_None)
  3576 CSS_PROP_FONT(
  3577     -moz-math-variant,
  3578     math_variant,
  3579     MathVariant,
  3580     CSS_PROPERTY_PARSE_INACCESSIBLE,
  3581     "",
  3582     VARIANT_HK,
  3583     kMathVariantKTable,
  3584     CSS_PROP_NO_OFFSET,
  3585     eStyleAnimType_None)
  3586 CSS_PROP_FONT(
  3587     -moz-math-display,
  3588     math_display,
  3589     MathDisplay,
  3590     // NOTE: CSSParserImpl::ParseSingleValueProperty only accepts this
  3591     // property when mUnsafeRulesEnabled is set.
  3592     CSS_PROPERTY_PARSE_VALUE,
  3593     "",
  3594     VARIANT_HK,
  3595     kMathDisplayKTable,
  3596     CSS_PROP_NO_OFFSET,
  3597     eStyleAnimType_None)
  3598 #endif // !defined(CSS_PROP_LIST_EXCLUDE_INTERNAL)
  3599 #endif // !defined(CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND)
  3601 CSS_PROP_SVGRESET(
  3602     clip-path,
  3603     clip_path,
  3604     ClipPath,
  3605     CSS_PROPERTY_PARSE_VALUE |
  3606         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  3607     "",
  3608     VARIANT_HUO,
  3609     nullptr,
  3610     CSS_PROP_NO_OFFSET,
  3611     eStyleAnimType_None)
  3612 CSS_PROP_SVG(
  3613     clip-rule,
  3614     clip_rule,
  3615     ClipRule,
  3616     CSS_PROPERTY_PARSE_VALUE,
  3617     "",
  3618     VARIANT_HK,
  3619     kFillRuleKTable,
  3620     offsetof(nsStyleSVG, mClipRule),
  3621     eStyleAnimType_EnumU8)
  3622 CSS_PROP_SVG(
  3623     color-interpolation,
  3624     color_interpolation,
  3625     ColorInterpolation,
  3626     CSS_PROPERTY_PARSE_VALUE,
  3627     "",
  3628     VARIANT_HK,
  3629     kColorInterpolationKTable,
  3630     offsetof(nsStyleSVG, mColorInterpolation),
  3631     eStyleAnimType_EnumU8)
  3632 CSS_PROP_SVG(
  3633     color-interpolation-filters,
  3634     color_interpolation_filters,
  3635     ColorInterpolationFilters,
  3636     CSS_PROPERTY_PARSE_VALUE,
  3637     "",
  3638     VARIANT_HK,
  3639     kColorInterpolationKTable,
  3640     offsetof(nsStyleSVG, mColorInterpolationFilters),
  3641     eStyleAnimType_EnumU8)
  3642 CSS_PROP_SVGRESET(
  3643     dominant-baseline,
  3644     dominant_baseline,
  3645     DominantBaseline,
  3646     CSS_PROPERTY_PARSE_VALUE,
  3647     "",
  3648     VARIANT_HK,
  3649     kDominantBaselineKTable,
  3650     offsetof(nsStyleSVGReset, mDominantBaseline),
  3651     eStyleAnimType_EnumU8)
  3652 CSS_PROP_SVG(
  3653     fill,
  3654     fill,
  3655     Fill,
  3656     CSS_PROPERTY_PARSE_FUNCTION,
  3657     "",
  3658     0,
  3659     kContextPatternKTable,
  3660     offsetof(nsStyleSVG, mFill),
  3661     eStyleAnimType_PaintServer)
  3662 CSS_PROP_SVG(
  3663     fill-opacity,
  3664     fill_opacity,
  3665     FillOpacity,
  3666     CSS_PROPERTY_PARSE_VALUE,
  3667     "",
  3668     VARIANT_HN | VARIANT_OPENTYPE_SVG_KEYWORD,
  3669     kContextOpacityKTable,
  3670     offsetof(nsStyleSVG, mFillOpacity),
  3671     eStyleAnimType_float)
  3672 CSS_PROP_SVG(
  3673     fill-rule,
  3674     fill_rule,
  3675     FillRule,
  3676     CSS_PROPERTY_PARSE_VALUE,
  3677     "",
  3678     VARIANT_HK,
  3679     kFillRuleKTable,
  3680     offsetof(nsStyleSVG, mFillRule),
  3681     eStyleAnimType_EnumU8)
  3682 CSS_PROP_SVGRESET(
  3683     filter,
  3684     filter,
  3685     Filter,
  3686     CSS_PROPERTY_PARSE_FUNCTION |
  3687         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  3688     "",
  3689     0,
  3690     nullptr,
  3691     CSS_PROP_NO_OFFSET,
  3692     eStyleAnimType_Custom)
  3693 CSS_PROP_SVGRESET(
  3694     flood-color,
  3695     flood_color,
  3696     FloodColor,
  3697     CSS_PROPERTY_PARSE_VALUE,
  3698     "",
  3699     VARIANT_HC,
  3700     nullptr,
  3701     offsetof(nsStyleSVGReset, mFloodColor),
  3702     eStyleAnimType_Color)
  3703 CSS_PROP_SVGRESET(
  3704     flood-opacity,
  3705     flood_opacity,
  3706     FloodOpacity,
  3707     CSS_PROPERTY_PARSE_VALUE,
  3708     "",
  3709     VARIANT_HN,
  3710     nullptr,
  3711     offsetof(nsStyleSVGReset, mFloodOpacity),
  3712     eStyleAnimType_float)
  3713 CSS_PROP_SVG(
  3714     image-rendering,
  3715     image_rendering,
  3716     ImageRendering,
  3717     CSS_PROPERTY_PARSE_VALUE,
  3718     "",
  3719     VARIANT_HK,
  3720     kImageRenderingKTable,
  3721     offsetof(nsStyleSVG, mImageRendering),
  3722     eStyleAnimType_EnumU8)
  3723 CSS_PROP_SVGRESET(
  3724     lighting-color,
  3725     lighting_color,
  3726     LightingColor,
  3727     CSS_PROPERTY_PARSE_VALUE,
  3728     "",
  3729     VARIANT_HC,
  3730     nullptr,
  3731     offsetof(nsStyleSVGReset, mLightingColor),
  3732     eStyleAnimType_Color)
  3733 CSS_PROP_SHORTHAND(
  3734     marker,
  3735     marker,
  3736     Marker,
  3737     CSS_PROPERTY_PARSE_FUNCTION,
  3738     "")
  3739 CSS_PROP_SVG(
  3740     marker-end,
  3741     marker_end,
  3742     MarkerEnd,
  3743     CSS_PROPERTY_PARSE_VALUE,
  3744     "",
  3745     VARIANT_HUO,
  3746     nullptr,
  3747     CSS_PROP_NO_OFFSET,
  3748     eStyleAnimType_None)
  3749 CSS_PROP_SVG(
  3750     marker-mid,
  3751     marker_mid,
  3752     MarkerMid,
  3753     CSS_PROPERTY_PARSE_VALUE,
  3754     "",
  3755     VARIANT_HUO,
  3756     nullptr,
  3757     CSS_PROP_NO_OFFSET,
  3758     eStyleAnimType_None)
  3759 CSS_PROP_SVG(
  3760     marker-start,
  3761     marker_start,
  3762     MarkerStart,
  3763     CSS_PROPERTY_PARSE_VALUE,
  3764     "",
  3765     VARIANT_HUO,
  3766     nullptr,
  3767     CSS_PROP_NO_OFFSET,
  3768     eStyleAnimType_None)
  3769 CSS_PROP_SVGRESET(
  3770     mask,
  3771     mask,
  3772     Mask,
  3773     CSS_PROPERTY_PARSE_VALUE |
  3774         CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  3775     "",
  3776     VARIANT_HUO,
  3777     nullptr,
  3778     CSS_PROP_NO_OFFSET,
  3779     eStyleAnimType_None)
  3780 CSS_PROP_SVGRESET(
  3781     mask-type,
  3782     mask_type,
  3783     MaskType,
  3784     CSS_PROPERTY_PARSE_VALUE,
  3785     "layout.css.masking.enabled",
  3786     VARIANT_HK,
  3787     kMaskTypeKTable,
  3788     offsetof(nsStyleSVGReset, mMaskType),
  3789     eStyleAnimType_EnumU8)
  3790 CSS_PROP_SVG(
  3791     shape-rendering,
  3792     shape_rendering,
  3793     ShapeRendering,
  3794     CSS_PROPERTY_PARSE_VALUE,
  3795     "",
  3796     VARIANT_HK,
  3797     kShapeRenderingKTable,
  3798     offsetof(nsStyleSVG, mShapeRendering),
  3799     eStyleAnimType_EnumU8)
  3800 CSS_PROP_SVGRESET(
  3801     stop-color,
  3802     stop_color,
  3803     StopColor,
  3804     CSS_PROPERTY_PARSE_VALUE,
  3805     "",
  3806     VARIANT_HC,
  3807     nullptr,
  3808     offsetof(nsStyleSVGReset, mStopColor),
  3809     eStyleAnimType_Color)
  3810 CSS_PROP_SVGRESET(
  3811     stop-opacity,
  3812     stop_opacity,
  3813     StopOpacity,
  3814     CSS_PROPERTY_PARSE_VALUE,
  3815     "",
  3816     VARIANT_HN,
  3817     nullptr,
  3818     offsetof(nsStyleSVGReset, mStopOpacity),
  3819     eStyleAnimType_float)
  3820 CSS_PROP_SVG(
  3821     stroke,
  3822     stroke,
  3823     Stroke,
  3824     CSS_PROPERTY_PARSE_FUNCTION,
  3825     "",
  3826     0,
  3827     kContextPatternKTable,
  3828     offsetof(nsStyleSVG, mStroke),
  3829     eStyleAnimType_PaintServer)
  3830 CSS_PROP_SVG(
  3831     stroke-dasharray,
  3832     stroke_dasharray,
  3833     StrokeDasharray,
  3834     CSS_PROPERTY_PARSE_FUNCTION |
  3835         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  3836         // NOTE: Internal values have range restrictions.
  3837     "",
  3838     0,
  3839     kStrokeContextValueKTable,
  3840     CSS_PROP_NO_OFFSET, /* property stored in 2 separate members */
  3841     eStyleAnimType_Custom)
  3842 CSS_PROP_SVG(
  3843     stroke-dashoffset,
  3844     stroke_dashoffset,
  3845     StrokeDashoffset,
  3846     CSS_PROPERTY_PARSE_VALUE,
  3847     "",
  3848     VARIANT_HLPN | VARIANT_OPENTYPE_SVG_KEYWORD,
  3849     kStrokeContextValueKTable,
  3850     offsetof(nsStyleSVG, mStrokeDashoffset),
  3851     eStyleAnimType_Coord)
  3852 CSS_PROP_SVG(
  3853     stroke-linecap,
  3854     stroke_linecap,
  3855     StrokeLinecap,
  3856     CSS_PROPERTY_PARSE_VALUE,
  3857     "",
  3858     VARIANT_HK,
  3859     kStrokeLinecapKTable,
  3860     offsetof(nsStyleSVG, mStrokeLinecap),
  3861     eStyleAnimType_EnumU8)
  3862 CSS_PROP_SVG(
  3863     stroke-linejoin,
  3864     stroke_linejoin,
  3865     StrokeLinejoin,
  3866     CSS_PROPERTY_PARSE_VALUE,
  3867     "",
  3868     VARIANT_HK,
  3869     kStrokeLinejoinKTable,
  3870     offsetof(nsStyleSVG, mStrokeLinejoin),
  3871     eStyleAnimType_EnumU8)
  3872 CSS_PROP_SVG(
  3873     stroke-miterlimit,
  3874     stroke_miterlimit,
  3875     StrokeMiterlimit,
  3876     CSS_PROPERTY_PARSE_VALUE |
  3877         CSS_PROPERTY_VALUE_AT_LEAST_ONE,
  3878     "",
  3879     VARIANT_HN,
  3880     nullptr,
  3881     offsetof(nsStyleSVG, mStrokeMiterlimit),
  3882     eStyleAnimType_float)
  3883 CSS_PROP_SVG(
  3884     stroke-opacity,
  3885     stroke_opacity,
  3886     StrokeOpacity,
  3887     CSS_PROPERTY_PARSE_VALUE,
  3888     "",
  3889     VARIANT_HN | VARIANT_OPENTYPE_SVG_KEYWORD,
  3890     kContextOpacityKTable,
  3891     offsetof(nsStyleSVG, mStrokeOpacity),
  3892     eStyleAnimType_float)
  3893 CSS_PROP_SVG(
  3894     stroke-width,
  3895     stroke_width,
  3896     StrokeWidth,
  3897     CSS_PROPERTY_PARSE_VALUE |
  3898         CSS_PROPERTY_VALUE_NONNEGATIVE,
  3899     "",
  3900     VARIANT_HLPN | VARIANT_OPENTYPE_SVG_KEYWORD,
  3901     kStrokeContextValueKTable,
  3902     offsetof(nsStyleSVG, mStrokeWidth),
  3903     eStyleAnimType_Coord)
  3904 CSS_PROP_SVG(
  3905     text-anchor,
  3906     text_anchor,
  3907     TextAnchor,
  3908     CSS_PROPERTY_PARSE_VALUE,
  3909     "",
  3910     VARIANT_HK,
  3911     kTextAnchorKTable,
  3912     offsetof(nsStyleSVG, mTextAnchor),
  3913     eStyleAnimType_EnumU8)
  3914 CSS_PROP_SVG(
  3915     text-rendering,
  3916     text_rendering,
  3917     TextRendering,
  3918     CSS_PROPERTY_PARSE_VALUE,
  3919     "",
  3920     VARIANT_HK,
  3921     kTextRenderingKTable,
  3922     offsetof(nsStyleSVG, mTextRendering),
  3923     eStyleAnimType_EnumU8)
  3924 CSS_PROP_SVGRESET(
  3925     vector-effect,
  3926     vector_effect,
  3927     VectorEffect,
  3928     CSS_PROPERTY_PARSE_VALUE,
  3929     "",
  3930     VARIANT_HK,
  3931     kVectorEffectKTable,
  3932     offsetof(nsStyleSVGReset, mVectorEffect),
  3933     eStyleAnimType_EnumU8)
  3935 CSS_PROP_DISPLAY(
  3936     will-change,
  3937     will_change,
  3938     WillChange,
  3939     CSS_PROPERTY_PARSE_FUNCTION |
  3940         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  3941         CSS_PROPERTY_ALWAYS_ENABLED_IN_CHROME_OR_CERTIFIED_APP,
  3942     "layout.css.will-change.enabled",
  3943     0,
  3944     nullptr,
  3945     CSS_PROP_NO_OFFSET,
  3946     eStyleAnimType_None)
  3948 // The shorthands below are essentially aliases, but they require different
  3949 // parsing rules, and are therefore implemented as shorthands.
  3950 CSS_PROP_SHORTHAND(
  3951     -moz-transform,
  3952     _moz_transform,
  3953     MozTransform,
  3954     CSS_PROPERTY_PARSE_FUNCTION |
  3955         CSS_PROPERTY_IS_ALIAS,
  3956     "layout.css.prefixes.transforms")
  3958 #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  3959 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  3960 // We have a few properties that are in style structs but are not stored
  3961 // in style sheets (or nsCSS* structs).  Some fields in these property
  3962 // definitions are bogus (e.g., they work for nsRuleData* offsets but
  3963 // not nsCSS* offsets).  Callers that care about these bogus fields can
  3964 // define CSS_PROP_STUB_NOT_CSS to define a replacement for these
  3965 // entries.
  3966 #ifdef CSS_PROP_STUB_NOT_CSS
  3967 CSS_PROP_STUB_NOT_CSS
  3968 CSS_PROP_STUB_NOT_CSS
  3969 #else
  3970 CSS_PROP_FONT(
  3971     -x-lang,
  3972     _x_lang,
  3973     Lang,
  3974     CSS_PROPERTY_PARSE_INACCESSIBLE,
  3975     "",
  3976     0,
  3977     nullptr,
  3978     CSS_PROP_NO_OFFSET,
  3979     eStyleAnimType_None)
  3980 CSS_PROP_TABLE(
  3981     -x-span,
  3982     _x_span,
  3983     Span,
  3984     CSS_PROPERTY_PARSE_INACCESSIBLE,
  3985     "",
  3986     0,
  3987     nullptr,
  3988     CSS_PROP_NO_OFFSET,
  3989     eStyleAnimType_None)
  3990 CSS_PROP_FONT(
  3991     -x-text-zoom,
  3992     _x_text_zoom,
  3993     TextZoom,
  3994     CSS_PROPERTY_PARSE_INACCESSIBLE,
  3995     "",
  3996     0,
  3997     nullptr,
  3998     CSS_PROP_NO_OFFSET,
  3999     eStyleAnimType_None)
  4000 #endif /* !defined(CSS_PROP_STUB_NOT_CSS) */
  4001 #endif /* !defined(CSS_PROP_LIST_EXCLUDE_INTERNAL) */
  4002 #endif /* !defined(CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND) */
  4004 #ifdef USED_CSS_PROP
  4006 #undef USED_CSS_PROP
  4007 #undef CSS_PROP_FONT
  4008 #undef CSS_PROP_COLOR
  4009 #undef CSS_PROP_BACKGROUND
  4010 #undef CSS_PROP_LIST
  4011 #undef CSS_PROP_POSITION
  4012 #undef CSS_PROP_TEXT
  4013 #undef CSS_PROP_TEXTRESET
  4014 #undef CSS_PROP_DISPLAY
  4015 #undef CSS_PROP_VISIBILITY
  4016 #undef CSS_PROP_CONTENT
  4017 #undef CSS_PROP_QUOTES
  4018 #undef CSS_PROP_USERINTERFACE
  4019 #undef CSS_PROP_UIRESET
  4020 #undef CSS_PROP_TABLE
  4021 #undef CSS_PROP_TABLEBORDER
  4022 #undef CSS_PROP_MARGIN
  4023 #undef CSS_PROP_PADDING
  4024 #undef CSS_PROP_BORDER
  4025 #undef CSS_PROP_OUTLINE
  4026 #undef CSS_PROP_XUL
  4027 #undef CSS_PROP_COLUMN
  4028 #undef CSS_PROP_SVG
  4029 #undef CSS_PROP_SVGRESET
  4030 #undef CSS_PROP_VARIABLES
  4031 #ifdef DEFINED_CSS_PROP_BACKENDONLY
  4032 #undef CSS_PROP_BACKENDONLY
  4033 #undef DEFINED_CSS_PROP_BACKENDONLY
  4034 #endif
  4036 #else /* !defined(USED_CSS_PROP) */
  4038 #ifdef DEFINED_CSS_PROP_FONT
  4039 #undef CSS_PROP_FONT
  4040 #undef DEFINED_CSS_PROP_FONT
  4041 #endif
  4042 #ifdef DEFINED_CSS_PROP_COLOR
  4043 #undef CSS_PROP_COLOR
  4044 #undef DEFINED_CSS_PROP_COLOR
  4045 #endif
  4046 #ifdef DEFINED_CSS_PROP_BACKGROUND
  4047 #undef CSS_PROP_BACKGROUND
  4048 #undef DEFINED_CSS_PROP_BACKGROUND
  4049 #endif
  4050 #ifdef DEFINED_CSS_PROP_LIST
  4051 #undef CSS_PROP_LIST
  4052 #undef DEFINED_CSS_PROP_LIST
  4053 #endif
  4054 #ifdef DEFINED_CSS_PROP_POSITION
  4055 #undef CSS_PROP_POSITION
  4056 #undef DEFINED_CSS_PROP_POSITION
  4057 #endif
  4058 #ifdef DEFINED_CSS_PROP_TEXT
  4059 #undef CSS_PROP_TEXT
  4060 #undef DEFINED_CSS_PROP_TETEXTRESETT
  4061 #endif
  4062 #ifdef DEFINED_CSS_PROP_TEXTRESET
  4063 #undef CSS_PROP_TEXTRESET
  4064 #undef DEFINED_CSS_PROP_TEDISPLAYTRESET
  4065 #endif
  4066 #ifdef DEFINED_CSS_PROP_DISPLAY
  4067 #undef CSS_PROP_DISPLAY
  4068 #undef DEFINED_CSS_PROP_DISPLAY
  4069 #endif
  4070 #ifdef DEFINED_CSS_PROP_VISIBILITY
  4071 #undef CSS_PROP_VISIBILITY
  4072 #undef DEFINED_CSS_PROP_VISIBILITY
  4073 #endif
  4074 #ifdef DEFINED_CSS_PROP_CONTENT
  4075 #undef CSS_PROP_CONTENT
  4076 #undef DEFINED_CSS_PROP_CONTENT
  4077 #endif
  4078 #ifdef DEFINED_CSS_PROP_QUOTES
  4079 #undef CSS_PROP_QUOTES
  4080 #undef DEFINED_CSS_PROP_QUOTES
  4081 #endif
  4082 #ifdef DEFINED_CSS_PROP_USERINTERFACE
  4083 #undef CSS_PROP_USERINTERFACE
  4084 #undef DEFINED_CSS_PROP_USERINTERFACE
  4085 #endif
  4086 #ifdef DEFINED_CSS_PROP_UIRESET
  4087 #undef CSS_PROP_UIRESET
  4088 #undef DEFINED_CSS_PROP_UIRESET
  4089 #endif
  4090 #ifdef DEFINED_CSS_PROP_TABLE
  4091 #undef CSS_PROP_TABLE
  4092 #undef DEFINED_CSS_PROP_TABLE
  4093 #endif
  4094 #ifdef DEFINED_CSS_PROP_TABLEBORDER
  4095 #undef CSS_PROP_TABLEBORDER
  4096 #undef DEFINED_CSS_PROP_TABLEBORDER
  4097 #endif
  4098 #ifdef DEFINED_CSS_PROP_MARGIN
  4099 #undef CSS_PROP_MARGIN
  4100 #undef DEFINED_CSS_PROP_MARGIN
  4101 #endif
  4102 #ifdef DEFINED_CSS_PROP_PADDING
  4103 #undef CSS_PROP_PADDING
  4104 #undef DEFINED_CSS_PROP_PADDING
  4105 #endif
  4106 #ifdef DEFINED_CSS_PROP_BORDER
  4107 #undef CSS_PROP_BORDER
  4108 #undef DEFINED_CSS_PROP_BORDER
  4109 #endif
  4110 #ifdef DEFINED_CSS_PROP_OUTLINE
  4111 #undef CSS_PROP_OUTLINE
  4112 #undef DEFINED_CSS_PROP_OUTLINE
  4113 #endif
  4114 #ifdef DEFINED_CSS_PROP_XUL
  4115 #undef CSS_PROP_XUL
  4116 #undef DEFINED_CSS_PROP_XUL
  4117 #endif
  4118 #ifdef DEFINED_CSS_PROP_COLUMN
  4119 #undef CSS_PROP_COLUMN
  4120 #undef DEFINED_CSS_PROP_COLUMN
  4121 #endif
  4122 #ifdef DEFINED_CSS_PROP_SVG
  4123 #undef CSS_PROP_SVG
  4124 #undef DEFINED_CSS_PROP_SVG
  4125 #endif
  4126 #ifdef DEFINED_CSS_PROP_SVGRESET
  4127 #undef CSS_PROP_SVGRESET
  4128 #undef DEFINED_CSS_PROP_SVGRESET
  4129 #endif
  4130 #ifdef DEFINED_CSS_PROP_VARIABLES
  4131 #undef CSS_PROP_VARIABLES
  4132 #undef DEFINED_CSS_PROP_VARIABLES
  4133 #endif
  4134 #ifdef DEFINED_CSS_PROP_BACKENDONLY
  4135 #undef CSS_PROP_BACKENDONLY
  4136 #undef DEFINED_CSS_PROP_BACKENDONLY
  4137 #endif
  4139 #endif /* !defined(USED_CSS_PROP) */
  4141 #ifdef DEFINED_CSS_PROP_SHORTHAND
  4142 #undef CSS_PROP_SHORTHAND
  4143 #undef DEFINED_CSS_PROP_SHORTHAND
  4144 #endif
  4146 #undef CSS_PROP_DOMPROP_PREFIXED

mercurial