| Index: Source/core/svg/SVGGradientElement.cpp | 
| diff --git a/Source/core/svg/SVGGradientElement.cpp b/Source/core/svg/SVGGradientElement.cpp | 
| index 18e7813cba76c0c8ad8db48fdf0a5cdcccb702b8..e39b0f7d0b4e8a46347b5272fc7f51f9624a6138 100644 | 
| --- a/Source/core/svg/SVGGradientElement.cpp | 
| +++ b/Source/core/svg/SVGGradientElement.cpp | 
| @@ -57,6 +57,21 @@ SVGGradientElement::SVGGradientElement(const QualifiedName& tagName, Document& d | 
| addToPropertyMap(m_gradientUnits); | 
| } | 
|  | 
| +bool SVGGradientElement::isPresentationAttribute(const QualifiedName& name) const | 
| +{ | 
| +    if (name == SVGNames::gradientTransformAttr) | 
| +        return true; | 
| +    return SVGElement::isPresentationAttribute(name); | 
| +} | 
| + | 
| +void SVGGradientElement::collectStyleForPresentationAttribute(const QualifiedName& name, const AtomicString& value, MutableStylePropertySet* style) | 
| +{ | 
| +    if (name == SVGNames::gradientTransformAttr) | 
| +        addPropertyToPresentationAttributeStyle(style, CSSPropertyTransform, value); | 
| +    else | 
| +        SVGElement::collectStyleForPresentationAttribute(name, value, style); | 
| +} | 
| + | 
| bool SVGGradientElement::isSupportedAttribute(const QualifiedName& attrName) | 
| { | 
| DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, supportedAttributes, ()); | 
| @@ -81,6 +96,11 @@ void SVGGradientElement::svgAttributeChanged(const QualifiedName& attrName) | 
| return; | 
| } | 
|  | 
| +    if (attrName == SVGNames::gradientTransformAttr) { | 
| +        invalidateSVGPresentationAttributeStyle(); | 
| +        setNeedsStyleRecalc(LocalStyleChange); | 
| +    } | 
| + | 
| SVGElement::InvalidationGuard invalidationGuard(this); | 
|  | 
| RenderSVGResourceContainer* renderer = toRenderSVGResourceContainer(this->renderer()); | 
|  |