Index: Source/core/svg/SVGAnimationElement.cpp |
diff --git a/Source/core/svg/SVGAnimationElement.cpp b/Source/core/svg/SVGAnimationElement.cpp |
index d5d17e363bd2cdd24a2bc4c2d233ce6f14ce21e9..ea34b38e5da966ad1a6df438e3e5584d111a0697 100644 |
--- a/Source/core/svg/SVGAnimationElement.cpp |
+++ b/Source/core/svg/SVGAnimationElement.cpp |
@@ -368,7 +368,7 @@ bool SVGAnimationElement::isTargetAttributeCSSProperty(SVGElement* targetElement |
{ |
ASSERT(targetElement); |
- return SVGElement::isAnimatableCSSProperty(attributeName); |
+ return SVGElement::isAnimatableCSSProperty(attributeName) || targetElement->isPresentationAttribute(attributeName); |
} |
SVGAnimationElement::ShouldApplyAnimation SVGAnimationElement::shouldApplyAnimation(SVGElement* targetElement, const QualifiedName& attributeName) |
@@ -377,9 +377,12 @@ SVGAnimationElement::ShouldApplyAnimation SVGAnimationElement::shouldApplyAnimat |
return DontApplyAnimation; |
// Always animate CSS properties, using the ApplyCSSAnimation code path, regardless of the attributeType value. |
- if (isTargetAttributeCSSProperty(targetElement, attributeName)) |
- return ApplyCSSAnimation; |
+ if (isTargetAttributeCSSProperty(targetElement, attributeName)) { |
+ if (targetElement->isPresentationAttributeWithSVGDOM(attributeName)) |
+ return ApplyXMLandCSSAnimation; |
+ return ApplyCSSAnimation; |
+ } |
// If attributeType="CSS" and attributeName doesn't point to a CSS property, ignore the animation. |
if (attributeType() == AttributeTypeCSS) |
return DontApplyAnimation; |