Index: Source/core/rendering/svg/ReferenceFilterBuilder.cpp |
diff --git a/Source/core/rendering/svg/ReferenceFilterBuilder.cpp b/Source/core/rendering/svg/ReferenceFilterBuilder.cpp |
index f135c1a3aa49ae5728251445bf98a5f2809315f7..238d9600daa0b127524fc4973101bd022249803d 100644 |
--- a/Source/core/rendering/svg/ReferenceFilterBuilder.cpp |
+++ b/Source/core/rendering/svg/ReferenceFilterBuilder.cpp |
@@ -32,6 +32,7 @@ |
#include "SVGNames.h" |
#include "core/css/CSSPrimitiveValue.h" |
#include "core/css/CSSPrimitiveValueMappings.h" |
+#include "core/css/StylePropertySet.h" |
#include "core/dom/Element.h" |
#include "core/fetch/DocumentResource.h" |
#include "core/rendering/svg/RenderSVGResourceFilter.h" |
@@ -80,9 +81,11 @@ static bool getSVGElementColorSpace(SVGElement* svgElement, ColorSpace& cs) |
if (svgStyle) { |
// If a layout has been performed, then we can use the fast path to get this attribute |
eColorInterpolation = svgStyle->colorInterpolationFilters(); |
+ } else if (!svgElement->presentationAttributeStyle()) { |
+ return false; |
} else { |
// Otherwise, use the slow path by using string comparison (used by external svg files) |
- RefPtrWillBeRawPtr<CSSValue> cssValue = svgElement->getPresentationAttribute(AtomicString(SVGNames::color_interpolation_filtersAttr.toString())); |
+ RefPtrWillBeRawPtr<CSSValue> cssValue = svgElement->presentationAttributeStyle()->getPropertyCSSValue(CSSPropertyColorInterpolationFilters); |
if (cssValue.get() && cssValue->isPrimitiveValue()) { |
const CSSPrimitiveValue& primitiveValue = *((CSSPrimitiveValue*)cssValue.get()); |
eColorInterpolation = (EColorInterpolation)primitiveValue; |