| Index: Source/core/svg/SVGGraphicsElement.cpp | 
| diff --git a/Source/core/svg/SVGGraphicsElement.cpp b/Source/core/svg/SVGGraphicsElement.cpp | 
| index ffa82a71ec208aa47c04f4b63401b6e2dd5ee702..e403da2d6713708acaaeb78c63025a05ebca7f4b 100644 | 
| --- a/Source/core/svg/SVGGraphicsElement.cpp | 
| +++ b/Source/core/svg/SVGGraphicsElement.cpp | 
| @@ -149,7 +149,7 @@ AffineTransform SVGGraphicsElement::calculateAnimatedLocalTransform() const | 
| // SVGTextElements need special handling for the text positioning code. | 
| if (isSVGTextElement(this)) { | 
| // Do not take into account SVG's zoom rules, transform-origin, or percentage values. | 
| -            style->applyTransform(transform, LayoutSize(0, 0), ComputedStyle::ExcludeTransformOrigin); | 
| +            style->applyTransform(transform, LayoutSize(0, 0), ComputedStyle::ExcludeTransformOrigin, ComputedStyle::IncludeMotionPath, ComputedStyle::IncludeIndependentTransformProperties); | 
| } else { | 
| // CSS transforms operate with pre-scaled lengths. To make this work with SVG | 
| // (which applies the zoom factor globally, at the root level) we | 
| @@ -163,10 +163,10 @@ AffineTransform SVGGraphicsElement::calculateAnimatedLocalTransform() const | 
| FloatRect scaledBBox = layoutObject()->objectBoundingBox(); | 
| scaledBBox.scale(zoom); | 
| transform.scale(1 / zoom); | 
| -                style->applyTransform(transform, scaledBBox); | 
| +                style->applyTransform(transform, scaledBBox, ComputedStyle::IncludeTransformOrigin, ComputedStyle::IncludeMotionPath, ComputedStyle::IncludeIndependentTransformProperties); | 
| transform.scale(zoom); | 
| } else { | 
| -                style->applyTransform(transform, layoutObject()->objectBoundingBox()); | 
| +                style->applyTransform(transform, layoutObject()->objectBoundingBox(), ComputedStyle::IncludeTransformOrigin, ComputedStyle::IncludeMotionPath, ComputedStyle::IncludeIndependentTransformProperties); | 
| } | 
| } | 
|  | 
|  |