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 34namespace WebCore { 35 36struct SameSizeAsCSSProperty { 37 uint32_t bitfields; 38 void* value; 39}; 40 41COMPILE_ASSERT(sizeof(CSSProperty) == sizeof(SameSizeAsCSSProperty), CSSProperty_should_stay_small); 42 43void 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 50enum LogicalBoxSide { BeforeSide, EndSide, AfterSide, StartSide }; 51enum PhysicalBoxSide { TopSide, RightSide, BottomSide, LeftSide }; 52 53static 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 158enum LogicalExtent { LogicalWidth, LogicalHeight }; 159 160static 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 167static 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 174CSSPropertyID 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 254bool 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 CSSPropertyWebkitBackgroundClip: 520 case CSSPropertyWebkitBackgroundComposite: 521 case CSSPropertyWebkitBackgroundOrigin: 522 case CSSPropertyWebkitBackgroundSize: 523 case CSSPropertyWebkitBorderAfter: 524 case CSSPropertyWebkitBorderAfterColor: 525 case CSSPropertyWebkitBorderAfterStyle: 526 case CSSPropertyWebkitBorderAfterWidth: 527 case CSSPropertyWebkitBorderBefore: 528 case CSSPropertyWebkitBorderBeforeColor: 529 case CSSPropertyWebkitBorderBeforeStyle: 530 case CSSPropertyWebkitBorderBeforeWidth: 531 case CSSPropertyWebkitBorderEnd: 532 case CSSPropertyWebkitBorderEndColor: 533 case CSSPropertyWebkitBorderEndStyle: 534 case CSSPropertyWebkitBorderEndWidth: 535 case CSSPropertyWebkitBorderFit: 536 case CSSPropertyWebkitBorderImage: 537 case CSSPropertyWebkitBorderRadius: 538 case CSSPropertyWebkitBorderStart: 539 case CSSPropertyWebkitBorderStartColor: 540 case CSSPropertyWebkitBorderStartStyle: 541 case CSSPropertyWebkitBorderStartWidth: 542 case CSSPropertyWebkitBoxAlign: 543#if ENABLE(CSS_BOX_DECORATION_BREAK) 544 case CSSPropertyWebkitBoxDecorationBreak: 545#endif 546 case CSSPropertyWebkitBoxFlex: 547 case CSSPropertyWebkitBoxFlexGroup: 548 case CSSPropertyWebkitBoxLines: 549 case CSSPropertyWebkitBoxOrdinalGroup: 550 case CSSPropertyWebkitBoxOrient: 551 case CSSPropertyWebkitBoxPack: 552 case CSSPropertyWebkitBoxReflect: 553 case CSSPropertyWebkitBoxShadow: 554 case CSSPropertyWebkitClipPath: 555 case CSSPropertyWebkitColumnAxis: 556 case CSSPropertyWebkitColumnBreakAfter: 557 case CSSPropertyWebkitColumnBreakBefore: 558 case CSSPropertyWebkitColumnBreakInside: 559 case CSSPropertyWebkitColumnCount: 560 case CSSPropertyWebkitColumnGap: 561 case CSSPropertyWebkitColumnProgression: 562 case CSSPropertyWebkitColumnRule: 563 case CSSPropertyWebkitColumnRuleColor: 564 case CSSPropertyWebkitColumnRuleStyle: 565 case CSSPropertyWebkitColumnRuleWidth: 566 case CSSPropertyWebkitColumnSpan: 567 case CSSPropertyWebkitColumnWidth: 568 case CSSPropertyWebkitColumns: 569#if ENABLE(CSS_FILTERS) 570 case CSSPropertyWebkitFilter: 571#endif 572#if ENABLE(CSS_COMPOSITING) 573 case CSSPropertyWebkitBlendMode: 574 case CSSPropertyWebkitBackgroundBlendMode: 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 727