1/* This file is automatically generated from CSSProperties.json by makeprop, do not edit */
2
3#pragma once
4
5#include <string.h>
6#include <wtf/Forward.h>
7#include <wtf/HashFunctions.h>
8#include <wtf/HashTraits.h>
9
10namespace WebCore {
11
12enum CSSPropertyID : uint16_t {
13 CSSPropertyInvalid = 0,
14 CSSPropertyCustom = 1,
15 CSSPropertyColor = 2,
16 CSSPropertyColorScheme = 3,
17 CSSPropertyDirection = 4,
18 CSSPropertyDisplay = 5,
19 CSSPropertyFontFamily = 6,
20 CSSPropertyFontFeatureSettings = 7,
21 CSSPropertyFontOpticalSizing = 8,
22 CSSPropertyFontSize = 9,
23 CSSPropertyFontStretch = 10,
24 CSSPropertyFontStyle = 11,
25 CSSPropertyFontSynthesis = 12,
26 CSSPropertyFontVariantAlternates = 13,
27 CSSPropertyFontVariantCaps = 14,
28 CSSPropertyFontVariantEastAsian = 15,
29 CSSPropertyFontVariantLigatures = 16,
30 CSSPropertyFontVariantNumeric = 17,
31 CSSPropertyFontVariantPosition = 18,
32 CSSPropertyFontVariationSettings = 19,
33 CSSPropertyFontWeight = 20,
34 CSSPropertyTextRendering = 21,
35 CSSPropertyWritingMode = 22,
36 CSSPropertyZoom = 23,
37 CSSPropertyWebkitFontKerning = 24,
38 CSSPropertyWebkitFontSmoothing = 25,
39 CSSPropertyWebkitLocale = 26,
40 CSSPropertyWebkitTextOrientation = 27,
41 CSSPropertyWebkitTextZoom = 28,
42 CSSPropertyAlignContent = 29,
43 CSSPropertyAlignItems = 30,
44 CSSPropertyAlignSelf = 31,
45 CSSPropertyAlignmentBaseline = 32,
46 CSSPropertyAll = 33,
47 CSSPropertyAlt = 34,
48 CSSPropertyAnimation = 35,
49 CSSPropertyAnimationDelay = 36,
50 CSSPropertyAnimationDirection = 37,
51 CSSPropertyAnimationDuration = 38,
52 CSSPropertyAnimationFillMode = 39,
53 CSSPropertyAnimationIterationCount = 40,
54 CSSPropertyAnimationName = 41,
55 CSSPropertyAnimationPlayState = 42,
56 CSSPropertyAnimationTimingFunction = 43,
57 CSSPropertyBackground = 44,
58 CSSPropertyBackgroundAttachment = 45,
59 CSSPropertyBackgroundBlendMode = 46,
60 CSSPropertyBackgroundClip = 47,
61 CSSPropertyBackgroundColor = 48,
62 CSSPropertyBackgroundImage = 49,
63 CSSPropertyBackgroundOrigin = 50,
64 CSSPropertyBackgroundPosition = 51,
65 CSSPropertyBackgroundPositionX = 52,
66 CSSPropertyBackgroundPositionY = 53,
67 CSSPropertyBackgroundRepeat = 54,
68 CSSPropertyBackgroundRepeatX = 55,
69 CSSPropertyBackgroundRepeatY = 56,
70 CSSPropertyBackgroundSize = 57,
71 CSSPropertyBaselineShift = 58,
72 CSSPropertyBlockSize = 59,
73 CSSPropertyBorder = 60,
74 CSSPropertyBorderBlock = 61,
75 CSSPropertyBorderBlockColor = 62,
76 CSSPropertyBorderBlockEnd = 63,
77 CSSPropertyBorderBlockEndColor = 64,
78 CSSPropertyBorderBlockEndStyle = 65,
79 CSSPropertyBorderBlockEndWidth = 66,
80 CSSPropertyBorderBlockStart = 67,
81 CSSPropertyBorderBlockStartColor = 68,
82 CSSPropertyBorderBlockStartStyle = 69,
83 CSSPropertyBorderBlockStartWidth = 70,
84 CSSPropertyBorderBlockStyle = 71,
85 CSSPropertyBorderBlockWidth = 72,
86 CSSPropertyBorderBottom = 73,
87 CSSPropertyBorderBottomColor = 74,
88 CSSPropertyBorderBottomLeftRadius = 75,
89 CSSPropertyBorderBottomRightRadius = 76,
90 CSSPropertyBorderBottomStyle = 77,
91 CSSPropertyBorderBottomWidth = 78,
92 CSSPropertyBorderCollapse = 79,
93 CSSPropertyBorderColor = 80,
94 CSSPropertyBorderImage = 81,
95 CSSPropertyBorderImageOutset = 82,
96 CSSPropertyBorderImageRepeat = 83,
97 CSSPropertyBorderImageSlice = 84,
98 CSSPropertyBorderImageSource = 85,
99 CSSPropertyBorderImageWidth = 86,
100 CSSPropertyBorderInline = 87,
101 CSSPropertyBorderInlineColor = 88,
102 CSSPropertyBorderInlineEnd = 89,
103 CSSPropertyBorderInlineEndColor = 90,
104 CSSPropertyBorderInlineEndStyle = 91,
105 CSSPropertyBorderInlineEndWidth = 92,
106 CSSPropertyBorderInlineStart = 93,
107 CSSPropertyBorderInlineStartColor = 94,
108 CSSPropertyBorderInlineStartStyle = 95,
109 CSSPropertyBorderInlineStartWidth = 96,
110 CSSPropertyBorderInlineStyle = 97,
111 CSSPropertyBorderInlineWidth = 98,
112 CSSPropertyBorderLeft = 99,
113 CSSPropertyBorderLeftColor = 100,
114 CSSPropertyBorderLeftStyle = 101,
115 CSSPropertyBorderLeftWidth = 102,
116 CSSPropertyBorderRadius = 103,
117 CSSPropertyBorderRight = 104,
118 CSSPropertyBorderRightColor = 105,
119 CSSPropertyBorderRightStyle = 106,
120 CSSPropertyBorderRightWidth = 107,
121 CSSPropertyBorderSpacing = 108,
122 CSSPropertyBorderStyle = 109,
123 CSSPropertyBorderTop = 110,
124 CSSPropertyBorderTopColor = 111,
125 CSSPropertyBorderTopLeftRadius = 112,
126 CSSPropertyBorderTopRightRadius = 113,
127 CSSPropertyBorderTopStyle = 114,
128 CSSPropertyBorderTopWidth = 115,
129 CSSPropertyBorderWidth = 116,
130 CSSPropertyBottom = 117,
131 CSSPropertyBoxShadow = 118,
132 CSSPropertyBoxSizing = 119,
133 CSSPropertyBreakAfter = 120,
134 CSSPropertyBreakBefore = 121,
135 CSSPropertyBreakInside = 122,
136 CSSPropertyBufferedRendering = 123,
137 CSSPropertyCaptionSide = 124,
138 CSSPropertyCaretColor = 125,
139 CSSPropertyClear = 126,
140 CSSPropertyClip = 127,
141 CSSPropertyClipPath = 128,
142 CSSPropertyClipRule = 129,
143 CSSPropertyColorInterpolation = 130,
144 CSSPropertyColorInterpolationFilters = 131,
145 CSSPropertyColorProfile = 132,
146 CSSPropertyColorRendering = 133,
147 CSSPropertyColumnCount = 134,
148 CSSPropertyColumnFill = 135,
149 CSSPropertyColumnGap = 136,
150 CSSPropertyColumnRule = 137,
151 CSSPropertyColumnRuleColor = 138,
152 CSSPropertyColumnRuleStyle = 139,
153 CSSPropertyColumnRuleWidth = 140,
154 CSSPropertyColumnSpan = 141,
155 CSSPropertyColumnWidth = 142,
156 CSSPropertyColumns = 143,
157 CSSPropertyContent = 144,
158 CSSPropertyCounterIncrement = 145,
159 CSSPropertyCounterReset = 146,
160 CSSPropertyCursor = 147,
161 CSSPropertyCx = 148,
162 CSSPropertyCy = 149,
163 CSSPropertyDominantBaseline = 150,
164 CSSPropertyEmptyCells = 151,
165 CSSPropertyEnableBackground = 152,
166 CSSPropertyFill = 153,
167 CSSPropertyFillOpacity = 154,
168 CSSPropertyFillRule = 155,
169 CSSPropertyFilter = 156,
170 CSSPropertyFlex = 157,
171 CSSPropertyFlexBasis = 158,
172 CSSPropertyFlexDirection = 159,
173 CSSPropertyFlexFlow = 160,
174 CSSPropertyFlexGrow = 161,
175 CSSPropertyFlexShrink = 162,
176 CSSPropertyFlexWrap = 163,
177 CSSPropertyFloat = 164,
178 CSSPropertyFloodColor = 165,
179 CSSPropertyFloodOpacity = 166,
180 CSSPropertyFont = 167,
181 CSSPropertyFontDisplay = 168,
182 CSSPropertyFontVariant = 169,
183 CSSPropertyGap = 170,
184 CSSPropertyGlyphOrientationHorizontal = 171,
185 CSSPropertyGlyphOrientationVertical = 172,
186 CSSPropertyGrid = 173,
187 CSSPropertyGridArea = 174,
188 CSSPropertyGridAutoColumns = 175,
189 CSSPropertyGridAutoFlow = 176,
190 CSSPropertyGridAutoRows = 177,
191 CSSPropertyGridColumn = 178,
192 CSSPropertyGridColumnEnd = 179,
193 CSSPropertyGridColumnStart = 180,
194 CSSPropertyGridRow = 181,
195 CSSPropertyGridRowEnd = 182,
196 CSSPropertyGridRowStart = 183,
197 CSSPropertyGridTemplate = 184,
198 CSSPropertyGridTemplateAreas = 185,
199 CSSPropertyGridTemplateColumns = 186,
200 CSSPropertyGridTemplateRows = 187,
201 CSSPropertyHangingPunctuation = 188,
202 CSSPropertyHeight = 189,
203 CSSPropertyImageRendering = 190,
204 CSSPropertyInlineSize = 191,
205 CSSPropertyInset = 192,
206 CSSPropertyInsetBlock = 193,
207 CSSPropertyInsetBlockEnd = 194,
208 CSSPropertyInsetBlockStart = 195,
209 CSSPropertyInsetInline = 196,
210 CSSPropertyInsetInlineEnd = 197,
211 CSSPropertyInsetInlineStart = 198,
212 CSSPropertyJustifyContent = 199,
213 CSSPropertyJustifyItems = 200,
214 CSSPropertyJustifySelf = 201,
215 CSSPropertyKerning = 202,
216 CSSPropertyLeft = 203,
217 CSSPropertyLetterSpacing = 204,
218 CSSPropertyLightingColor = 205,
219 CSSPropertyLineBreak = 206,
220 CSSPropertyLineHeight = 207,
221 CSSPropertyListStyle = 208,
222 CSSPropertyListStyleImage = 209,
223 CSSPropertyListStylePosition = 210,
224 CSSPropertyListStyleType = 211,
225 CSSPropertyMargin = 212,
226 CSSPropertyMarginBlock = 213,
227 CSSPropertyMarginBlockEnd = 214,
228 CSSPropertyMarginBlockStart = 215,
229 CSSPropertyMarginBottom = 216,
230 CSSPropertyMarginInline = 217,
231 CSSPropertyMarginInlineEnd = 218,
232 CSSPropertyMarginInlineStart = 219,
233 CSSPropertyMarginLeft = 220,
234 CSSPropertyMarginRight = 221,
235 CSSPropertyMarginTop = 222,
236 CSSPropertyMarker = 223,
237 CSSPropertyMarkerEnd = 224,
238 CSSPropertyMarkerMid = 225,
239 CSSPropertyMarkerStart = 226,
240 CSSPropertyMask = 227,
241 CSSPropertyMaskType = 228,
242 CSSPropertyMaxBlockSize = 229,
243 CSSPropertyMaxHeight = 230,
244 CSSPropertyMaxInlineSize = 231,
245 CSSPropertyMaxWidth = 232,
246 CSSPropertyMinBlockSize = 233,
247 CSSPropertyMinHeight = 234,
248 CSSPropertyMinInlineSize = 235,
249 CSSPropertyMinWidth = 236,
250 CSSPropertyObjectFit = 237,
251 CSSPropertyObjectPosition = 238,
252 CSSPropertyOpacity = 239,
253 CSSPropertyOrder = 240,
254 CSSPropertyOrphans = 241,
255 CSSPropertyOutline = 242,
256 CSSPropertyOutlineColor = 243,
257 CSSPropertyOutlineOffset = 244,
258 CSSPropertyOutlineStyle = 245,
259 CSSPropertyOutlineWidth = 246,
260 CSSPropertyOverflow = 247,
261 CSSPropertyOverflowWrap = 248,
262 CSSPropertyOverflowX = 249,
263 CSSPropertyOverflowY = 250,
264 CSSPropertyPadding = 251,
265 CSSPropertyPaddingBlock = 252,
266 CSSPropertyPaddingBlockEnd = 253,
267 CSSPropertyPaddingBlockStart = 254,
268 CSSPropertyPaddingBottom = 255,
269 CSSPropertyPaddingInline = 256,
270 CSSPropertyPaddingInlineEnd = 257,
271 CSSPropertyPaddingInlineStart = 258,
272 CSSPropertyPaddingLeft = 259,
273 CSSPropertyPaddingRight = 260,
274 CSSPropertyPaddingTop = 261,
275 CSSPropertyPage = 262,
276 CSSPropertyPageBreakAfter = 263,
277 CSSPropertyPageBreakBefore = 264,
278 CSSPropertyPageBreakInside = 265,
279 CSSPropertyPaintOrder = 266,
280 CSSPropertyPerspective = 267,
281 CSSPropertyPerspectiveOrigin = 268,
282 CSSPropertyPerspectiveOriginX = 269,
283 CSSPropertyPerspectiveOriginY = 270,
284 CSSPropertyPlaceContent = 271,
285 CSSPropertyPlaceItems = 272,
286 CSSPropertyPlaceSelf = 273,
287 CSSPropertyPointerEvents = 274,
288 CSSPropertyPosition = 275,
289 CSSPropertyQuotes = 276,
290 CSSPropertyR = 277,
291 CSSPropertyResize = 278,
292 CSSPropertyRight = 279,
293 CSSPropertyRowGap = 280,
294 CSSPropertyRx = 281,
295 CSSPropertyRy = 282,
296 CSSPropertyShapeImageThreshold = 283,
297 CSSPropertyShapeMargin = 284,
298 CSSPropertyShapeOutside = 285,
299 CSSPropertyShapeRendering = 286,
300 CSSPropertySize = 287,
301 CSSPropertySpeakAs = 288,
302 CSSPropertySrc = 289,
303 CSSPropertyStopColor = 290,
304 CSSPropertyStopOpacity = 291,
305 CSSPropertyStroke = 292,
306 CSSPropertyStrokeColor = 293,
307 CSSPropertyStrokeDasharray = 294,
308 CSSPropertyStrokeDashoffset = 295,
309 CSSPropertyStrokeLinecap = 296,
310 CSSPropertyStrokeLinejoin = 297,
311 CSSPropertyStrokeMiterlimit = 298,
312 CSSPropertyStrokeOpacity = 299,
313 CSSPropertyStrokeWidth = 300,
314 CSSPropertyTabSize = 301,
315 CSSPropertyTableLayout = 302,
316 CSSPropertyTextAlign = 303,
317 CSSPropertyTextAnchor = 304,
318 CSSPropertyTextDecoration = 305,
319 CSSPropertyTextDecorationColor = 306,
320 CSSPropertyTextDecorationLine = 307,
321 CSSPropertyTextDecorationSkip = 308,
322 CSSPropertyTextDecorationStyle = 309,
323 CSSPropertyTextDecorationThickness = 310,
324 CSSPropertyTextIndent = 311,
325 CSSPropertyTextOverflow = 312,
326 CSSPropertyTextShadow = 313,
327 CSSPropertyTextTransform = 314,
328 CSSPropertyTextUnderlineOffset = 315,
329 CSSPropertyTextUnderlinePosition = 316,
330 CSSPropertyTop = 317,
331 CSSPropertyTransform = 318,
332 CSSPropertyTransformBox = 319,
333 CSSPropertyTransformOrigin = 320,
334 CSSPropertyTransformOriginX = 321,
335 CSSPropertyTransformOriginY = 322,
336 CSSPropertyTransformOriginZ = 323,
337 CSSPropertyTransformStyle = 324,
338 CSSPropertyTransition = 325,
339 CSSPropertyTransitionDelay = 326,
340 CSSPropertyTransitionDuration = 327,
341 CSSPropertyTransitionProperty = 328,
342 CSSPropertyTransitionTimingFunction = 329,
343 CSSPropertyUnicodeBidi = 330,
344 CSSPropertyUnicodeRange = 331,
345 CSSPropertyVectorEffect = 332,
346 CSSPropertyVerticalAlign = 333,
347 CSSPropertyVisibility = 334,
348 CSSPropertyWhiteSpace = 335,
349 CSSPropertyWidows = 336,
350 CSSPropertyWidth = 337,
351 CSSPropertyWillChange = 338,
352 CSSPropertyWordBreak = 339,
353 CSSPropertyWordSpacing = 340,
354 CSSPropertyWordWrap = 341,
355 CSSPropertyX = 342,
356 CSSPropertyY = 343,
357 CSSPropertyZIndex = 344,
358 CSSPropertyAppleColorFilter = 345,
359 CSSPropertyWebkitAppearance = 346,
360 CSSPropertyWebkitAspectRatio = 347,
361 CSSPropertyWebkitBackfaceVisibility = 348,
362 CSSPropertyWebkitBackgroundClip = 349,
363 CSSPropertyWebkitBackgroundComposite = 350,
364 CSSPropertyWebkitBackgroundOrigin = 351,
365 CSSPropertyWebkitBackgroundSize = 352,
366 CSSPropertyWebkitBorderFit = 353,
367 CSSPropertyWebkitBorderHorizontalSpacing = 354,
368 CSSPropertyWebkitBorderImage = 355,
369 CSSPropertyWebkitBorderRadius = 356,
370 CSSPropertyWebkitBorderVerticalSpacing = 357,
371 CSSPropertyWebkitBoxAlign = 358,
372 CSSPropertyWebkitBoxDecorationBreak = 359,
373 CSSPropertyWebkitBoxDirection = 360,
374 CSSPropertyWebkitBoxFlex = 361,
375 CSSPropertyWebkitBoxFlexGroup = 362,
376 CSSPropertyWebkitBoxLines = 363,
377 CSSPropertyWebkitBoxOrdinalGroup = 364,
378 CSSPropertyWebkitBoxOrient = 365,
379 CSSPropertyWebkitBoxPack = 366,
380 CSSPropertyWebkitBoxReflect = 367,
381 CSSPropertyWebkitBoxShadow = 368,
382 CSSPropertyWebkitClipPath = 369,
383 CSSPropertyWebkitColumnAxis = 370,
384 CSSPropertyWebkitColumnBreakAfter = 371,
385 CSSPropertyWebkitColumnBreakBefore = 372,
386 CSSPropertyWebkitColumnBreakInside = 373,
387 CSSPropertyWebkitColumnProgression = 374,
388 CSSPropertyWebkitFontSizeDelta = 375,
389 CSSPropertyWebkitHyphenateCharacter = 376,
390 CSSPropertyWebkitHyphenateLimitAfter = 377,
391 CSSPropertyWebkitHyphenateLimitBefore = 378,
392 CSSPropertyWebkitHyphenateLimitLines = 379,
393 CSSPropertyWebkitHyphens = 380,
394 CSSPropertyWebkitInitialLetter = 381,
395 CSSPropertyWebkitLineAlign = 382,
396 CSSPropertyWebkitLineBoxContain = 383,
397 CSSPropertyWebkitLineClamp = 384,
398 CSSPropertyWebkitLineGrid = 385,
399 CSSPropertyWebkitLineSnap = 386,
400 CSSPropertyWebkitMarginAfterCollapse = 387,
401 CSSPropertyWebkitMarginBeforeCollapse = 388,
402 CSSPropertyWebkitMarginBottomCollapse = 389,
403 CSSPropertyWebkitMarginCollapse = 390,
404 CSSPropertyWebkitMarginTopCollapse = 391,
405 CSSPropertyWebkitMarquee = 392,
406 CSSPropertyWebkitMarqueeDirection = 393,
407 CSSPropertyWebkitMarqueeIncrement = 394,
408 CSSPropertyWebkitMarqueeRepetition = 395,
409 CSSPropertyWebkitMarqueeSpeed = 396,
410 CSSPropertyWebkitMarqueeStyle = 397,
411 CSSPropertyWebkitMask = 398,
412 CSSPropertyWebkitMaskBoxImage = 399,
413 CSSPropertyWebkitMaskBoxImageOutset = 400,
414 CSSPropertyWebkitMaskBoxImageRepeat = 401,
415 CSSPropertyWebkitMaskBoxImageSlice = 402,
416 CSSPropertyWebkitMaskBoxImageSource = 403,
417 CSSPropertyWebkitMaskBoxImageWidth = 404,
418 CSSPropertyWebkitMaskClip = 405,
419 CSSPropertyWebkitMaskComposite = 406,
420 CSSPropertyWebkitMaskImage = 407,
421 CSSPropertyWebkitMaskOrigin = 408,
422 CSSPropertyWebkitMaskPosition = 409,
423 CSSPropertyWebkitMaskPositionX = 410,
424 CSSPropertyWebkitMaskPositionY = 411,
425 CSSPropertyWebkitMaskRepeat = 412,
426 CSSPropertyWebkitMaskRepeatX = 413,
427 CSSPropertyWebkitMaskRepeatY = 414,
428 CSSPropertyWebkitMaskSize = 415,
429 CSSPropertyWebkitMaskSourceType = 416,
430 CSSPropertyWebkitNbspMode = 417,
431 CSSPropertyWebkitPrintColorAdjust = 418,
432 CSSPropertyWebkitRtlOrdering = 419,
433 CSSPropertyWebkitRubyPosition = 420,
434 CSSPropertyWebkitTapHighlightColor = 421,
435 CSSPropertyWebkitTextCombine = 422,
436 CSSPropertyWebkitTextDecoration = 423,
437 CSSPropertyWebkitTextDecorationsInEffect = 424,
438 CSSPropertyWebkitTextEmphasis = 425,
439 CSSPropertyWebkitTextEmphasisColor = 426,
440 CSSPropertyWebkitTextEmphasisPosition = 427,
441 CSSPropertyWebkitTextEmphasisStyle = 428,
442 CSSPropertyWebkitTextFillColor = 429,
443 CSSPropertyWebkitTextSecurity = 430,
444 CSSPropertyWebkitTextStroke = 431,
445 CSSPropertyWebkitTextStrokeColor = 432,
446 CSSPropertyWebkitTextStrokeWidth = 433,
447 CSSPropertyWebkitTransformStyle = 434,
448 CSSPropertyWebkitUserDrag = 435,
449 CSSPropertyWebkitUserModify = 436,
450 CSSPropertyWebkitUserSelect = 437,
451};
452
453const int firstCSSProperty = 2;
454const int numCSSProperties = 436;
455const int lastCSSProperty = 437;
456const size_t maxCSSPropertyNameLength = 34;
457const CSSPropertyID lastHighPriorityProperty = CSSPropertyWebkitTextZoom;
458
459bool isInternalCSSProperty(const CSSPropertyID);
460bool isEnabledCSSProperty(const CSSPropertyID);
461const char* getPropertyName(CSSPropertyID);
462const WTF::AtomString& getPropertyNameAtomString(CSSPropertyID id);
463WTF::String getPropertyNameString(CSSPropertyID id);
464WTF::String getJSPropertyName(CSSPropertyID);
465
466inline CSSPropertyID convertToCSSPropertyID(int value)
467{
468 ASSERT((value >= firstCSSProperty && value <= lastCSSProperty) || value == CSSPropertyInvalid || value == CSSPropertyCustom);
469 return static_cast<CSSPropertyID>(value);
470}
471
472} // namespace WebCore
473
474namespace WTF {
475template<> struct DefaultHash<WebCore::CSSPropertyID> { typedef IntHash<unsigned> Hash; };
476template<> struct HashTraits<WebCore::CSSPropertyID> : GenericHashTraits<WebCore::CSSPropertyID> {
477 static const bool emptyValueIsZero = true;
478 static void constructDeletedValue(WebCore::CSSPropertyID& slot) { slot = static_cast<WebCore::CSSPropertyID>(WebCore::lastCSSProperty + 1); }
479 static bool isDeletedValue(WebCore::CSSPropertyID value) { return value == (WebCore::lastCSSProperty + 1); }
480};
481} // namespace WTF
482
483