1 /** 2 * (C) 1999-2003 Lars Knoll (knoll (at) 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 37 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 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 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 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 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 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 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