| 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()) {
|
|
|