Source/WebCore: Remove ENABLE_CSS_COMPOSITING guards around -webkit-background-blend...
[WebKit-https.git] / Source / WebCore / css / CSSProperty.cpp
1 /**
2  * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3  * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc.
4  *
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.
9  *
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.
14  *
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.
19  */
20
21 #include "config.h"
22 #include "CSSProperty.h"
23
24 #include "CSSValueList.h"
25 #include "RenderStyleConstants.h"
26 #include "StylePropertyShorthand.h"
27
28 #if ENABLE(CSS_VARIABLES)
29 #include "CSSVariableValue.h"
30 #endif
31
32 #include <wtf/text/StringBuilder.h>
33
34 namespace WebCore {
35
36 struct SameSizeAsCSSProperty {
37     uint32_t bitfields;
38     void* value;
39 };
40
41 COMPILE_ASSERT(sizeof(CSSProperty) == sizeof(SameSizeAsCSSProperty), CSSProperty_should_stay_small);
42
43 void CSSProperty::wrapValueInCommaSeparatedList()
44 {
45     RefPtr<CSSValue> value = m_value.release();
46     m_value = CSSValueList::createCommaSeparated();
47     static_cast<CSSValueList*>(m_value.get())->append(value.release());
48 }
49
50 enum LogicalBoxSide { BeforeSide, EndSide, AfterSide, StartSide };
51 enum PhysicalBoxSide { TopSide, RightSide, BottomSide, LeftSide };
52
53 static CSSPropertyID resolveToPhysicalProperty(TextDirection direction, WritingMode writingMode, LogicalBoxSide logicalSide, const StylePropertyShorthand& shorthand)
54 {
55     if (direction == LTR) {
56         if (writingMode == TopToBottomWritingMode) {
57             // The common case. The logical and physical box sides match.
58             // Left = Start, Right = End, Before = Top, After = Bottom
59             return shorthand.properties()[logicalSide];
60         }
61
62         if (writingMode == BottomToTopWritingMode) {
63             // Start = Left, End = Right, Before = Bottom, After = Top.
64             switch (logicalSide) {
65             case StartSide:
66                 return shorthand.properties()[LeftSide];
67             case EndSide:
68                 return shorthand.properties()[RightSide];
69             case BeforeSide:
70                 return shorthand.properties()[BottomSide];
71             default:
72                 return shorthand.properties()[TopSide];
73             }
74         }
75
76         if (writingMode == LeftToRightWritingMode) {
77             // Start = Top, End = Bottom, Before = Left, After = Right.
78             switch (logicalSide) {
79             case StartSide:
80                 return shorthand.properties()[TopSide];
81             case EndSide:
82                 return shorthand.properties()[BottomSide];
83             case BeforeSide:
84                 return shorthand.properties()[LeftSide];
85             default:
86                 return shorthand.properties()[RightSide];
87             }
88         }
89
90         // Start = Top, End = Bottom, Before = Right, After = Left
91         switch (logicalSide) {
92         case StartSide:
93             return shorthand.properties()[TopSide];
94         case EndSide:
95             return shorthand.properties()[BottomSide];
96         case BeforeSide:
97             return shorthand.properties()[RightSide];
98         default:
99             return shorthand.properties()[LeftSide];
100         }
101     }
102
103     if (writingMode == TopToBottomWritingMode) {
104         // Start = Right, End = Left, Before = Top, After = Bottom
105         switch (logicalSide) {
106         case StartSide:
107             return shorthand.properties()[RightSide];
108         case EndSide:
109             return shorthand.properties()[LeftSide];
110         case BeforeSide:
111             return shorthand.properties()[TopSide];
112         default:
113             return shorthand.properties()[BottomSide];
114         }
115     }
116
117     if (writingMode == BottomToTopWritingMode) {
118         // Start = Right, End = Left, Before = Bottom, After = Top
119         switch (logicalSide) {
120         case StartSide:
121             return shorthand.properties()[RightSide];
122         case EndSide:
123             return shorthand.properties()[LeftSide];
124         case BeforeSide:
125             return shorthand.properties()[BottomSide];
126         default:
127             return shorthand.properties()[TopSide];
128         }
129     }
130
131     if (writingMode == LeftToRightWritingMode) {
132         // Start = Bottom, End = Top, Before = Left, After = Right
133         switch (logicalSide) {
134         case StartSide:
135             return shorthand.properties()[BottomSide];
136         case EndSide:
137             return shorthand.properties()[TopSide];
138         case BeforeSide:
139             return shorthand.properties()[LeftSide];
140         default:
141             return shorthand.properties()[RightSide];
142         }
143     }
144
145     // Start = Bottom, End = Top, Before = Right, After = Left
146     switch (logicalSide) {
147     case StartSide:
148         return shorthand.properties()[BottomSide];
149     case EndSide:
150         return shorthand.properties()[TopSide];
151     case BeforeSide:
152         return shorthand.properties()[RightSide];
153     default:
154         return shorthand.properties()[LeftSide];
155     }
156 }
157
158 enum LogicalExtent { LogicalWidth, LogicalHeight };
159
160 static CSSPropertyID resolveToPhysicalProperty(WritingMode writingMode, LogicalExtent logicalSide, const CSSPropertyID* properties)
161 {
162     if (writingMode == TopToBottomWritingMode || writingMode == BottomToTopWritingMode)
163         return properties[logicalSide];
164     return logicalSide == LogicalWidth ? properties[1] : properties[0];
165 }
166
167 static const StylePropertyShorthand& borderDirections()
168 {
169     static const CSSPropertyID properties[4] = { CSSPropertyBorderTop, CSSPropertyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft };
170     DEFINE_STATIC_LOCAL(StylePropertyShorthand, borderDirections, (properties, WTF_ARRAY_LENGTH(properties)));
171     return borderDirections;
172 }
173
174 CSSPropertyID CSSProperty::resolveDirectionAwareProperty(CSSPropertyID propertyID, TextDirection direction, WritingMode writingMode)
175 {
176     switch (propertyID) {
177     case CSSPropertyWebkitMarginEnd:
178         return resolveToPhysicalProperty(direction, writingMode, EndSide, marginShorthand());
179     case CSSPropertyWebkitMarginStart:
180         return resolveToPhysicalProperty(direction, writingMode, StartSide, marginShorthand());
181     case CSSPropertyWebkitMarginBefore:
182         return resolveToPhysicalProperty(direction, writingMode, BeforeSide, marginShorthand());
183     case CSSPropertyWebkitMarginAfter:
184         return resolveToPhysicalProperty(direction, writingMode, AfterSide, marginShorthand());
185     case CSSPropertyWebkitPaddingEnd:
186         return resolveToPhysicalProperty(direction, writingMode, EndSide, paddingShorthand());
187     case CSSPropertyWebkitPaddingStart:
188         return resolveToPhysicalProperty(direction, writingMode, StartSide, paddingShorthand());
189     case CSSPropertyWebkitPaddingBefore:
190         return resolveToPhysicalProperty(direction, writingMode, BeforeSide, paddingShorthand());
191     case CSSPropertyWebkitPaddingAfter:
192         return resolveToPhysicalProperty(direction, writingMode, AfterSide, paddingShorthand());
193     case CSSPropertyWebkitBorderEnd:
194         return resolveToPhysicalProperty(direction, writingMode, EndSide, borderDirections());
195     case CSSPropertyWebkitBorderStart:
196         return resolveToPhysicalProperty(direction, writingMode, StartSide, borderDirections());
197     case CSSPropertyWebkitBorderBefore:
198         return resolveToPhysicalProperty(direction, writingMode, BeforeSide, borderDirections());
199     case CSSPropertyWebkitBorderAfter:
200         return resolveToPhysicalProperty(direction, writingMode, AfterSide, borderDirections());
201     case CSSPropertyWebkitBorderEndColor:
202         return resolveToPhysicalProperty(direction, writingMode, EndSide, borderColorShorthand());
203     case CSSPropertyWebkitBorderStartColor:
204         return resolveToPhysicalProperty(direction, writingMode, StartSide, borderColorShorthand());
205     case CSSPropertyWebkitBorderBeforeColor:
206         return resolveToPhysicalProperty(direction, writingMode, BeforeSide, borderColorShorthand());
207     case CSSPropertyWebkitBorderAfterColor:
208         return resolveToPhysicalProperty(direction, writingMode, AfterSide, borderColorShorthand());
209     case CSSPropertyWebkitBorderEndStyle:
210         return resolveToPhysicalProperty(direction, writingMode, EndSide, borderStyleShorthand());
211     case CSSPropertyWebkitBorderStartStyle:
212         return resolveToPhysicalProperty(direction, writingMode, StartSide, borderStyleShorthand());
213     case CSSPropertyWebkitBorderBeforeStyle:
214         return resolveToPhysicalProperty(direction, writingMode, BeforeSide, borderStyleShorthand());
215     case CSSPropertyWebkitBorderAfterStyle:
216         return resolveToPhysicalProperty(direction, writingMode, AfterSide, borderStyleShorthand());
217     case CSSPropertyWebkitBorderEndWidth:
218         return resolveToPhysicalProperty(direction, writingMode, EndSide, borderWidthShorthand());
219     case CSSPropertyWebkitBorderStartWidth:
220         return resolveToPhysicalProperty(direction, writingMode, StartSide, borderWidthShorthand());
221     case CSSPropertyWebkitBorderBeforeWidth:
222         return resolveToPhysicalProperty(direction, writingMode, BeforeSide, borderWidthShorthand());
223     case CSSPropertyWebkitBorderAfterWidth:
224         return resolveToPhysicalProperty(direction, writingMode, AfterSide, borderWidthShorthand());
225     case CSSPropertyWebkitLogicalWidth: {
226         const CSSPropertyID properties[2] = { CSSPropertyWidth, CSSPropertyHeight };
227         return resolveToPhysicalProperty(writingMode, LogicalWidth, properties);
228     }
229     case CSSPropertyWebkitLogicalHeight: {
230         const CSSPropertyID properties[2] = { CSSPropertyWidth, CSSPropertyHeight };
231         return resolveToPhysicalProperty(writingMode, LogicalHeight, properties);
232     }
233     case CSSPropertyWebkitMinLogicalWidth: {
234         const CSSPropertyID properties[2] = { CSSPropertyMinWidth, CSSPropertyMinHeight };
235         return resolveToPhysicalProperty(writingMode, LogicalWidth, properties);
236     }
237     case CSSPropertyWebkitMinLogicalHeight: {
238         const CSSPropertyID properties[2] = { CSSPropertyMinWidth, CSSPropertyMinHeight };
239         return resolveToPhysicalProperty(writingMode, LogicalHeight, properties);
240     }
241     case CSSPropertyWebkitMaxLogicalWidth: {
242         const CSSPropertyID properties[2] = { CSSPropertyMaxWidth, CSSPropertyMaxHeight };
243         return resolveToPhysicalProperty(writingMode, LogicalWidth, properties);
244     }
245     case CSSPropertyWebkitMaxLogicalHeight: {
246         const CSSPropertyID properties[2] = { CSSPropertyMaxWidth, CSSPropertyMaxHeight };
247         return resolveToPhysicalProperty(writingMode, LogicalHeight, properties);
248     }
249     default:
250         return propertyID;
251     }
252 }
253
254 bool CSSProperty::isInheritedProperty(CSSPropertyID propertyID)
255 {
256     switch (propertyID) {
257     case CSSPropertyBorderCollapse:
258     case CSSPropertyBorderSpacing:
259     case CSSPropertyCaptionSide:
260     case CSSPropertyColor:
261     case CSSPropertyCursor:
262     case CSSPropertyDirection:
263     case CSSPropertyEmptyCells:
264     case CSSPropertyFont:
265     case CSSPropertyFontFamily:
266     case CSSPropertyFontSize:
267     case CSSPropertyFontStyle:
268     case CSSPropertyFontVariant:
269     case CSSPropertyFontWeight:
270 #if ENABLE(CSS_IMAGE_ORIENTATION)
271     case CSSPropertyImageOrientation:
272 #endif
273     case CSSPropertyImageRendering:
274 #if ENABLE(CSS_IMAGE_RESOLUTION)
275     case CSSPropertyImageResolution:
276 #endif
277     case CSSPropertyLetterSpacing:
278     case CSSPropertyLineHeight:
279     case CSSPropertyListStyle:
280     case CSSPropertyListStyleImage:
281     case CSSPropertyListStyleType:
282     case CSSPropertyListStylePosition:
283     case CSSPropertyOrphans:
284     case CSSPropertyPointerEvents:
285     case CSSPropertyQuotes:
286     case CSSPropertyResize:
287     case CSSPropertySpeak:
288     case CSSPropertyTabSize:
289     case CSSPropertyTextAlign:
290     case CSSPropertyTextDecoration:
291     case CSSPropertyTextIndent:
292     case CSSPropertyTextRendering:
293     case CSSPropertyTextShadow:
294     case CSSPropertyTextTransform:
295 #if ENABLE(CSS_VARIABLES)
296     case CSSPropertyVariable:
297 #endif
298     case CSSPropertyVisibility:
299     case CSSPropertyWebkitAspectRatio:
300     case CSSPropertyWebkitBorderHorizontalSpacing:
301     case CSSPropertyWebkitBorderVerticalSpacing:
302     case CSSPropertyWebkitBoxDirection:
303     case CSSPropertyWebkitColorCorrection:
304 #if ENABLE(CURSOR_VISIBILITY)
305     case CSSPropertyWebkitCursorVisibility:
306 #endif
307     case CSSPropertyWebkitFontFeatureSettings:
308     case CSSPropertyWebkitFontKerning:
309     case CSSPropertyWebkitFontSmoothing:
310     case CSSPropertyWebkitFontVariantLigatures:
311     case CSSPropertyWebkitLocale:
312     case CSSPropertyWebkitHighlight:
313     case CSSPropertyWebkitHyphenateCharacter:
314     case CSSPropertyWebkitHyphenateLimitAfter:
315     case CSSPropertyWebkitHyphenateLimitBefore:
316     case CSSPropertyWebkitHyphenateLimitLines:
317     case CSSPropertyWebkitHyphens:
318     case CSSPropertyWebkitLineAlign:
319     case CSSPropertyWebkitLineBoxContain:
320     case CSSPropertyWebkitLineBreak:
321     case CSSPropertyWebkitLineGrid:
322     case CSSPropertyWebkitLineSnap:
323     case CSSPropertyWebkitNbspMode:
324 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
325     case CSSPropertyWebkitOverflowScrolling:
326 #endif
327     case CSSPropertyWebkitPrintColorAdjust:
328     case CSSPropertyWebkitRtlOrdering:
329     case CSSPropertyWebkitRubyPosition:
330     case CSSPropertyWebkitTextCombine:
331 #if ENABLE(CSS3_TEXT)
332     case CSSPropertyWebkitTextDecorationLine:
333     case CSSPropertyWebkitTextAlignLast:
334     case CSSPropertyWebkitTextJustify:
335     case CSSPropertyWebkitTextUnderlinePosition:
336 #endif // CSS3_TEXT
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 CSSPropertyWebkitTextStroke:
346     case CSSPropertyWebkitTextStrokeColor:
347     case CSSPropertyWebkitTextStrokeWidth:
348     case CSSPropertyWebkitUserModify:
349     case CSSPropertyWebkitUserSelect:
350     case CSSPropertyWebkitWritingMode:
351     case CSSPropertyWhiteSpace:
352     case CSSPropertyWidows:
353     case CSSPropertyWordBreak:
354     case CSSPropertyWordSpacing:
355     case CSSPropertyWordWrap:
356 #if ENABLE(SVG)
357     case CSSPropertyClipRule:
358     case CSSPropertyColorInterpolation:
359     case CSSPropertyColorInterpolationFilters:
360     case CSSPropertyColorRendering:
361     case CSSPropertyFill:
362     case CSSPropertyFillOpacity:
363     case CSSPropertyFillRule:
364     case CSSPropertyGlyphOrientationHorizontal:
365     case CSSPropertyGlyphOrientationVertical:
366     case CSSPropertyKerning:
367     case CSSPropertyMarker:
368     case CSSPropertyMarkerEnd:
369     case CSSPropertyMarkerMid:
370     case CSSPropertyMarkerStart:
371     case CSSPropertyStroke:
372     case CSSPropertyStrokeDasharray:
373     case CSSPropertyStrokeDashoffset:
374     case CSSPropertyStrokeLinecap:
375     case CSSPropertyStrokeLinejoin:
376     case CSSPropertyStrokeMiterlimit:
377     case CSSPropertyStrokeOpacity:
378     case CSSPropertyStrokeWidth:
379     case CSSPropertyShapeRendering:
380     case CSSPropertyTextAnchor:
381     case CSSPropertyWritingMode:
382 #endif
383 #if ENABLE(TOUCH_EVENTS)
384     case CSSPropertyWebkitTapHighlightColor:
385 #endif
386         return true;
387     case CSSPropertyDisplay:
388     case CSSPropertyZoom:
389     case CSSPropertyBackground:
390     case CSSPropertyBackgroundAttachment:
391     case CSSPropertyBackgroundClip:
392     case CSSPropertyBackgroundColor:
393     case CSSPropertyBackgroundImage:
394     case CSSPropertyBackgroundOrigin:
395     case CSSPropertyBackgroundPosition:
396     case CSSPropertyBackgroundPositionX:
397     case CSSPropertyBackgroundPositionY:
398     case CSSPropertyBackgroundRepeat:
399     case CSSPropertyBackgroundRepeatX:
400     case CSSPropertyBackgroundRepeatY:
401     case CSSPropertyBackgroundSize:
402     case CSSPropertyBorder:
403     case CSSPropertyBorderBottom:
404     case CSSPropertyBorderBottomColor:
405     case CSSPropertyBorderBottomLeftRadius:
406     case CSSPropertyBorderBottomRightRadius:
407     case CSSPropertyBorderBottomStyle:
408     case CSSPropertyBorderBottomWidth:
409     case CSSPropertyBorderColor:
410     case CSSPropertyBorderImage:
411     case CSSPropertyBorderImageOutset:
412     case CSSPropertyBorderImageRepeat:
413     case CSSPropertyBorderImageSlice:
414     case CSSPropertyBorderImageSource:
415     case CSSPropertyBorderImageWidth:
416     case CSSPropertyBorderLeft:
417     case CSSPropertyBorderLeftColor:
418     case CSSPropertyBorderLeftStyle:
419     case CSSPropertyBorderLeftWidth:
420     case CSSPropertyBorderRadius:
421     case CSSPropertyBorderRight:
422     case CSSPropertyBorderRightColor:
423     case CSSPropertyBorderRightStyle:
424     case CSSPropertyBorderRightWidth:
425     case CSSPropertyBorderStyle:
426     case CSSPropertyBorderTop:
427     case CSSPropertyBorderTopColor:
428     case CSSPropertyBorderTopLeftRadius:
429     case CSSPropertyBorderTopRightRadius:
430     case CSSPropertyBorderTopStyle:
431     case CSSPropertyBorderTopWidth:
432     case CSSPropertyBorderWidth:
433     case CSSPropertyBottom:
434     case CSSPropertyBoxShadow:
435     case CSSPropertyBoxSizing:
436     case CSSPropertyClear:
437     case CSSPropertyClip:
438     case CSSPropertyContent:
439     case CSSPropertyCounterIncrement:
440     case CSSPropertyCounterReset:
441     case CSSPropertyFloat:
442     case CSSPropertyFontStretch:
443 #if ENABLE(CSS_SHADERS)
444     case CSSPropertyGeometry:
445 #endif
446     case CSSPropertyHeight:
447     case CSSPropertyLeft:
448     case CSSPropertyMargin:
449     case CSSPropertyMarginBottom:
450     case CSSPropertyMarginLeft:
451     case CSSPropertyMarginRight:
452     case CSSPropertyMarginTop:
453     case CSSPropertyMaxHeight:
454     case CSSPropertyMaxWidth:
455     case CSSPropertyMinHeight:
456     case CSSPropertyMinWidth:
457     case CSSPropertyOpacity:
458     case CSSPropertyOutline:
459     case CSSPropertyOutlineColor:
460     case CSSPropertyOutlineOffset:
461     case CSSPropertyOutlineStyle:
462     case CSSPropertyOutlineWidth:
463     case CSSPropertyOverflow:
464     case CSSPropertyOverflowWrap:
465     case CSSPropertyOverflowX:
466     case CSSPropertyOverflowY:
467     case CSSPropertyPadding:
468     case CSSPropertyPaddingBottom:
469     case CSSPropertyPaddingLeft:
470     case CSSPropertyPaddingRight:
471     case CSSPropertyPaddingTop:
472     case CSSPropertyPage:
473     case CSSPropertyPageBreakAfter:
474     case CSSPropertyPageBreakBefore:
475     case CSSPropertyPageBreakInside:
476     case CSSPropertyPosition:
477     case CSSPropertyRight:
478     case CSSPropertySize:
479     case CSSPropertySrc:
480     case CSSPropertyTableLayout:
481     case CSSPropertyTextLineThrough:
482     case CSSPropertyTextLineThroughColor:
483     case CSSPropertyTextLineThroughMode:
484     case CSSPropertyTextLineThroughStyle:
485     case CSSPropertyTextLineThroughWidth:
486     case CSSPropertyTextOverflow:
487     case CSSPropertyTextOverline:
488     case CSSPropertyTextOverlineColor:
489     case CSSPropertyTextOverlineMode:
490     case CSSPropertyTextOverlineStyle:
491     case CSSPropertyTextOverlineWidth:
492     case CSSPropertyTextUnderline:
493     case CSSPropertyTextUnderlineColor:
494     case CSSPropertyTextUnderlineMode:
495     case CSSPropertyTextUnderlineStyle:
496     case CSSPropertyTextUnderlineWidth:
497     case CSSPropertyTop:
498     case CSSPropertyTransition:
499     case CSSPropertyTransitionDelay:
500     case CSSPropertyTransitionDuration:
501     case CSSPropertyTransitionProperty:
502     case CSSPropertyTransitionTimingFunction:
503     case CSSPropertyUnicodeBidi:
504     case CSSPropertyUnicodeRange:
505     case CSSPropertyVerticalAlign:
506     case CSSPropertyWidth:
507     case CSSPropertyZIndex:
508     case CSSPropertyWebkitAnimation:
509     case CSSPropertyWebkitAnimationDelay:
510     case CSSPropertyWebkitAnimationDirection:
511     case CSSPropertyWebkitAnimationDuration:
512     case CSSPropertyWebkitAnimationFillMode:
513     case CSSPropertyWebkitAnimationIterationCount:
514     case CSSPropertyWebkitAnimationName:
515     case CSSPropertyWebkitAnimationPlayState:
516     case CSSPropertyWebkitAnimationTimingFunction:
517     case CSSPropertyWebkitAppearance:
518     case CSSPropertyWebkitBackfaceVisibility:
519     case CSSPropertyWebkitBackgroundBlendMode:
520     case CSSPropertyWebkitBackgroundClip:
521     case CSSPropertyWebkitBackgroundComposite:
522     case CSSPropertyWebkitBackgroundOrigin:
523     case CSSPropertyWebkitBackgroundSize:
524     case CSSPropertyWebkitBorderAfter:
525     case CSSPropertyWebkitBorderAfterColor:
526     case CSSPropertyWebkitBorderAfterStyle:
527     case CSSPropertyWebkitBorderAfterWidth:
528     case CSSPropertyWebkitBorderBefore:
529     case CSSPropertyWebkitBorderBeforeColor:
530     case CSSPropertyWebkitBorderBeforeStyle:
531     case CSSPropertyWebkitBorderBeforeWidth:
532     case CSSPropertyWebkitBorderEnd:
533     case CSSPropertyWebkitBorderEndColor:
534     case CSSPropertyWebkitBorderEndStyle:
535     case CSSPropertyWebkitBorderEndWidth:
536     case CSSPropertyWebkitBorderFit:
537     case CSSPropertyWebkitBorderImage:
538     case CSSPropertyWebkitBorderRadius:
539     case CSSPropertyWebkitBorderStart:
540     case CSSPropertyWebkitBorderStartColor:
541     case CSSPropertyWebkitBorderStartStyle:
542     case CSSPropertyWebkitBorderStartWidth:
543     case CSSPropertyWebkitBoxAlign:
544 #if ENABLE(CSS_BOX_DECORATION_BREAK)
545     case CSSPropertyWebkitBoxDecorationBreak:
546 #endif
547     case CSSPropertyWebkitBoxFlex:
548     case CSSPropertyWebkitBoxFlexGroup:
549     case CSSPropertyWebkitBoxLines:
550     case CSSPropertyWebkitBoxOrdinalGroup:
551     case CSSPropertyWebkitBoxOrient:
552     case CSSPropertyWebkitBoxPack:
553     case CSSPropertyWebkitBoxReflect:
554     case CSSPropertyWebkitBoxShadow:
555     case CSSPropertyWebkitClipPath:
556     case CSSPropertyWebkitColumnAxis:
557     case CSSPropertyWebkitColumnBreakAfter:
558     case CSSPropertyWebkitColumnBreakBefore:
559     case CSSPropertyWebkitColumnBreakInside:
560     case CSSPropertyWebkitColumnCount:
561     case CSSPropertyWebkitColumnGap:
562     case CSSPropertyWebkitColumnProgression:
563     case CSSPropertyWebkitColumnRule:
564     case CSSPropertyWebkitColumnRuleColor:
565     case CSSPropertyWebkitColumnRuleStyle:
566     case CSSPropertyWebkitColumnRuleWidth:
567     case CSSPropertyWebkitColumnSpan:
568     case CSSPropertyWebkitColumnWidth:
569     case CSSPropertyWebkitColumns:
570 #if ENABLE(CSS_FILTERS)
571     case CSSPropertyWebkitFilter:
572 #endif
573 #if ENABLE(CSS_COMPOSITING)
574     case CSSPropertyWebkitBlendMode:
575 #endif
576     case CSSPropertyWebkitAlignContent:
577     case CSSPropertyWebkitAlignItems:
578     case CSSPropertyWebkitAlignSelf:
579     case CSSPropertyWebkitFlex:
580     case CSSPropertyWebkitFlexBasis:
581     case CSSPropertyWebkitFlexDirection:
582     case CSSPropertyWebkitFlexFlow:
583     case CSSPropertyWebkitFlexGrow:
584     case CSSPropertyWebkitFlexShrink:
585     case CSSPropertyWebkitFlexWrap:
586     case CSSPropertyWebkitJustifyContent:
587     case CSSPropertyWebkitOrder:
588     case CSSPropertyWebkitFontSizeDelta:
589     case CSSPropertyWebkitGridAutoColumns:
590     case CSSPropertyWebkitGridAutoFlow:
591     case CSSPropertyWebkitGridAutoRows:
592     case CSSPropertyWebkitGridColumns:
593     case CSSPropertyWebkitGridRows:
594     case CSSPropertyWebkitGridStart:
595     case CSSPropertyWebkitGridEnd:
596     case CSSPropertyWebkitGridBefore:
597     case CSSPropertyWebkitGridAfter:
598     case CSSPropertyWebkitGridColumn:
599     case CSSPropertyWebkitGridRow:
600     case CSSPropertyWebkitLineClamp:
601     case CSSPropertyWebkitLogicalWidth:
602     case CSSPropertyWebkitLogicalHeight:
603     case CSSPropertyWebkitMarginAfterCollapse:
604     case CSSPropertyWebkitMarginBeforeCollapse:
605     case CSSPropertyWebkitMarginBottomCollapse:
606     case CSSPropertyWebkitMarginTopCollapse:
607     case CSSPropertyWebkitMarginCollapse:
608     case CSSPropertyWebkitMarginAfter:
609     case CSSPropertyWebkitMarginBefore:
610     case CSSPropertyWebkitMarginEnd:
611     case CSSPropertyWebkitMarginStart:
612     case CSSPropertyWebkitMarquee:
613     case CSSPropertyWebkitMarqueeDirection:
614     case CSSPropertyWebkitMarqueeIncrement:
615     case CSSPropertyWebkitMarqueeRepetition:
616     case CSSPropertyWebkitMarqueeSpeed:
617     case CSSPropertyWebkitMarqueeStyle:
618     case CSSPropertyWebkitMask:
619     case CSSPropertyWebkitMaskBoxImage:
620     case CSSPropertyWebkitMaskBoxImageOutset:
621     case CSSPropertyWebkitMaskBoxImageRepeat:
622     case CSSPropertyWebkitMaskBoxImageSlice:
623     case CSSPropertyWebkitMaskBoxImageSource:
624     case CSSPropertyWebkitMaskBoxImageWidth:
625     case CSSPropertyWebkitMaskClip:
626     case CSSPropertyWebkitMaskComposite:
627     case CSSPropertyWebkitMaskImage:
628     case CSSPropertyWebkitMaskOrigin:
629     case CSSPropertyWebkitMaskPosition:
630     case CSSPropertyWebkitMaskPositionX:
631     case CSSPropertyWebkitMaskPositionY:
632     case CSSPropertyWebkitMaskRepeat:
633     case CSSPropertyWebkitMaskRepeatX:
634     case CSSPropertyWebkitMaskRepeatY:
635     case CSSPropertyWebkitMaskSize:
636     case CSSPropertyWebkitMaxLogicalWidth:
637     case CSSPropertyWebkitMaxLogicalHeight:
638     case CSSPropertyWebkitMinLogicalWidth:
639     case CSSPropertyWebkitMinLogicalHeight:
640     case CSSPropertyWebkitPaddingAfter:
641     case CSSPropertyWebkitPaddingBefore:
642     case CSSPropertyWebkitPaddingEnd:
643     case CSSPropertyWebkitPaddingStart:
644     case CSSPropertyWebkitPerspective:
645     case CSSPropertyWebkitPerspectiveOrigin:
646     case CSSPropertyWebkitPerspectiveOriginX:
647     case CSSPropertyWebkitPerspectiveOriginY:
648 #if ENABLE(CSS3_TEXT)
649     case CSSPropertyWebkitTextDecorationStyle:
650     case CSSPropertyWebkitTextDecorationColor:
651 #endif // CSS3_TEXT
652     case CSSPropertyWebkitTransform:
653     case CSSPropertyWebkitTransformOrigin:
654     case CSSPropertyWebkitTransformOriginX:
655     case CSSPropertyWebkitTransformOriginY:
656     case CSSPropertyWebkitTransformOriginZ:
657     case CSSPropertyWebkitTransformStyle:
658     case CSSPropertyWebkitTransition:
659     case CSSPropertyWebkitTransitionDelay:
660     case CSSPropertyWebkitTransitionDuration:
661     case CSSPropertyWebkitTransitionProperty:
662     case CSSPropertyWebkitTransitionTimingFunction:
663     case CSSPropertyWebkitUserDrag:
664 #if ENABLE(CSS_REGIONS)
665     case CSSPropertyWebkitFlowInto:
666     case CSSPropertyWebkitFlowFrom:
667     case CSSPropertyWebkitRegionBreakAfter:
668     case CSSPropertyWebkitRegionBreakBefore:
669     case CSSPropertyWebkitRegionBreakInside:
670     case CSSPropertyWebkitRegionFragment:
671 #endif
672 #if ENABLE(CSS_EXCLUSIONS)
673     case CSSPropertyWebkitWrapFlow:
674     case CSSPropertyWebkitWrapThrough:
675 #endif
676 #if ENABLE(CSS_SHAPES)
677     case CSSPropertyWebkitShapeMargin:
678     case CSSPropertyWebkitShapePadding:
679     case CSSPropertyWebkitShapeInside:
680     case CSSPropertyWebkitShapeOutside:
681 #endif
682 #if ENABLE(CSS_SHADERS)
683     case CSSPropertyMix:
684     case CSSPropertyParameters:
685 #endif
686 #if ENABLE(SVG)
687     case CSSPropertyClipPath:
688     case CSSPropertyMask:
689     case CSSPropertyMaskType:
690     case CSSPropertyEnableBackground:
691     case CSSPropertyFilter:
692     case CSSPropertyFloodColor:
693     case CSSPropertyFloodOpacity:
694     case CSSPropertyLightingColor:
695     case CSSPropertyStopColor:
696     case CSSPropertyStopOpacity:
697     case CSSPropertyColorProfile:
698     case CSSPropertyAlignmentBaseline:
699     case CSSPropertyBaselineShift:
700     case CSSPropertyDominantBaseline:
701     case CSSPropertyVectorEffect:
702     case CSSPropertyBufferedRendering:
703     case CSSPropertyWebkitSvgShadow:
704 #endif
705 #if ENABLE(DASHBOARD_SUPPORT)
706     case CSSPropertyWebkitDashboardRegion:
707 #endif
708 #if ENABLE(DRAGGABLE_REGION)
709     case CSSPropertyWebkitAppRegion:
710 #endif
711 #if ENABLE(CSS_DEVICE_ADAPTATION)
712     case CSSPropertyMaxZoom:
713     case CSSPropertyMinZoom:
714     case CSSPropertyOrientation:
715     case CSSPropertyUserZoom:
716 #endif
717         return false;
718     case CSSPropertyInvalid:
719         ASSERT_NOT_REACHED();
720         return false;
721     }
722     ASSERT_NOT_REACHED();
723     return false;
724 }
725
726 } // namespace WebCore