| 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 12 matching lines...) Expand all Loading... |
| 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 24 * | 24 * |
| 25 */ | 25 */ |
| 26 | 26 |
| 27 #include "config.h" | 27 #include "config.h" |
| 28 #include "core/css/CSSValue.h" | 28 #include "core/css/CSSValue.h" |
| 29 | 29 |
| 30 #include "core/css/CSSBorderImageSliceValue.h" | 30 #include "core/css/CSSBorderImageSliceValue.h" |
| 31 #include "core/css/CSSCalculationValue.h" | 31 #include "core/css/CSSCalculationValue.h" |
| 32 #include "core/css/CSSCanvasValue.h" | 32 #include "core/css/CSSCanvasValue.h" |
| 33 #include "core/css/CSSContentDistributionValue.h" |
| 33 #include "core/css/CSSCrossfadeValue.h" | 34 #include "core/css/CSSCrossfadeValue.h" |
| 34 #include "core/css/CSSCursorImageValue.h" | 35 #include "core/css/CSSCursorImageValue.h" |
| 35 #include "core/css/CSSFilterValue.h" | 36 #include "core/css/CSSFilterValue.h" |
| 36 #include "core/css/CSSFontFaceSrcValue.h" | 37 #include "core/css/CSSFontFaceSrcValue.h" |
| 37 #include "core/css/CSSFontFeatureValue.h" | 38 #include "core/css/CSSFontFeatureValue.h" |
| 38 #include "core/css/CSSFontValue.h" | 39 #include "core/css/CSSFontValue.h" |
| 39 #include "core/css/CSSFunctionValue.h" | 40 #include "core/css/CSSFunctionValue.h" |
| 40 #include "core/css/CSSGradientValue.h" | 41 #include "core/css/CSSGradientValue.h" |
| 41 #include "core/css/CSSGridLineNamesValue.h" | 42 #include "core/css/CSSGridLineNamesValue.h" |
| 42 #include "core/css/CSSGridTemplateAreasValue.h" | 43 #include "core/css/CSSGridTemplateAreasValue.h" |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 case LineBoxContainClass: | 203 case LineBoxContainClass: |
| 203 return compareCSSValues<CSSLineBoxContainValue>(*this, other); | 204 return compareCSSValues<CSSLineBoxContainValue>(*this, other); |
| 204 case CalculationClass: | 205 case CalculationClass: |
| 205 return compareCSSValues<CSSCalcValue>(*this, other); | 206 return compareCSSValues<CSSCalcValue>(*this, other); |
| 206 case ImageSetClass: | 207 case ImageSetClass: |
| 207 return compareCSSValues<CSSImageSetValue>(*this, other); | 208 return compareCSSValues<CSSImageSetValue>(*this, other); |
| 208 case CSSFilterClass: | 209 case CSSFilterClass: |
| 209 return compareCSSValues<CSSFilterValue>(*this, other); | 210 return compareCSSValues<CSSFilterValue>(*this, other); |
| 210 case CSSSVGDocumentClass: | 211 case CSSSVGDocumentClass: |
| 211 return compareCSSValues<CSSSVGDocumentValue>(*this, other); | 212 return compareCSSValues<CSSSVGDocumentValue>(*this, other); |
| 213 case CSSContentDistributionClass: |
| 214 return compareCSSValues<CSSContentDistributionValue>(*this, other); |
| 212 default: | 215 default: |
| 213 ASSERT_NOT_REACHED(); | 216 ASSERT_NOT_REACHED(); |
| 214 return false; | 217 return false; |
| 215 } | 218 } |
| 216 } else if (m_classType == ValueListClass && other.m_classType != ValueListCl
ass) | 219 } else if (m_classType == ValueListClass && other.m_classType != ValueListCl
ass) |
| 217 return toCSSValueList(this)->equals(other); | 220 return toCSSValueList(this)->equals(other); |
| 218 else if (m_classType != ValueListClass && other.m_classType == ValueListClas
s) | 221 else if (m_classType != ValueListClass && other.m_classType == ValueListClas
s) |
| 219 return static_cast<const CSSValueList&>(other).equals(*this); | 222 return static_cast<const CSSValueList&>(other).equals(*this); |
| 220 return false; | 223 return false; |
| 221 } | 224 } |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 case LineBoxContainClass: | 281 case LineBoxContainClass: |
| 279 return toCSSLineBoxContainValue(this)->customCSSText(); | 282 return toCSSLineBoxContainValue(this)->customCSSText(); |
| 280 case CalculationClass: | 283 case CalculationClass: |
| 281 return toCSSCalcValue(this)->customCSSText(); | 284 return toCSSCalcValue(this)->customCSSText(); |
| 282 case ImageSetClass: | 285 case ImageSetClass: |
| 283 return toCSSImageSetValue(this)->customCSSText(); | 286 return toCSSImageSetValue(this)->customCSSText(); |
| 284 case CSSFilterClass: | 287 case CSSFilterClass: |
| 285 return toCSSFilterValue(this)->customCSSText(); | 288 return toCSSFilterValue(this)->customCSSText(); |
| 286 case CSSSVGDocumentClass: | 289 case CSSSVGDocumentClass: |
| 287 return toCSSSVGDocumentValue(this)->customCSSText(); | 290 return toCSSSVGDocumentValue(this)->customCSSText(); |
| 291 case CSSContentDistributionClass: |
| 292 return toCSSContentDistributionValue(this)->customCSSText(); |
| 288 } | 293 } |
| 289 ASSERT_NOT_REACHED(); | 294 ASSERT_NOT_REACHED(); |
| 290 return String(); | 295 return String(); |
| 291 } | 296 } |
| 292 | 297 |
| 293 void CSSValue::destroy() | 298 void CSSValue::destroy() |
| 294 { | 299 { |
| 295 if (m_isTextClone) { | 300 if (m_isTextClone) { |
| 296 ASSERT(isCSSOMSafe()); | 301 ASSERT(isCSSOMSafe()); |
| 297 delete toTextCloneCSSValue(this); | 302 delete toTextCloneCSSValue(this); |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 delete toCSSCalcValue(this); | 381 delete toCSSCalcValue(this); |
| 377 return; | 382 return; |
| 378 case ImageSetClass: | 383 case ImageSetClass: |
| 379 delete toCSSImageSetValue(this); | 384 delete toCSSImageSetValue(this); |
| 380 return; | 385 return; |
| 381 case CSSFilterClass: | 386 case CSSFilterClass: |
| 382 delete toCSSFilterValue(this); | 387 delete toCSSFilterValue(this); |
| 383 return; | 388 return; |
| 384 case CSSSVGDocumentClass: | 389 case CSSSVGDocumentClass: |
| 385 delete toCSSSVGDocumentValue(this); | 390 delete toCSSSVGDocumentValue(this); |
| 391 case CSSContentDistributionClass: |
| 392 delete toCSSContentDistributionValue(this); |
| 386 return; | 393 return; |
| 387 } | 394 } |
| 388 ASSERT_NOT_REACHED(); | 395 ASSERT_NOT_REACHED(); |
| 389 } | 396 } |
| 390 | 397 |
| 391 void CSSValue::finalizeGarbageCollectedObject() | 398 void CSSValue::finalizeGarbageCollectedObject() |
| 392 { | 399 { |
| 393 if (m_isTextClone) { | 400 if (m_isTextClone) { |
| 394 ASSERT(isCSSOMSafe()); | 401 ASSERT(isCSSOMSafe()); |
| 395 toTextCloneCSSValue(this)->~TextCloneCSSValue(); | 402 toTextCloneCSSValue(this)->~TextCloneCSSValue(); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 return; | 482 return; |
| 476 case ImageSetClass: | 483 case ImageSetClass: |
| 477 toCSSImageSetValue(this)->~CSSImageSetValue(); | 484 toCSSImageSetValue(this)->~CSSImageSetValue(); |
| 478 return; | 485 return; |
| 479 case CSSFilterClass: | 486 case CSSFilterClass: |
| 480 toCSSFilterValue(this)->~CSSFilterValue(); | 487 toCSSFilterValue(this)->~CSSFilterValue(); |
| 481 return; | 488 return; |
| 482 case CSSSVGDocumentClass: | 489 case CSSSVGDocumentClass: |
| 483 toCSSSVGDocumentValue(this)->~CSSSVGDocumentValue(); | 490 toCSSSVGDocumentValue(this)->~CSSSVGDocumentValue(); |
| 484 return; | 491 return; |
| 492 case CSSContentDistributionClass: |
| 493 toCSSContentDistributionValue(this)->~CSSContentDistributionValue(); |
| 494 return; |
| 485 } | 495 } |
| 486 ASSERT_NOT_REACHED(); | 496 ASSERT_NOT_REACHED(); |
| 487 } | 497 } |
| 488 | 498 |
| 489 void CSSValue::trace(Visitor* visitor) | 499 void CSSValue::trace(Visitor* visitor) |
| 490 { | 500 { |
| 491 if (m_isTextClone) { | 501 if (m_isTextClone) { |
| 492 ASSERT(isCSSOMSafe()); | 502 ASSERT(isCSSOMSafe()); |
| 493 toTextCloneCSSValue(this)->traceAfterDispatch(visitor); | 503 toTextCloneCSSValue(this)->traceAfterDispatch(visitor); |
| 494 return; | 504 return; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 573 return; | 583 return; |
| 574 case ImageSetClass: | 584 case ImageSetClass: |
| 575 toCSSImageSetValue(this)->traceAfterDispatch(visitor); | 585 toCSSImageSetValue(this)->traceAfterDispatch(visitor); |
| 576 return; | 586 return; |
| 577 case CSSFilterClass: | 587 case CSSFilterClass: |
| 578 toCSSFilterValue(this)->traceAfterDispatch(visitor); | 588 toCSSFilterValue(this)->traceAfterDispatch(visitor); |
| 579 return; | 589 return; |
| 580 case CSSSVGDocumentClass: | 590 case CSSSVGDocumentClass: |
| 581 toCSSSVGDocumentValue(this)->traceAfterDispatch(visitor); | 591 toCSSSVGDocumentValue(this)->traceAfterDispatch(visitor); |
| 582 return; | 592 return; |
| 593 case CSSContentDistributionClass: |
| 594 toCSSContentDistributionValue(this)->traceAfterDispatch(visitor); |
| 595 return; |
| 583 } | 596 } |
| 584 ASSERT_NOT_REACHED(); | 597 ASSERT_NOT_REACHED(); |
| 585 } | 598 } |
| 586 | 599 |
| 587 PassRefPtrWillBeRawPtr<CSSValue> CSSValue::cloneForCSSOM() const | 600 PassRefPtrWillBeRawPtr<CSSValue> CSSValue::cloneForCSSOM() const |
| 588 { | 601 { |
| 589 switch (classType()) { | 602 switch (classType()) { |
| 590 case PrimitiveClass: | 603 case PrimitiveClass: |
| 591 return toCSSPrimitiveValue(this)->cloneForCSSOM(); | 604 return toCSSPrimitiveValue(this)->cloneForCSSOM(); |
| 592 case ValueListClass: | 605 case ValueListClass: |
| 593 return toCSSValueList(this)->cloneForCSSOM(); | 606 return toCSSValueList(this)->cloneForCSSOM(); |
| 594 case ImageClass: | 607 case ImageClass: |
| 595 case CursorImageClass: | 608 case CursorImageClass: |
| 596 return toCSSImageValue(this)->cloneForCSSOM(); | 609 return toCSSImageValue(this)->cloneForCSSOM(); |
| 597 case CSSFilterClass: | 610 case CSSFilterClass: |
| 598 return toCSSFilterValue(this)->cloneForCSSOM(); | 611 return toCSSFilterValue(this)->cloneForCSSOM(); |
| 599 case CSSTransformClass: | 612 case CSSTransformClass: |
| 600 return toCSSTransformValue(this)->cloneForCSSOM(); | 613 return toCSSTransformValue(this)->cloneForCSSOM(); |
| 601 case ImageSetClass: | 614 case ImageSetClass: |
| 602 return toCSSImageSetValue(this)->cloneForCSSOM(); | 615 return toCSSImageSetValue(this)->cloneForCSSOM(); |
| 603 default: | 616 default: |
| 604 ASSERT(!isSubtypeExposedToCSSOM()); | 617 ASSERT(!isSubtypeExposedToCSSOM()); |
| 605 return TextCloneCSSValue::create(classType(), cssText()); | 618 return TextCloneCSSValue::create(classType(), cssText()); |
| 606 } | 619 } |
| 607 } | 620 } |
| 608 | 621 |
| 609 } | 622 } |
| OLD | NEW |