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