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/CSSColorValue.h" | 32 #include "core/css/CSSColorValue.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 |