| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Andreas Kling (kling@webkit.org) | 2 * Copyright (C) 2011 Andreas Kling (kling@webkit.org) |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 #include "core/css/CSSValue.h" | 28 #include "core/css/CSSValue.h" |
| 29 | 29 |
| 30 #include "core/css/CSSBasicShapeValues.h" | 30 #include "core/css/CSSBasicShapeValues.h" |
| 31 #include "core/css/CSSBorderImageSliceValue.h" | 31 #include "core/css/CSSBorderImageSliceValue.h" |
| 32 #include "core/css/CSSCanvasValue.h" | 32 #include "core/css/CSSCanvasValue.h" |
| 33 #include "core/css/CSSContentDistributionValue.h" | 33 #include "core/css/CSSContentDistributionValue.h" |
| 34 #include "core/css/CSSCounterValue.h" | 34 #include "core/css/CSSCounterValue.h" |
| 35 #include "core/css/CSSCrossfadeValue.h" | 35 #include "core/css/CSSCrossfadeValue.h" |
| 36 #include "core/css/CSSCursorImageValue.h" | 36 #include "core/css/CSSCursorImageValue.h" |
| 37 #include "core/css/CSSCustomIdentValue.h" | 37 #include "core/css/CSSCustomIdentValue.h" |
| 38 #include "core/css/CSSCustomPropertyDeclaration.h" |
| 38 #include "core/css/CSSFontFaceSrcValue.h" | 39 #include "core/css/CSSFontFaceSrcValue.h" |
| 39 #include "core/css/CSSFontFeatureValue.h" | 40 #include "core/css/CSSFontFeatureValue.h" |
| 40 #include "core/css/CSSFunctionValue.h" | 41 #include "core/css/CSSFunctionValue.h" |
| 41 #include "core/css/CSSGradientValue.h" | 42 #include "core/css/CSSGradientValue.h" |
| 42 #include "core/css/CSSGridLineNamesValue.h" | 43 #include "core/css/CSSGridLineNamesValue.h" |
| 43 #include "core/css/CSSGridTemplateAreasValue.h" | 44 #include "core/css/CSSGridTemplateAreasValue.h" |
| 44 #include "core/css/CSSImageSetValue.h" | 45 #include "core/css/CSSImageSetValue.h" |
| 45 #include "core/css/CSSImageValue.h" | 46 #include "core/css/CSSImageValue.h" |
| 46 #include "core/css/CSSInheritedValue.h" | 47 #include "core/css/CSSInheritedValue.h" |
| 47 #include "core/css/CSSInitialValue.h" | 48 #include "core/css/CSSInitialValue.h" |
| 48 #include "core/css/CSSPathValue.h" | 49 #include "core/css/CSSPathValue.h" |
| 49 #include "core/css/CSSPrimitiveValue.h" | 50 #include "core/css/CSSPrimitiveValue.h" |
| 50 #include "core/css/CSSQuadValue.h" | 51 #include "core/css/CSSQuadValue.h" |
| 51 #include "core/css/CSSReflectValue.h" | 52 #include "core/css/CSSReflectValue.h" |
| 52 #include "core/css/CSSSVGDocumentValue.h" | 53 #include "core/css/CSSSVGDocumentValue.h" |
| 53 #include "core/css/CSSShadowValue.h" | 54 #include "core/css/CSSShadowValue.h" |
| 54 #include "core/css/CSSStringValue.h" | 55 #include "core/css/CSSStringValue.h" |
| 55 #include "core/css/CSSTimingFunctionValue.h" | 56 #include "core/css/CSSTimingFunctionValue.h" |
| 56 #include "core/css/CSSURIValue.h" | 57 #include "core/css/CSSURIValue.h" |
| 57 #include "core/css/CSSUnicodeRangeValue.h" | 58 #include "core/css/CSSUnicodeRangeValue.h" |
| 58 #include "core/css/CSSUnsetValue.h" | 59 #include "core/css/CSSUnsetValue.h" |
| 59 #include "core/css/CSSValueList.h" | 60 #include "core/css/CSSValueList.h" |
| 60 #include "core/css/CSSValuePair.h" | 61 #include "core/css/CSSValuePair.h" |
| 62 #include "core/css/CSSVariableReferenceValue.h" |
| 61 | 63 |
| 62 namespace blink { | 64 namespace blink { |
| 63 | 65 |
| 64 struct SameSizeAsCSSValue : public RefCountedWillBeGarbageCollectedFinalized<Sam
eSizeAsCSSValue> { | 66 struct SameSizeAsCSSValue : public RefCountedWillBeGarbageCollectedFinalized<Sam
eSizeAsCSSValue> { |
| 65 uint32_t bitfields; | 67 uint32_t bitfields; |
| 66 }; | 68 }; |
| 67 | 69 |
| 68 static_assert(sizeof(CSSValue) <= sizeof(SameSizeAsCSSValue), "CSSValue should s
tay small"); | 70 static_assert(sizeof(CSSValue) <= sizeof(SameSizeAsCSSValue), "CSSValue should s
tay small"); |
| 69 | 71 |
| 70 bool CSSValue::isImplicitInitialValue() const | 72 bool CSSValue::isImplicitInitialValue() const |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 case ValueListClass: | 165 case ValueListClass: |
| 164 return compareCSSValues<CSSValueList>(*this, other); | 166 return compareCSSValues<CSSValueList>(*this, other); |
| 165 case ValuePairClass: | 167 case ValuePairClass: |
| 166 return compareCSSValues<CSSValuePair>(*this, other); | 168 return compareCSSValues<CSSValuePair>(*this, other); |
| 167 case ImageSetClass: | 169 case ImageSetClass: |
| 168 return compareCSSValues<CSSImageSetValue>(*this, other); | 170 return compareCSSValues<CSSImageSetValue>(*this, other); |
| 169 case CSSSVGDocumentClass: | 171 case CSSSVGDocumentClass: |
| 170 return compareCSSValues<CSSSVGDocumentValue>(*this, other); | 172 return compareCSSValues<CSSSVGDocumentValue>(*this, other); |
| 171 case CSSContentDistributionClass: | 173 case CSSContentDistributionClass: |
| 172 return compareCSSValues<CSSContentDistributionValue>(*this, other); | 174 return compareCSSValues<CSSContentDistributionValue>(*this, other); |
| 175 case CustomPropertyDeclarationClass: |
| 176 return compareCSSValues<CSSCustomPropertyDeclaration>(*this, other); |
| 177 case VariableReferenceClass: |
| 178 return compareCSSValues<CSSVariableReferenceValue>(*this, other); |
| 173 } | 179 } |
| 174 ASSERT_NOT_REACHED(); | 180 ASSERT_NOT_REACHED(); |
| 175 return false; | 181 return false; |
| 176 } | 182 } |
| 177 return false; | 183 return false; |
| 178 } | 184 } |
| 179 | 185 |
| 180 String CSSValue::cssText() const | 186 String CSSValue::cssText() const |
| 181 { | 187 { |
| 182 switch (classType()) { | 188 switch (classType()) { |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 case ValuePairClass: | 251 case ValuePairClass: |
| 246 return toCSSValuePair(this)->customCSSText(); | 252 return toCSSValuePair(this)->customCSSText(); |
| 247 case ValueListClass: | 253 case ValueListClass: |
| 248 return toCSSValueList(this)->customCSSText(); | 254 return toCSSValueList(this)->customCSSText(); |
| 249 case ImageSetClass: | 255 case ImageSetClass: |
| 250 return toCSSImageSetValue(this)->customCSSText(); | 256 return toCSSImageSetValue(this)->customCSSText(); |
| 251 case CSSSVGDocumentClass: | 257 case CSSSVGDocumentClass: |
| 252 return toCSSSVGDocumentValue(this)->customCSSText(); | 258 return toCSSSVGDocumentValue(this)->customCSSText(); |
| 253 case CSSContentDistributionClass: | 259 case CSSContentDistributionClass: |
| 254 return toCSSContentDistributionValue(this)->customCSSText(); | 260 return toCSSContentDistributionValue(this)->customCSSText(); |
| 261 case VariableReferenceClass: |
| 262 return toCSSVariableReferenceValue(this)->customCSSText(); |
| 263 case CustomPropertyDeclarationClass: |
| 264 // TODO(leviw): We don't allow custom properties in CSSOM yet |
| 265 ASSERT_NOT_REACHED(); |
| 255 } | 266 } |
| 256 ASSERT_NOT_REACHED(); | 267 ASSERT_NOT_REACHED(); |
| 257 return String(); | 268 return String(); |
| 258 } | 269 } |
| 259 | 270 |
| 260 void CSSValue::destroy() | 271 void CSSValue::destroy() |
| 261 { | 272 { |
| 262 switch (classType()) { | 273 switch (classType()) { |
| 263 case BasicShapeCircleClass: | 274 case BasicShapeCircleClass: |
| 264 delete toCSSBasicShapeCircleValue(this); | 275 delete toCSSBasicShapeCircleValue(this); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 return; | 372 return; |
| 362 case ImageSetClass: | 373 case ImageSetClass: |
| 363 delete toCSSImageSetValue(this); | 374 delete toCSSImageSetValue(this); |
| 364 return; | 375 return; |
| 365 case CSSSVGDocumentClass: | 376 case CSSSVGDocumentClass: |
| 366 delete toCSSSVGDocumentValue(this); | 377 delete toCSSSVGDocumentValue(this); |
| 367 return; | 378 return; |
| 368 case CSSContentDistributionClass: | 379 case CSSContentDistributionClass: |
| 369 delete toCSSContentDistributionValue(this); | 380 delete toCSSContentDistributionValue(this); |
| 370 return; | 381 return; |
| 382 case VariableReferenceClass: |
| 383 delete toCSSVariableReferenceValue(this); |
| 384 return; |
| 385 case CustomPropertyDeclarationClass: |
| 386 delete toCSSCustomPropertyDeclaration(this); |
| 387 return; |
| 371 } | 388 } |
| 372 ASSERT_NOT_REACHED(); | 389 ASSERT_NOT_REACHED(); |
| 373 } | 390 } |
| 374 | 391 |
| 375 void CSSValue::finalizeGarbageCollectedObject() | 392 void CSSValue::finalizeGarbageCollectedObject() |
| 376 { | 393 { |
| 377 switch (classType()) { | 394 switch (classType()) { |
| 378 case BasicShapeCircleClass: | 395 case BasicShapeCircleClass: |
| 379 toCSSBasicShapeCircleValue(this)->~CSSBasicShapeCircleValue(); | 396 toCSSBasicShapeCircleValue(this)->~CSSBasicShapeCircleValue(); |
| 380 return; | 397 return; |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 return; | 493 return; |
| 477 case ImageSetClass: | 494 case ImageSetClass: |
| 478 toCSSImageSetValue(this)->~CSSImageSetValue(); | 495 toCSSImageSetValue(this)->~CSSImageSetValue(); |
| 479 return; | 496 return; |
| 480 case CSSSVGDocumentClass: | 497 case CSSSVGDocumentClass: |
| 481 toCSSSVGDocumentValue(this)->~CSSSVGDocumentValue(); | 498 toCSSSVGDocumentValue(this)->~CSSSVGDocumentValue(); |
| 482 return; | 499 return; |
| 483 case CSSContentDistributionClass: | 500 case CSSContentDistributionClass: |
| 484 toCSSContentDistributionValue(this)->~CSSContentDistributionValue(); | 501 toCSSContentDistributionValue(this)->~CSSContentDistributionValue(); |
| 485 return; | 502 return; |
| 503 case VariableReferenceClass: |
| 504 toCSSVariableReferenceValue(this)->~CSSVariableReferenceValue(); |
| 505 return; |
| 506 case CustomPropertyDeclarationClass: |
| 507 toCSSCustomPropertyDeclaration(this)->~CSSCustomPropertyDeclaration(); |
| 508 return; |
| 486 } | 509 } |
| 487 ASSERT_NOT_REACHED(); | 510 ASSERT_NOT_REACHED(); |
| 488 } | 511 } |
| 489 | 512 |
| 490 DEFINE_TRACE(CSSValue) | 513 DEFINE_TRACE(CSSValue) |
| 491 { | 514 { |
| 492 switch (classType()) { | 515 switch (classType()) { |
| 493 case BasicShapeCircleClass: | 516 case BasicShapeCircleClass: |
| 494 toCSSBasicShapeCircleValue(this)->traceAfterDispatch(visitor); | 517 toCSSBasicShapeCircleValue(this)->traceAfterDispatch(visitor); |
| 495 return; | 518 return; |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 591 return; | 614 return; |
| 592 case ImageSetClass: | 615 case ImageSetClass: |
| 593 toCSSImageSetValue(this)->traceAfterDispatch(visitor); | 616 toCSSImageSetValue(this)->traceAfterDispatch(visitor); |
| 594 return; | 617 return; |
| 595 case CSSSVGDocumentClass: | 618 case CSSSVGDocumentClass: |
| 596 toCSSSVGDocumentValue(this)->traceAfterDispatch(visitor); | 619 toCSSSVGDocumentValue(this)->traceAfterDispatch(visitor); |
| 597 return; | 620 return; |
| 598 case CSSContentDistributionClass: | 621 case CSSContentDistributionClass: |
| 599 toCSSContentDistributionValue(this)->traceAfterDispatch(visitor); | 622 toCSSContentDistributionValue(this)->traceAfterDispatch(visitor); |
| 600 return; | 623 return; |
| 624 case VariableReferenceClass: |
| 625 toCSSVariableReferenceValue(this)->traceAfterDispatch(visitor); |
| 626 return; |
| 627 case CustomPropertyDeclarationClass: |
| 628 toCSSCustomPropertyDeclaration(this)->traceAfterDispatch(visitor); |
| 629 return; |
| 601 } | 630 } |
| 602 ASSERT_NOT_REACHED(); | 631 ASSERT_NOT_REACHED(); |
| 603 } | 632 } |
| 604 | 633 |
| 605 } | 634 } |
| OLD | NEW |