2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc.
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
15 * You should have received a copy of the GNU Library General Public License
16 * along with this library; see the file COPYING.LIB. If not, write to
17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
22 #include "CSSProperty.h"
24 #include "CSSPropertyNames.h"
25 #include "PlatformString.h"
26 #include "RenderStyleConstants.h"
30 String CSSProperty::cssText() const
32 return String(getPropertyName(static_cast<CSSPropertyID>(id()))) + ": " + m_value->cssText() + (isImportant() ? " !important" : "") + "; ";
35 enum LogicalBoxSide { BeforeSide, EndSide, AfterSide, StartSide };
36 enum PhysicalBoxSide { TopSide, RightSide, BottomSide, LeftSide };
38 static int resolveToPhysicalProperty(TextDirection direction, WritingMode writingMode, LogicalBoxSide logicalSide, const int* properties)
40 if (direction == LTR) {
41 if (writingMode == TopToBottomWritingMode) {
42 // The common case. The logical and physical box sides match.
43 // Left = Start, Right = End, Before = Top, After = Bottom
44 return properties[logicalSide];
47 if (writingMode == BottomToTopWritingMode) {
48 // Start = Left, End = Right, Before = Bottom, After = Top.
49 switch (logicalSide) {
51 return properties[LeftSide];
53 return properties[RightSide];
55 return properties[BottomSide];
57 return properties[TopSide];
61 if (writingMode == LeftToRightWritingMode) {
62 // Start = Top, End = Bottom, Before = Left, After = Right.
63 switch (logicalSide) {
65 return properties[TopSide];
67 return properties[BottomSide];
69 return properties[LeftSide];
71 return properties[RightSide];
75 // Start = Top, End = Bottom, Before = Right, After = Left
76 switch (logicalSide) {
78 return properties[TopSide];
80 return properties[BottomSide];
82 return properties[RightSide];
84 return properties[LeftSide];
88 if (writingMode == TopToBottomWritingMode) {
89 // Start = Right, End = Left, Before = Top, After = Bottom
90 switch (logicalSide) {
92 return properties[RightSide];
94 return properties[LeftSide];
96 return properties[TopSide];
98 return properties[BottomSide];
102 if (writingMode == BottomToTopWritingMode) {
103 // Start = Right, End = Left, Before = Bottom, After = Top
104 switch (logicalSide) {
106 return properties[RightSide];
108 return properties[LeftSide];
110 return properties[BottomSide];
112 return properties[TopSide];
116 if (writingMode == LeftToRightWritingMode) {
117 // Start = Bottom, End = Top, Before = Left, After = Right
118 switch (logicalSide) {
120 return properties[BottomSide];
122 return properties[TopSide];
124 return properties[LeftSide];
126 return properties[RightSide];
130 // Start = Bottom, End = Top, Before = Right, After = Left
131 switch (logicalSide) {
133 return properties[BottomSide];
135 return properties[TopSide];
137 return properties[RightSide];
139 return properties[LeftSide];
143 enum LogicalExtent { LogicalWidth, LogicalHeight };
145 static int resolveToPhysicalProperty(WritingMode writingMode, LogicalExtent logicalSide, const int* properties)
147 if (writingMode == TopToBottomWritingMode || writingMode == BottomToTopWritingMode)
148 return properties[logicalSide];
149 return logicalSide == LogicalWidth ? properties[1] : properties[0];
152 int CSSProperty::resolveDirectionAwareProperty(int propertyID, TextDirection direction, WritingMode writingMode)
154 switch (static_cast<CSSPropertyID>(propertyID)) {
155 case CSSPropertyWebkitMarginEnd: {
156 const int properties[4] = { CSSPropertyMarginTop, CSSPropertyMarginRight, CSSPropertyMarginBottom, CSSPropertyMarginLeft };
157 return resolveToPhysicalProperty(direction, writingMode, EndSide, properties);
159 case CSSPropertyWebkitMarginStart: {
160 const int properties[4] = { CSSPropertyMarginTop, CSSPropertyMarginRight, CSSPropertyMarginBottom, CSSPropertyMarginLeft };
161 return resolveToPhysicalProperty(direction, writingMode, StartSide, properties);
163 case CSSPropertyWebkitMarginBefore: {
164 const int properties[4] = { CSSPropertyMarginTop, CSSPropertyMarginRight, CSSPropertyMarginBottom, CSSPropertyMarginLeft };
165 return resolveToPhysicalProperty(direction, writingMode, BeforeSide, properties);
167 case CSSPropertyWebkitMarginAfter: {
168 const int properties[4] = { CSSPropertyMarginTop, CSSPropertyMarginRight, CSSPropertyMarginBottom, CSSPropertyMarginLeft };
169 return resolveToPhysicalProperty(direction, writingMode, AfterSide, properties);
171 case CSSPropertyWebkitPaddingEnd: {
172 const int properties[4] = { CSSPropertyPaddingTop, CSSPropertyPaddingRight, CSSPropertyPaddingBottom, CSSPropertyPaddingLeft };
173 return resolveToPhysicalProperty(direction, writingMode, EndSide, properties);
175 case CSSPropertyWebkitPaddingStart: {
176 const int properties[4] = { CSSPropertyPaddingTop, CSSPropertyPaddingRight, CSSPropertyPaddingBottom, CSSPropertyPaddingLeft };
177 return resolveToPhysicalProperty(direction, writingMode, StartSide, properties);
179 case CSSPropertyWebkitPaddingBefore: {
180 const int properties[4] = { CSSPropertyPaddingTop, CSSPropertyPaddingRight, CSSPropertyPaddingBottom, CSSPropertyPaddingLeft };
181 return resolveToPhysicalProperty(direction, writingMode, BeforeSide, properties);
183 case CSSPropertyWebkitPaddingAfter: {
184 const int properties[4] = { CSSPropertyPaddingTop, CSSPropertyPaddingRight, CSSPropertyPaddingBottom, CSSPropertyPaddingLeft };
185 return resolveToPhysicalProperty(direction, writingMode, AfterSide, properties);
187 case CSSPropertyWebkitBorderEnd: {
188 const int properties[4] = { CSSPropertyBorderTop, CSSPropertyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft };
189 return resolveToPhysicalProperty(direction, writingMode, EndSide, properties);
191 case CSSPropertyWebkitBorderStart: {
192 const int properties[4] = { CSSPropertyBorderTop, CSSPropertyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft };
193 return resolveToPhysicalProperty(direction, writingMode, StartSide, properties);
195 case CSSPropertyWebkitBorderBefore: {
196 const int properties[4] = { CSSPropertyBorderTop, CSSPropertyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft };
197 return resolveToPhysicalProperty(direction, writingMode, BeforeSide, properties);
199 case CSSPropertyWebkitBorderAfter: {
200 const int properties[4] = { CSSPropertyBorderTop, CSSPropertyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft };
201 return resolveToPhysicalProperty(direction, writingMode, AfterSide, properties);
203 case CSSPropertyWebkitBorderEndColor: {
204 const int properties[4] = { CSSPropertyBorderTopColor, CSSPropertyBorderRightColor, CSSPropertyBorderBottomColor, CSSPropertyBorderLeftColor };
205 return resolveToPhysicalProperty(direction, writingMode, EndSide, properties);
207 case CSSPropertyWebkitBorderStartColor: {
208 const int properties[4] = { CSSPropertyBorderTopColor, CSSPropertyBorderRightColor, CSSPropertyBorderBottomColor, CSSPropertyBorderLeftColor };
209 return resolveToPhysicalProperty(direction, writingMode, StartSide, properties);
211 case CSSPropertyWebkitBorderBeforeColor: {
212 const int properties[4] = { CSSPropertyBorderTopColor, CSSPropertyBorderRightColor, CSSPropertyBorderBottomColor, CSSPropertyBorderLeftColor };
213 return resolveToPhysicalProperty(direction, writingMode, BeforeSide, properties);
215 case CSSPropertyWebkitBorderAfterColor: {
216 const int properties[4] = { CSSPropertyBorderTopColor, CSSPropertyBorderRightColor, CSSPropertyBorderBottomColor, CSSPropertyBorderLeftColor };
217 return resolveToPhysicalProperty(direction, writingMode, AfterSide, properties);
219 case CSSPropertyWebkitBorderEndStyle: {
220 const int properties[4] = { CSSPropertyBorderTopStyle, CSSPropertyBorderRightStyle, CSSPropertyBorderBottomStyle, CSSPropertyBorderLeftStyle };
221 return resolveToPhysicalProperty(direction, writingMode, EndSide, properties);
223 case CSSPropertyWebkitBorderStartStyle: {
224 const int properties[4] = { CSSPropertyBorderTopStyle, CSSPropertyBorderRightStyle, CSSPropertyBorderBottomStyle, CSSPropertyBorderLeftStyle };
225 return resolveToPhysicalProperty(direction, writingMode, StartSide, properties);
227 case CSSPropertyWebkitBorderBeforeStyle: {
228 const int properties[4] = { CSSPropertyBorderTopStyle, CSSPropertyBorderRightStyle, CSSPropertyBorderBottomStyle, CSSPropertyBorderLeftStyle };
229 return resolveToPhysicalProperty(direction, writingMode, BeforeSide, properties);
231 case CSSPropertyWebkitBorderAfterStyle: {
232 const int properties[4] = { CSSPropertyBorderTopStyle, CSSPropertyBorderRightStyle, CSSPropertyBorderBottomStyle, CSSPropertyBorderLeftStyle };
233 return resolveToPhysicalProperty(direction, writingMode, AfterSide, properties);
235 case CSSPropertyWebkitBorderEndWidth: {
236 const int properties[4] = { CSSPropertyBorderTopWidth, CSSPropertyBorderRightWidth, CSSPropertyBorderBottomWidth, CSSPropertyBorderLeftWidth };
237 return resolveToPhysicalProperty(direction, writingMode, EndSide, properties);
239 case CSSPropertyWebkitBorderStartWidth: {
240 const int properties[4] = { CSSPropertyBorderTopWidth, CSSPropertyBorderRightWidth, CSSPropertyBorderBottomWidth, CSSPropertyBorderLeftWidth };
241 return resolveToPhysicalProperty(direction, writingMode, StartSide, properties);
243 case CSSPropertyWebkitBorderBeforeWidth: {
244 const int properties[4] = { CSSPropertyBorderTopWidth, CSSPropertyBorderRightWidth, CSSPropertyBorderBottomWidth, CSSPropertyBorderLeftWidth };
245 return resolveToPhysicalProperty(direction, writingMode, BeforeSide, properties);
247 case CSSPropertyWebkitBorderAfterWidth: {
248 const int properties[4] = { CSSPropertyBorderTopWidth, CSSPropertyBorderRightWidth, CSSPropertyBorderBottomWidth, CSSPropertyBorderLeftWidth };
249 return resolveToPhysicalProperty(direction, writingMode, AfterSide, properties);
251 case CSSPropertyWebkitLogicalWidth: {
252 const int properties[2] = { CSSPropertyWidth, CSSPropertyHeight };
253 return resolveToPhysicalProperty(writingMode, LogicalWidth, properties);
255 case CSSPropertyWebkitLogicalHeight: {
256 const int properties[2] = { CSSPropertyWidth, CSSPropertyHeight };
257 return resolveToPhysicalProperty(writingMode, LogicalHeight, properties);
259 case CSSPropertyWebkitMinLogicalWidth: {
260 const int properties[2] = { CSSPropertyMinWidth, CSSPropertyMinHeight };
261 return resolveToPhysicalProperty(writingMode, LogicalWidth, properties);
263 case CSSPropertyWebkitMinLogicalHeight: {
264 const int properties[2] = { CSSPropertyMinWidth, CSSPropertyMinHeight };
265 return resolveToPhysicalProperty(writingMode, LogicalHeight, properties);
267 case CSSPropertyWebkitMaxLogicalWidth: {
268 const int properties[2] = { CSSPropertyMaxWidth, CSSPropertyMaxHeight };
269 return resolveToPhysicalProperty(writingMode, LogicalWidth, properties);
271 case CSSPropertyWebkitMaxLogicalHeight: {
272 const int properties[2] = { CSSPropertyMaxWidth, CSSPropertyMaxHeight };
273 return resolveToPhysicalProperty(writingMode, LogicalHeight, properties);
280 bool CSSProperty::isInheritedProperty(unsigned propertyID)
282 switch (static_cast<CSSPropertyID>(propertyID)) {
283 case CSSPropertyBorderCollapse:
284 case CSSPropertyBorderSpacing:
285 case CSSPropertyCaptionSide:
286 case CSSPropertyColor:
287 case CSSPropertyCursor:
288 case CSSPropertyDirection:
289 case CSSPropertyEmptyCells:
290 case CSSPropertyFont:
291 case CSSPropertyFontFamily:
292 case CSSPropertyFontSize:
293 case CSSPropertyFontStyle:
294 case CSSPropertyFontVariant:
295 case CSSPropertyFontWeight:
296 case CSSPropertyImageRendering:
297 case CSSPropertyLetterSpacing:
298 case CSSPropertyLineHeight:
299 case CSSPropertyListStyle:
300 case CSSPropertyListStyleImage:
301 case CSSPropertyListStyleType:
302 case CSSPropertyListStylePosition:
303 case CSSPropertyOrphans:
304 case CSSPropertyPointerEvents:
305 case CSSPropertyQuotes:
306 case CSSPropertyResize:
307 case CSSPropertySpeak:
308 case CSSPropertyTextAlign:
309 case CSSPropertyTextDecoration:
310 case CSSPropertyTextIndent:
311 case CSSPropertyTextRendering:
312 case CSSPropertyTextShadow:
313 case CSSPropertyTextTransform:
314 case CSSPropertyVisibility:
315 case CSSPropertyWebkitAspectRatio:
316 case CSSPropertyWebkitBorderHorizontalSpacing:
317 case CSSPropertyWebkitBorderVerticalSpacing:
318 case CSSPropertyWebkitBoxDirection:
319 case CSSPropertyWebkitColorCorrection:
320 case CSSPropertyWebkitFontFeatureSettings:
321 case CSSPropertyWebkitFontSmoothing:
322 case CSSPropertyWebkitLocale:
323 case CSSPropertyWebkitHighlight:
324 case CSSPropertyWebkitHyphenateCharacter:
325 case CSSPropertyWebkitHyphenateLimitAfter:
326 case CSSPropertyWebkitHyphenateLimitBefore:
327 case CSSPropertyWebkitHyphenateLimitLines:
328 case CSSPropertyWebkitHyphens:
329 case CSSPropertyWebkitLineBoxContain:
330 case CSSPropertyWebkitLineBreak:
331 case CSSPropertyWebkitLineGrid:
332 case CSSPropertyWebkitLineGridSnap:
333 case CSSPropertyWebkitNbspMode:
334 case CSSPropertyWebkitPrintColorAdjust:
335 case CSSPropertyWebkitRtlOrdering:
336 case CSSPropertyWebkitTextCombine:
337 case CSSPropertyWebkitTextDecorationsInEffect:
338 case CSSPropertyWebkitTextEmphasis:
339 case CSSPropertyWebkitTextEmphasisColor:
340 case CSSPropertyWebkitTextEmphasisPosition:
341 case CSSPropertyWebkitTextEmphasisStyle:
342 case CSSPropertyWebkitTextFillColor:
343 case CSSPropertyWebkitTextOrientation:
344 case CSSPropertyWebkitTextSecurity:
345 case CSSPropertyWebkitTextSizeAdjust:
346 case CSSPropertyWebkitTextStroke:
347 case CSSPropertyWebkitTextStrokeColor:
348 case CSSPropertyWebkitTextStrokeWidth:
349 case CSSPropertyWebkitUserModify:
350 case CSSPropertyWebkitUserSelect:
351 case CSSPropertyWebkitWritingMode:
352 case CSSPropertyWhiteSpace:
353 case CSSPropertyWidows:
354 case CSSPropertyWordBreak:
355 case CSSPropertyWordSpacing:
356 case CSSPropertyWordWrap:
358 case CSSPropertyClipRule:
359 case CSSPropertyColorInterpolation:
360 case CSSPropertyColorInterpolationFilters:
361 case CSSPropertyColorRendering:
362 case CSSPropertyFill:
363 case CSSPropertyFillOpacity:
364 case CSSPropertyFillRule:
365 case CSSPropertyGlyphOrientationHorizontal:
366 case CSSPropertyGlyphOrientationVertical:
367 case CSSPropertyKerning:
368 case CSSPropertyMarker:
369 case CSSPropertyMarkerEnd:
370 case CSSPropertyMarkerMid:
371 case CSSPropertyMarkerStart:
372 case CSSPropertyStroke:
373 case CSSPropertyStrokeDasharray:
374 case CSSPropertyStrokeDashoffset:
375 case CSSPropertyStrokeLinecap:
376 case CSSPropertyStrokeLinejoin:
377 case CSSPropertyStrokeMiterlimit:
378 case CSSPropertyStrokeOpacity:
379 case CSSPropertyStrokeWidth:
380 case CSSPropertyShapeRendering:
381 case CSSPropertyTextAnchor:
382 case CSSPropertyWritingMode:
384 #if ENABLE(TOUCH_EVENTS)
385 case CSSPropertyWebkitTapHighlightColor:
388 case CSSPropertyDisplay:
389 case CSSPropertyZoom:
390 case CSSPropertyBackground:
391 case CSSPropertyBackgroundAttachment:
392 case CSSPropertyBackgroundClip:
393 case CSSPropertyBackgroundColor:
394 case CSSPropertyBackgroundImage:
395 case CSSPropertyBackgroundOrigin:
396 case CSSPropertyBackgroundPosition:
397 case CSSPropertyBackgroundPositionX:
398 case CSSPropertyBackgroundPositionY:
399 case CSSPropertyBackgroundRepeat:
400 case CSSPropertyBackgroundRepeatX:
401 case CSSPropertyBackgroundRepeatY:
402 case CSSPropertyBackgroundSize:
403 case CSSPropertyBorder:
404 case CSSPropertyBorderBottom:
405 case CSSPropertyBorderBottomColor:
406 case CSSPropertyBorderBottomLeftRadius:
407 case CSSPropertyBorderBottomRightRadius:
408 case CSSPropertyBorderBottomStyle:
409 case CSSPropertyBorderBottomWidth:
410 case CSSPropertyBorderColor:
411 case CSSPropertyBorderImage:
412 case CSSPropertyBorderImageOutset:
413 case CSSPropertyBorderImageRepeat:
414 case CSSPropertyBorderImageSlice:
415 case CSSPropertyBorderImageSource:
416 case CSSPropertyBorderImageWidth:
417 case CSSPropertyBorderLeft:
418 case CSSPropertyBorderLeftColor:
419 case CSSPropertyBorderLeftStyle:
420 case CSSPropertyBorderLeftWidth:
421 case CSSPropertyBorderRadius:
422 case CSSPropertyBorderRight:
423 case CSSPropertyBorderRightColor:
424 case CSSPropertyBorderRightStyle:
425 case CSSPropertyBorderRightWidth:
426 case CSSPropertyBorderStyle:
427 case CSSPropertyBorderTop:
428 case CSSPropertyBorderTopColor:
429 case CSSPropertyBorderTopLeftRadius:
430 case CSSPropertyBorderTopRightRadius:
431 case CSSPropertyBorderTopStyle:
432 case CSSPropertyBorderTopWidth:
433 case CSSPropertyBorderWidth:
434 case CSSPropertyBottom:
435 case CSSPropertyBoxShadow:
436 case CSSPropertyBoxSizing:
437 case CSSPropertyClear:
438 case CSSPropertyClip:
439 case CSSPropertyContent:
440 case CSSPropertyCounterIncrement:
441 case CSSPropertyCounterReset:
442 case CSSPropertyFloat:
443 case CSSPropertyFontStretch:
444 case CSSPropertyHeight:
445 case CSSPropertyLeft:
446 case CSSPropertyMargin:
447 case CSSPropertyMarginBottom:
448 case CSSPropertyMarginLeft:
449 case CSSPropertyMarginRight:
450 case CSSPropertyMarginTop:
451 case CSSPropertyMaxHeight:
452 case CSSPropertyMaxWidth:
453 case CSSPropertyMinHeight:
454 case CSSPropertyMinWidth:
455 case CSSPropertyOpacity:
456 case CSSPropertyOutline:
457 case CSSPropertyOutlineColor:
458 case CSSPropertyOutlineOffset:
459 case CSSPropertyOutlineStyle:
460 case CSSPropertyOutlineWidth:
461 case CSSPropertyOverflow:
462 case CSSPropertyOverflowX:
463 case CSSPropertyOverflowY:
464 case CSSPropertyPadding:
465 case CSSPropertyPaddingBottom:
466 case CSSPropertyPaddingLeft:
467 case CSSPropertyPaddingRight:
468 case CSSPropertyPaddingTop:
469 case CSSPropertyPage:
470 case CSSPropertyPageBreakAfter:
471 case CSSPropertyPageBreakBefore:
472 case CSSPropertyPageBreakInside:
473 case CSSPropertyPosition:
474 case CSSPropertyRight:
475 case CSSPropertySize:
477 case CSSPropertyTableLayout:
478 case CSSPropertyTextLineThrough:
479 case CSSPropertyTextLineThroughColor:
480 case CSSPropertyTextLineThroughMode:
481 case CSSPropertyTextLineThroughStyle:
482 case CSSPropertyTextLineThroughWidth:
483 case CSSPropertyTextOverflow:
484 case CSSPropertyTextOverline:
485 case CSSPropertyTextOverlineColor:
486 case CSSPropertyTextOverlineMode:
487 case CSSPropertyTextOverlineStyle:
488 case CSSPropertyTextOverlineWidth:
489 case CSSPropertyTextUnderline:
490 case CSSPropertyTextUnderlineColor:
491 case CSSPropertyTextUnderlineMode:
492 case CSSPropertyTextUnderlineStyle:
493 case CSSPropertyTextUnderlineWidth:
495 case CSSPropertyUnicodeBidi:
496 case CSSPropertyUnicodeRange:
497 case CSSPropertyVerticalAlign:
498 case CSSPropertyWidth:
499 case CSSPropertyZIndex:
500 case CSSPropertyWebkitAnimation:
501 case CSSPropertyWebkitAnimationDelay:
502 case CSSPropertyWebkitAnimationDirection:
503 case CSSPropertyWebkitAnimationDuration:
504 case CSSPropertyWebkitAnimationFillMode:
505 case CSSPropertyWebkitAnimationIterationCount:
506 case CSSPropertyWebkitAnimationName:
507 case CSSPropertyWebkitAnimationPlayState:
508 case CSSPropertyWebkitAnimationTimingFunction:
509 case CSSPropertyWebkitAppearance:
510 case CSSPropertyWebkitBackfaceVisibility:
511 case CSSPropertyWebkitBackgroundClip:
512 case CSSPropertyWebkitBackgroundComposite:
513 case CSSPropertyWebkitBackgroundOrigin:
514 case CSSPropertyWebkitBackgroundSize:
515 case CSSPropertyWebkitBorderAfter:
516 case CSSPropertyWebkitBorderAfterColor:
517 case CSSPropertyWebkitBorderAfterStyle:
518 case CSSPropertyWebkitBorderAfterWidth:
519 case CSSPropertyWebkitBorderBefore:
520 case CSSPropertyWebkitBorderBeforeColor:
521 case CSSPropertyWebkitBorderBeforeStyle:
522 case CSSPropertyWebkitBorderBeforeWidth:
523 case CSSPropertyWebkitBorderEnd:
524 case CSSPropertyWebkitBorderEndColor:
525 case CSSPropertyWebkitBorderEndStyle:
526 case CSSPropertyWebkitBorderEndWidth:
527 case CSSPropertyWebkitBorderFit:
528 case CSSPropertyWebkitBorderImage:
529 case CSSPropertyWebkitBorderRadius:
530 case CSSPropertyWebkitBorderStart:
531 case CSSPropertyWebkitBorderStartColor:
532 case CSSPropertyWebkitBorderStartStyle:
533 case CSSPropertyWebkitBorderStartWidth:
534 case CSSPropertyWebkitBoxAlign:
535 case CSSPropertyWebkitBoxFlex:
536 case CSSPropertyWebkitBoxFlexGroup:
537 case CSSPropertyWebkitBoxLines:
538 case CSSPropertyWebkitBoxOrdinalGroup:
539 case CSSPropertyWebkitBoxOrient:
540 case CSSPropertyWebkitBoxPack:
541 case CSSPropertyWebkitBoxReflect:
542 case CSSPropertyWebkitBoxShadow:
543 case CSSPropertyWebkitColumnAxis:
544 case CSSPropertyWebkitColumnBreakAfter:
545 case CSSPropertyWebkitColumnBreakBefore:
546 case CSSPropertyWebkitColumnBreakInside:
547 case CSSPropertyWebkitColumnCount:
548 case CSSPropertyWebkitColumnGap:
549 case CSSPropertyWebkitColumnRule:
550 case CSSPropertyWebkitColumnRuleColor:
551 case CSSPropertyWebkitColumnRuleStyle:
552 case CSSPropertyWebkitColumnRuleWidth:
553 case CSSPropertyWebkitColumnSpan:
554 case CSSPropertyWebkitColumnWidth:
555 case CSSPropertyWebkitColumns:
556 #if ENABLE(CSS_FILTERS)
557 case CSSPropertyWebkitFilter:
559 case CSSPropertyWebkitFlexOrder:
560 case CSSPropertyWebkitFlexPack:
561 case CSSPropertyWebkitFlexAlign:
562 case CSSPropertyWebkitFlexFlow:
563 case CSSPropertyWebkitFontSizeDelta:
564 #if ENABLE(CSS_GRID_LAYOUT)
565 case CSSPropertyWebkitGridColumns:
566 case CSSPropertyWebkitGridRows:
568 case CSSPropertyWebkitLineClamp:
569 case CSSPropertyWebkitLogicalWidth:
570 case CSSPropertyWebkitLogicalHeight:
571 case CSSPropertyWebkitMarginAfterCollapse:
572 case CSSPropertyWebkitMarginBeforeCollapse:
573 case CSSPropertyWebkitMarginBottomCollapse:
574 case CSSPropertyWebkitMarginTopCollapse:
575 case CSSPropertyWebkitMarginCollapse:
576 case CSSPropertyWebkitMarginAfter:
577 case CSSPropertyWebkitMarginBefore:
578 case CSSPropertyWebkitMarginEnd:
579 case CSSPropertyWebkitMarginStart:
580 case CSSPropertyWebkitMarquee:
581 case CSSPropertyWebkitMarqueeDirection:
582 case CSSPropertyWebkitMarqueeIncrement:
583 case CSSPropertyWebkitMarqueeRepetition:
584 case CSSPropertyWebkitMarqueeSpeed:
585 case CSSPropertyWebkitMarqueeStyle:
586 case CSSPropertyWebkitMask:
587 case CSSPropertyWebkitMaskAttachment:
588 case CSSPropertyWebkitMaskBoxImage:
589 case CSSPropertyWebkitMaskBoxImageOutset:
590 case CSSPropertyWebkitMaskBoxImageRepeat:
591 case CSSPropertyWebkitMaskBoxImageSlice:
592 case CSSPropertyWebkitMaskBoxImageSource:
593 case CSSPropertyWebkitMaskBoxImageWidth:
594 case CSSPropertyWebkitMaskClip:
595 case CSSPropertyWebkitMaskComposite:
596 case CSSPropertyWebkitMaskImage:
597 case CSSPropertyWebkitMaskOrigin:
598 case CSSPropertyWebkitMaskPosition:
599 case CSSPropertyWebkitMaskPositionX:
600 case CSSPropertyWebkitMaskPositionY:
601 case CSSPropertyWebkitMaskRepeat:
602 case CSSPropertyWebkitMaskRepeatX:
603 case CSSPropertyWebkitMaskRepeatY:
604 case CSSPropertyWebkitMaskSize:
605 case CSSPropertyWebkitMatchNearestMailBlockquoteColor:
606 case CSSPropertyWebkitMaxLogicalWidth:
607 case CSSPropertyWebkitMaxLogicalHeight:
608 case CSSPropertyWebkitMinLogicalWidth:
609 case CSSPropertyWebkitMinLogicalHeight:
610 case CSSPropertyWebkitPaddingAfter:
611 case CSSPropertyWebkitPaddingBefore:
612 case CSSPropertyWebkitPaddingEnd:
613 case CSSPropertyWebkitPaddingStart:
614 case CSSPropertyWebkitPerspective:
615 case CSSPropertyWebkitPerspectiveOrigin:
616 case CSSPropertyWebkitPerspectiveOriginX:
617 case CSSPropertyWebkitPerspectiveOriginY:
618 case CSSPropertyWebkitTransform:
619 case CSSPropertyWebkitTransformOrigin:
620 case CSSPropertyWebkitTransformOriginX:
621 case CSSPropertyWebkitTransformOriginY:
622 case CSSPropertyWebkitTransformOriginZ:
623 case CSSPropertyWebkitTransformStyle:
624 case CSSPropertyWebkitTransition:
625 case CSSPropertyWebkitTransitionDelay:
626 case CSSPropertyWebkitTransitionDuration:
627 case CSSPropertyWebkitTransitionProperty:
628 case CSSPropertyWebkitTransitionTimingFunction:
629 case CSSPropertyWebkitUserDrag:
630 case CSSPropertyWebkitFlowInto:
631 case CSSPropertyWebkitFlowFrom:
632 case CSSPropertyWebkitRegionOverflow:
633 case CSSPropertyWebkitRegionBreakAfter:
634 case CSSPropertyWebkitRegionBreakBefore:
635 case CSSPropertyWebkitRegionBreakInside:
636 case CSSPropertyWebkitWrap:
637 case CSSPropertyWebkitWrapFlow:
638 case CSSPropertyWebkitWrapMargin:
639 case CSSPropertyWebkitWrapPadding:
640 case CSSPropertyWebkitWrapShapeInside:
641 case CSSPropertyWebkitWrapShapeOutside:
642 case CSSPropertyWebkitWrapThrough:
644 case CSSPropertyClipPath:
645 case CSSPropertyMask:
646 case CSSPropertyEnableBackground:
647 case CSSPropertyFilter:
648 case CSSPropertyFloodColor:
649 case CSSPropertyFloodOpacity:
650 case CSSPropertyLightingColor:
651 case CSSPropertyStopColor:
652 case CSSPropertyStopOpacity:
653 case CSSPropertyColorProfile:
654 case CSSPropertyAlignmentBaseline:
655 case CSSPropertyBaselineShift:
656 case CSSPropertyDominantBaseline:
657 case CSSPropertyVectorEffect:
658 case CSSPropertyWebkitSvgShadow:
660 #if ENABLE(DASHBOARD_SUPPORT)
661 case CSSPropertyWebkitDashboardRegion:
664 case CSSPropertyInvalid:
665 ASSERT_NOT_REACHED();
668 ASSERT_NOT_REACHED();
672 } // namespace WebCore