Index: third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp |
diff --git a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp |
index 055f098d010923961cae73e2b90f9a3a5213056a..1becabf5afa614611854561890903ccb75121132 100644 |
--- a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp |
+++ b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp |
@@ -98,6 +98,11 @@ void SVGDocumentExtensions::serviceOnAnimationFrame(Document& document, double m |
document.accessSVGExtensions().serviceAnimations(monotonicAnimationStartTime); |
} |
+static bool isSVGAttributeHandle(const PropertyHandle& propertyHandle) |
+{ |
+ return propertyHandle.isSVGAttribute(); |
+} |
+ |
void SVGDocumentExtensions::serviceAnimations(double monotonicAnimationStartTime) |
{ |
if (RuntimeEnabledFeatures::smilEnabled()) { |
@@ -109,10 +114,8 @@ void SVGDocumentExtensions::serviceAnimations(double monotonicAnimationStartTime |
// TODO(alancutter): Make SVG animation effect application a separate document lifecycle phase from servicing animations to be responsive to Javascript manipulation of exposed animation objects. |
for (auto& svgElement : m_webAnimatedSVGElements) { |
- ActiveInterpolationsMap activeInterpolationsMap = AnimationStack::activeInterpolations(&svgElement->elementAnimations()->animationStack(), nullptr, nullptr, KeyframeEffect::DefaultPriority, 0); |
+ ActiveInterpolationsMap activeInterpolationsMap = AnimationStack::activeInterpolations(&svgElement->elementAnimations()->animationStack(), nullptr, nullptr, KeyframeEffect::DefaultPriority, 0, isSVGAttributeHandle); |
for (auto& entry : activeInterpolationsMap) { |
- if (!entry.key.isSVGAttribute()) |
- continue; |
const QualifiedName& attribute = entry.key.svgAttribute(); |
const Interpolation& interpolation = *entry.value.first(); |
if (interpolation.isInvalidatableInterpolation()) { |