Index: Source/core/css/CSSValue.cpp |
diff --git a/Source/core/css/CSSValue.cpp b/Source/core/css/CSSValue.cpp |
deleted file mode 100644 |
index d8a94be96cb0712b2e146f95e0c2bab34ab8f683..0000000000000000000000000000000000000000 |
--- a/Source/core/css/CSSValue.cpp |
+++ /dev/null |
@@ -1,498 +0,0 @@ |
-/* |
- * Copyright (C) 2011 Andreas Kling (kling@webkit.org) |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY |
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR |
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- * |
- */ |
- |
-#include "config.h" |
-#include "core/css/CSSValue.h" |
- |
-#include "core/css/CSSBorderImageSliceValue.h" |
-#include "core/css/CSSCalculationValue.h" |
-#include "core/css/CSSCanvasValue.h" |
-#include "core/css/CSSContentDistributionValue.h" |
-#include "core/css/CSSCrossfadeValue.h" |
-#include "core/css/CSSCursorImageValue.h" |
-#include "core/css/CSSFontFaceSrcValue.h" |
-#include "core/css/CSSFontFeatureValue.h" |
-#include "core/css/CSSFunctionValue.h" |
-#include "core/css/CSSGradientValue.h" |
-#include "core/css/CSSGridLineNamesValue.h" |
-#include "core/css/CSSGridTemplateAreasValue.h" |
-#include "core/css/CSSImageSetValue.h" |
-#include "core/css/CSSImageValue.h" |
-#include "core/css/CSSInheritedValue.h" |
-#include "core/css/CSSInitialValue.h" |
-#include "core/css/CSSLineBoxContainValue.h" |
-#include "core/css/CSSPathValue.h" |
-#include "core/css/CSSPrimitiveValue.h" |
-#include "core/css/CSSReflectValue.h" |
-#include "core/css/CSSSVGDocumentValue.h" |
-#include "core/css/CSSShadowValue.h" |
-#include "core/css/CSSTimingFunctionValue.h" |
-#include "core/css/CSSUnicodeRangeValue.h" |
-#include "core/css/CSSUnsetValue.h" |
-#include "core/css/CSSValueList.h" |
- |
-namespace blink { |
- |
-struct SameSizeAsCSSValue : public RefCountedWillBeGarbageCollectedFinalized<SameSizeAsCSSValue> |
-{ |
- uint32_t bitfields; |
-}; |
- |
-static_assert(sizeof(CSSValue) <= sizeof(SameSizeAsCSSValue), "CSSValue should stay small"); |
- |
-bool CSSValue::isImplicitInitialValue() const |
-{ |
- return m_classType == InitialClass && toCSSInitialValue(this)->isImplicit(); |
-} |
- |
-bool CSSValue::hasFailedOrCanceledSubresources() const |
-{ |
- if (isValueList()) |
- return toCSSValueList(this)->hasFailedOrCanceledSubresources(); |
- if (classType() == FontFaceSrcClass) |
- return toCSSFontFaceSrcValue(this)->hasFailedOrCanceledSubresources(); |
- if (classType() == ImageClass) |
- return toCSSImageValue(this)->hasFailedOrCanceledSubresources(); |
- if (classType() == CrossfadeClass) |
- return toCSSCrossfadeValue(this)->hasFailedOrCanceledSubresources(); |
- if (classType() == ImageSetClass) |
- return toCSSImageSetValue(this)->hasFailedOrCanceledSubresources(); |
- |
- return false; |
-} |
- |
-template<class ChildClassType> |
-inline static bool compareCSSValues(const CSSValue& first, const CSSValue& second) |
-{ |
- return static_cast<const ChildClassType&>(first).equals(static_cast<const ChildClassType&>(second)); |
-} |
- |
-bool CSSValue::equals(const CSSValue& other) const |
-{ |
- if (m_classType == other.m_classType) { |
- switch (m_classType) { |
- case BorderImageSliceClass: |
- return compareCSSValues<CSSBorderImageSliceValue>(*this, other); |
- case CanvasClass: |
- return compareCSSValues<CSSCanvasValue>(*this, other); |
- case CursorImageClass: |
- return compareCSSValues<CSSCursorImageValue>(*this, other); |
- case FontFaceSrcClass: |
- return compareCSSValues<CSSFontFaceSrcValue>(*this, other); |
- case FontFeatureClass: |
- return compareCSSValues<CSSFontFeatureValue>(*this, other); |
- case FunctionClass: |
- return compareCSSValues<CSSFunctionValue>(*this, other); |
- case LinearGradientClass: |
- return compareCSSValues<CSSLinearGradientValue>(*this, other); |
- case RadialGradientClass: |
- return compareCSSValues<CSSRadialGradientValue>(*this, other); |
- case CrossfadeClass: |
- return compareCSSValues<CSSCrossfadeValue>(*this, other); |
- case ImageClass: |
- return compareCSSValues<CSSImageValue>(*this, other); |
- case InheritedClass: |
- return compareCSSValues<CSSInheritedValue>(*this, other); |
- case InitialClass: |
- return compareCSSValues<CSSInitialValue>(*this, other); |
- case UnsetClass: |
- return compareCSSValues<CSSUnsetValue>(*this, other); |
- case GridLineNamesClass: |
- return compareCSSValues<CSSGridLineNamesValue>(*this, other); |
- case GridTemplateAreasClass: |
- return compareCSSValues<CSSGridTemplateAreasValue>(*this, other); |
- case PathClass: |
- return compareCSSValues<CSSPathValue>(*this, other); |
- case PrimitiveClass: |
- return compareCSSValues<CSSPrimitiveValue>(*this, other); |
- case ReflectClass: |
- return compareCSSValues<CSSReflectValue>(*this, other); |
- case ShadowClass: |
- return compareCSSValues<CSSShadowValue>(*this, other); |
- case CubicBezierTimingFunctionClass: |
- return compareCSSValues<CSSCubicBezierTimingFunctionValue>(*this, other); |
- case StepsTimingFunctionClass: |
- return compareCSSValues<CSSStepsTimingFunctionValue>(*this, other); |
- case UnicodeRangeClass: |
- return compareCSSValues<CSSUnicodeRangeValue>(*this, other); |
- case ValueListClass: |
- return compareCSSValues<CSSValueList>(*this, other); |
- case LineBoxContainClass: |
- return compareCSSValues<CSSLineBoxContainValue>(*this, other); |
- case CalculationClass: |
- return compareCSSValues<CSSCalcValue>(*this, other); |
- case ImageSetClass: |
- return compareCSSValues<CSSImageSetValue>(*this, other); |
- case CSSSVGDocumentClass: |
- return compareCSSValues<CSSSVGDocumentValue>(*this, other); |
- case CSSContentDistributionClass: |
- return compareCSSValues<CSSContentDistributionValue>(*this, other); |
- default: |
- ASSERT_NOT_REACHED(); |
- return false; |
- } |
- } |
- return false; |
-} |
- |
-String CSSValue::cssText() const |
-{ |
- switch (classType()) { |
- case BorderImageSliceClass: |
- return toCSSBorderImageSliceValue(this)->customCSSText(); |
- case CanvasClass: |
- return toCSSCanvasValue(this)->customCSSText(); |
- case CursorImageClass: |
- return toCSSCursorImageValue(this)->customCSSText(); |
- case FontFaceSrcClass: |
- return toCSSFontFaceSrcValue(this)->customCSSText(); |
- case FontFeatureClass: |
- return toCSSFontFeatureValue(this)->customCSSText(); |
- case FunctionClass: |
- return toCSSFunctionValue(this)->customCSSText(); |
- case LinearGradientClass: |
- return toCSSLinearGradientValue(this)->customCSSText(); |
- case RadialGradientClass: |
- return toCSSRadialGradientValue(this)->customCSSText(); |
- case CrossfadeClass: |
- return toCSSCrossfadeValue(this)->customCSSText(); |
- case ImageClass: |
- return toCSSImageValue(this)->customCSSText(); |
- case InheritedClass: |
- return toCSSInheritedValue(this)->customCSSText(); |
- case UnsetClass: |
- return toCSSUnsetValue(this)->customCSSText(); |
- case InitialClass: |
- return toCSSInitialValue(this)->customCSSText(); |
- case GridLineNamesClass: |
- return toCSSGridLineNamesValue(this)->customCSSText(); |
- case GridTemplateAreasClass: |
- return toCSSGridTemplateAreasValue(this)->customCSSText(); |
- case PathClass: |
- return toCSSPathValue(this)->customCSSText(); |
- case PrimitiveClass: |
- return toCSSPrimitiveValue(this)->customCSSText(); |
- case ReflectClass: |
- return toCSSReflectValue(this)->customCSSText(); |
- case ShadowClass: |
- return toCSSShadowValue(this)->customCSSText(); |
- case CubicBezierTimingFunctionClass: |
- return toCSSCubicBezierTimingFunctionValue(this)->customCSSText(); |
- case StepsTimingFunctionClass: |
- return toCSSStepsTimingFunctionValue(this)->customCSSText(); |
- case UnicodeRangeClass: |
- return toCSSUnicodeRangeValue(this)->customCSSText(); |
- case ValueListClass: |
- return toCSSValueList(this)->customCSSText(); |
- case LineBoxContainClass: |
- return toCSSLineBoxContainValue(this)->customCSSText(); |
- case CalculationClass: |
- return toCSSCalcValue(this)->customCSSText(); |
- case ImageSetClass: |
- return toCSSImageSetValue(this)->customCSSText(); |
- case CSSSVGDocumentClass: |
- return toCSSSVGDocumentValue(this)->customCSSText(); |
- case CSSContentDistributionClass: |
- return toCSSContentDistributionValue(this)->customCSSText(); |
- } |
- ASSERT_NOT_REACHED(); |
- return String(); |
-} |
- |
-void CSSValue::destroy() |
-{ |
- switch (classType()) { |
- case BorderImageSliceClass: |
- delete toCSSBorderImageSliceValue(this); |
- return; |
- case CanvasClass: |
- delete toCSSCanvasValue(this); |
- return; |
- case CursorImageClass: |
- delete toCSSCursorImageValue(this); |
- return; |
- case FontFaceSrcClass: |
- delete toCSSFontFaceSrcValue(this); |
- return; |
- case FontFeatureClass: |
- delete toCSSFontFeatureValue(this); |
- return; |
- case FunctionClass: |
- delete toCSSFunctionValue(this); |
- return; |
- case LinearGradientClass: |
- delete toCSSLinearGradientValue(this); |
- return; |
- case RadialGradientClass: |
- delete toCSSRadialGradientValue(this); |
- return; |
- case CrossfadeClass: |
- delete toCSSCrossfadeValue(this); |
- return; |
- case ImageClass: |
- delete toCSSImageValue(this); |
- return; |
- case InheritedClass: |
- delete toCSSInheritedValue(this); |
- return; |
- case InitialClass: |
- delete toCSSInitialValue(this); |
- return; |
- case UnsetClass: |
- delete toCSSUnsetValue(this); |
- return; |
- case GridLineNamesClass: |
- delete toCSSGridLineNamesValue(this); |
- return; |
- case GridTemplateAreasClass: |
- delete toCSSGridTemplateAreasValue(this); |
- return; |
- case PathClass: |
- delete toCSSPathValue(this); |
- return; |
- case PrimitiveClass: |
- delete toCSSPrimitiveValue(this); |
- return; |
- case ReflectClass: |
- delete toCSSReflectValue(this); |
- return; |
- case ShadowClass: |
- delete toCSSShadowValue(this); |
- return; |
- case CubicBezierTimingFunctionClass: |
- delete toCSSCubicBezierTimingFunctionValue(this); |
- return; |
- case StepsTimingFunctionClass: |
- delete toCSSStepsTimingFunctionValue(this); |
- return; |
- case UnicodeRangeClass: |
- delete toCSSUnicodeRangeValue(this); |
- return; |
- case ValueListClass: |
- delete toCSSValueList(this); |
- return; |
- case LineBoxContainClass: |
- delete toCSSLineBoxContainValue(this); |
- return; |
- case CalculationClass: |
- delete toCSSCalcValue(this); |
- return; |
- case ImageSetClass: |
- delete toCSSImageSetValue(this); |
- return; |
- case CSSSVGDocumentClass: |
- delete toCSSSVGDocumentValue(this); |
- return; |
- case CSSContentDistributionClass: |
- delete toCSSContentDistributionValue(this); |
- return; |
- } |
- ASSERT_NOT_REACHED(); |
-} |
- |
-void CSSValue::finalizeGarbageCollectedObject() |
-{ |
- switch (classType()) { |
- case BorderImageSliceClass: |
- toCSSBorderImageSliceValue(this)->~CSSBorderImageSliceValue(); |
- return; |
- case CanvasClass: |
- toCSSCanvasValue(this)->~CSSCanvasValue(); |
- return; |
- case CursorImageClass: |
- toCSSCursorImageValue(this)->~CSSCursorImageValue(); |
- return; |
- case FontFaceSrcClass: |
- toCSSFontFaceSrcValue(this)->~CSSFontFaceSrcValue(); |
- return; |
- case FontFeatureClass: |
- toCSSFontFeatureValue(this)->~CSSFontFeatureValue(); |
- return; |
- case FunctionClass: |
- toCSSFunctionValue(this)->~CSSFunctionValue(); |
- return; |
- case LinearGradientClass: |
- toCSSLinearGradientValue(this)->~CSSLinearGradientValue(); |
- return; |
- case RadialGradientClass: |
- toCSSRadialGradientValue(this)->~CSSRadialGradientValue(); |
- return; |
- case CrossfadeClass: |
- toCSSCrossfadeValue(this)->~CSSCrossfadeValue(); |
- return; |
- case ImageClass: |
- toCSSImageValue(this)->~CSSImageValue(); |
- return; |
- case InheritedClass: |
- toCSSInheritedValue(this)->~CSSInheritedValue(); |
- return; |
- case InitialClass: |
- toCSSInitialValue(this)->~CSSInitialValue(); |
- return; |
- case UnsetClass: |
- toCSSUnsetValue(this)->~CSSUnsetValue(); |
- return; |
- case GridLineNamesClass: |
- toCSSGridLineNamesValue(this)->~CSSGridLineNamesValue(); |
- return; |
- case GridTemplateAreasClass: |
- toCSSGridTemplateAreasValue(this)->~CSSGridTemplateAreasValue(); |
- return; |
- case PathClass: |
- toCSSPathValue(this)->~CSSPathValue(); |
- return; |
- case PrimitiveClass: |
- toCSSPrimitiveValue(this)->~CSSPrimitiveValue(); |
- return; |
- case ReflectClass: |
- toCSSReflectValue(this)->~CSSReflectValue(); |
- return; |
- case ShadowClass: |
- toCSSShadowValue(this)->~CSSShadowValue(); |
- return; |
- case CubicBezierTimingFunctionClass: |
- toCSSCubicBezierTimingFunctionValue(this)->~CSSCubicBezierTimingFunctionValue(); |
- return; |
- case StepsTimingFunctionClass: |
- toCSSStepsTimingFunctionValue(this)->~CSSStepsTimingFunctionValue(); |
- return; |
- case UnicodeRangeClass: |
- toCSSUnicodeRangeValue(this)->~CSSUnicodeRangeValue(); |
- return; |
- case ValueListClass: |
- toCSSValueList(this)->~CSSValueList(); |
- return; |
- case LineBoxContainClass: |
- toCSSLineBoxContainValue(this)->~CSSLineBoxContainValue(); |
- return; |
- case CalculationClass: |
- toCSSCalcValue(this)->~CSSCalcValue(); |
- return; |
- case ImageSetClass: |
- toCSSImageSetValue(this)->~CSSImageSetValue(); |
- return; |
- case CSSSVGDocumentClass: |
- toCSSSVGDocumentValue(this)->~CSSSVGDocumentValue(); |
- return; |
- case CSSContentDistributionClass: |
- toCSSContentDistributionValue(this)->~CSSContentDistributionValue(); |
- return; |
- } |
- ASSERT_NOT_REACHED(); |
-} |
- |
-DEFINE_TRACE(CSSValue) |
-{ |
- switch (classType()) { |
- case BorderImageSliceClass: |
- toCSSBorderImageSliceValue(this)->traceAfterDispatch(visitor); |
- return; |
- case CanvasClass: |
- toCSSCanvasValue(this)->traceAfterDispatch(visitor); |
- return; |
- case CursorImageClass: |
- toCSSCursorImageValue(this)->traceAfterDispatch(visitor); |
- return; |
- case FontFaceSrcClass: |
- toCSSFontFaceSrcValue(this)->traceAfterDispatch(visitor); |
- return; |
- case FontFeatureClass: |
- toCSSFontFeatureValue(this)->traceAfterDispatch(visitor); |
- return; |
- case FunctionClass: |
- toCSSFunctionValue(this)->traceAfterDispatch(visitor); |
- return; |
- case LinearGradientClass: |
- toCSSLinearGradientValue(this)->traceAfterDispatch(visitor); |
- return; |
- case RadialGradientClass: |
- toCSSRadialGradientValue(this)->traceAfterDispatch(visitor); |
- return; |
- case CrossfadeClass: |
- toCSSCrossfadeValue(this)->traceAfterDispatch(visitor); |
- return; |
- case ImageClass: |
- toCSSImageValue(this)->traceAfterDispatch(visitor); |
- return; |
- case InheritedClass: |
- toCSSInheritedValue(this)->traceAfterDispatch(visitor); |
- return; |
- case InitialClass: |
- toCSSInitialValue(this)->traceAfterDispatch(visitor); |
- return; |
- case UnsetClass: |
- toCSSUnsetValue(this)->traceAfterDispatch(visitor); |
- return; |
- case GridLineNamesClass: |
- toCSSGridLineNamesValue(this)->traceAfterDispatch(visitor); |
- return; |
- case GridTemplateAreasClass: |
- toCSSGridTemplateAreasValue(this)->traceAfterDispatch(visitor); |
- return; |
- case PathClass: |
- toCSSPathValue(this)->traceAfterDispatch(visitor); |
- return; |
- case PrimitiveClass: |
- toCSSPrimitiveValue(this)->traceAfterDispatch(visitor); |
- return; |
- case ReflectClass: |
- toCSSReflectValue(this)->traceAfterDispatch(visitor); |
- return; |
- case ShadowClass: |
- toCSSShadowValue(this)->traceAfterDispatch(visitor); |
- return; |
- case CubicBezierTimingFunctionClass: |
- toCSSCubicBezierTimingFunctionValue(this)->traceAfterDispatch(visitor); |
- return; |
- case StepsTimingFunctionClass: |
- toCSSStepsTimingFunctionValue(this)->traceAfterDispatch(visitor); |
- return; |
- case UnicodeRangeClass: |
- toCSSUnicodeRangeValue(this)->traceAfterDispatch(visitor); |
- return; |
- case ValueListClass: |
- toCSSValueList(this)->traceAfterDispatch(visitor); |
- return; |
- case LineBoxContainClass: |
- toCSSLineBoxContainValue(this)->traceAfterDispatch(visitor); |
- return; |
- case CalculationClass: |
- toCSSCalcValue(this)->traceAfterDispatch(visitor); |
- return; |
- case ImageSetClass: |
- toCSSImageSetValue(this)->traceAfterDispatch(visitor); |
- return; |
- case CSSSVGDocumentClass: |
- toCSSSVGDocumentValue(this)->traceAfterDispatch(visitor); |
- return; |
- case CSSContentDistributionClass: |
- toCSSContentDistributionValue(this)->traceAfterDispatch(visitor); |
- return; |
- } |
- ASSERT_NOT_REACHED(); |
-} |
- |
-} |