| 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;
|
|
|