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