Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(583)

Side by Side Diff: third_party/WebKit/Source/core/css/CSSValue.cpp

Issue 1192983003: CSS Custom Properties (Variables) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Use m_unit Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSValue.h ('k') | third_party/WebKit/Source/core/css/CSSValueKeywords.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698