| 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 043d4495f497854528802ddd2a8a5967bf36e21e..b5dd1e51f79997016c64190304a979eaccf6d237 100644
|
| --- a/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp
|
| +++ b/third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp
|
| @@ -99,6 +99,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()) {
|
| @@ -114,10 +119,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 : webAnimationsPendingSVGElements) {
|
| ActiveInterpolationsMap activeInterpolationsMap = AnimationStack::activeInterpolations(
|
| - &svgElement->elementAnimations()->animationStack(), nullptr, nullptr, KeyframeEffect::DefaultPriority);
|
| + &svgElement->elementAnimations()->animationStack(), nullptr, nullptr, KeyframeEffect::DefaultPriority, 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()) {
|
|
|