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