bool CSSImageGeneratorValue::isPending() const { switch (classType()) { case CrossfadeClass: return toCSSCrossfadeValue(this)->isPending(); case CanvasClass: return toCSSCanvasValue(this)->isPending(); #if ENABLE(CSS_FILTERS) case FilterImageClass: return toCSSFilterImageValue(this)->isPending(); #endif case LinearGradientClass: return toCSSLinearGradientValue(this)->isPending(); case RadialGradientClass: return toCSSRadialGradientValue(this)->isPending(); default: ASSERT_NOT_REACHED(); } return false; }
bool CSSImageGeneratorValue::knownToBeOpaque(const RenderElement* renderer) const { switch (classType()) { case CrossfadeClass: return toCSSCrossfadeValue(this)->knownToBeOpaque(renderer); case CanvasClass: return false; #if ENABLE(CSS_FILTERS) case FilterImageClass: return toCSSFilterImageValue(this)->knownToBeOpaque(renderer); #endif case LinearGradientClass: return toCSSLinearGradientValue(this)->knownToBeOpaque(renderer); case RadialGradientClass: return toCSSRadialGradientValue(this)->knownToBeOpaque(renderer); default: ASSERT_NOT_REACHED(); } return false; }
IntSize CSSImageGeneratorValue::fixedSize(const RenderElement* renderer) { switch (classType()) { case CanvasClass: return toCSSCanvasValue(this)->fixedSize(renderer); case CrossfadeClass: return toCSSCrossfadeValue(this)->fixedSize(renderer); #if ENABLE(CSS_FILTERS) case FilterImageClass: return toCSSFilterImageValue(this)->fixedSize(renderer); #endif case LinearGradientClass: return toCSSLinearGradientValue(this)->fixedSize(renderer); case RadialGradientClass: return toCSSRadialGradientValue(this)->fixedSize(renderer); default: ASSERT_NOT_REACHED(); } return IntSize(); }
PassRefPtr<Image> CSSImageGeneratorValue::image(RenderElement* renderer, const IntSize& size) { switch (classType()) { case CanvasClass: return toCSSCanvasValue(this)->image(renderer, size); case CrossfadeClass: return toCSSCrossfadeValue(this)->image(renderer, size); #if ENABLE(CSS_FILTERS) case FilterImageClass: return toCSSFilterImageValue(this)->image(renderer, size); #endif case LinearGradientClass: return toCSSLinearGradientValue(this)->image(renderer, size); case RadialGradientClass: return toCSSRadialGradientValue(this)->image(renderer, size); default: ASSERT_NOT_REACHED(); } return nullptr; }
bool CSSValue::hasFailedOrCanceledSubresources() const { // This should get called for internal instances only. ASSERT(!isCSSOMSafe()); 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 ENABLE(CSS_FILTERS) if (classType() == FilterImageClass) return toCSSFilterImageValue(this)->hasFailedOrCanceledSubresources(); #endif #if ENABLE(CSS_IMAGE_SET) if (classType() == ImageSetClass) return toCSSImageSetValue(this)->hasFailedOrCanceledSubresources(); #endif return false; }
void CSSImageGeneratorValue::loadSubimages(CachedResourceLoader* cachedResourceLoader) { switch (classType()) { case CrossfadeClass: toCSSCrossfadeValue(this)->loadSubimages(cachedResourceLoader); break; case CanvasClass: toCSSCanvasValue(this)->loadSubimages(cachedResourceLoader); break; #if ENABLE(CSS_FILTERS) case FilterImageClass: toCSSFilterImageValue(this)->loadSubimages(cachedResourceLoader); break; #endif case LinearGradientClass: toCSSLinearGradientValue(this)->loadSubimages(cachedResourceLoader); break; case RadialGradientClass: toCSSRadialGradientValue(this)->loadSubimages(cachedResourceLoader); break; default: ASSERT_NOT_REACHED(); } }
void CSSValue::destroy() { if (m_isTextClone) { ASSERT(isCSSOMSafe()); delete static_cast<TextCloneCSSValue*>(this); return; } ASSERT(!isCSSOMSafe() || isSubtypeExposedToCSSOM()); switch (classType()) { case AspectRatioClass: delete toCSSAspectRatioValue(this); return; case BorderImageSliceClass: delete toCSSBorderImageSliceValue(this); return; case CanvasClass: delete toCSSCanvasValue(this); return; case CursorImageClass: delete toCSSCursorImageValue(this); return; case FontClass: delete toCSSFontValue(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 GridTemplateClass: delete toCSSGridTemplateValue(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 WebKitCSSTransformClass: delete toWebKitCSSTransformValue(this); return; case LineBoxContainClass: delete toCSSLineBoxContainValue(this); return; case CalculationClass: delete toCSSCalcValue(this); return; #if ENABLE(CSS_IMAGE_SET) case ImageSetClass: delete toCSSImageSetValue(this); return; #endif #if ENABLE(CSS_FILTERS) case FilterImageClass: delete toCSSFilterImageValue(this); return; case WebKitCSSFilterClass: delete toWebKitCSSFilterValue(this); return; #if ENABLE(CSS_SHADERS) case WebKitCSSArrayFunctionValueClass: delete toWebKitCSSArrayFunctionValue(this); return; case WebKitCSSMatFunctionValueClass: delete toWebKitCSSMatFunctionValue(this); return; case WebKitCSSMixFunctionValueClass: delete toWebKitCSSMixFunctionValue(this); return; case WebKitCSSShaderClass: delete toWebKitCSSShaderValue(this); return; #endif #endif #if ENABLE(SVG) case SVGColorClass: delete toSVGColor(this); return; case SVGPaintClass: delete toSVGPaint(this); return; case WebKitCSSSVGDocumentClass: delete toWebKitCSSSVGDocumentValue(this); return; #endif } ASSERT_NOT_REACHED(); }
String CSSValue::cssText() const { if (m_isTextClone) { ASSERT(isCSSOMSafe()); return static_cast<const TextCloneCSSValue*>(this)->cssText(); } ASSERT(!isCSSOMSafe() || isSubtypeExposedToCSSOM()); switch (classType()) { case AspectRatioClass: return toCSSAspectRatioValue(this)->customCSSText(); case BorderImageSliceClass: return toCSSBorderImageSliceValue(this)->customCSSText(); case CanvasClass: return toCSSCanvasValue(this)->customCSSText(); case CursorImageClass: return toCSSCursorImageValue(this)->customCSSText(); #if ENABLE(CSS_FILTERS) case FilterImageClass: return toCSSFilterImageValue(this)->customCSSText(); #endif case FontClass: return toCSSFontValue(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 InitialClass: return toCSSInitialValue(this)->customCSSText(); #if ENABLE(CSS_GRID_LAYOUT) case GridLineNamesClass: return toCSSGridLineNamesValue(this)->customCSSText(); case GridTemplateAreasClass: return toCSSGridTemplateAreasValue(this)->customCSSText(); #endif 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 WebKitCSSTransformClass: return toWebKitCSSTransformValue(this)->customCSSText(); case LineBoxContainClass: return toCSSLineBoxContainValue(this)->customCSSText(); case CalculationClass: return toCSSCalcValue(this)->customCSSText(); #if ENABLE(CSS_IMAGE_SET) case ImageSetClass: return toCSSImageSetValue(this)->customCSSText(); #endif #if ENABLE(CSS_FILTERS) case WebKitCSSFilterClass: return toWebKitCSSFilterValue(this)->customCSSText(); #endif case SVGColorClass: return toSVGColor(this)->customCSSText(); case SVGPaintClass: return toSVGPaint(this)->customCSSText(); } ASSERT_NOT_REACHED(); return String(); }