Thu, 15 Jan 2015 21:03:48 +0100
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