Index: third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp |
diff --git a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp |
index b7f10aac622757aedc738a1d2b7be8b5fc591a38..f905ccb797dbc751b8b37c084f88dc99188ab0df 100644 |
--- a/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp |
+++ b/third_party/WebKit/Source/core/svg/animation/SVGSMILElement.cpp |
@@ -454,16 +454,24 @@ void SVGSMILElement::parseAttribute(const AttributeModificationParams& params) { |
parseBeginOrEnd(fastGetAttribute(SVGNames::endAttr), End); |
} |
parseBeginOrEnd(value.getString(), Begin); |
- if (isConnected()) |
+ if (isConnected()) { |
connectSyncBaseConditions(); |
+ connectEventBaseConditions(); |
+ beginListChanged(elapsed()); |
+ } |
+ animationAttributeChanged(); |
} else if (name == SVGNames::endAttr) { |
if (!m_conditions.isEmpty()) { |
clearConditions(); |
parseBeginOrEnd(fastGetAttribute(SVGNames::beginAttr), Begin); |
} |
parseBeginOrEnd(value.getString(), End); |
- if (isConnected()) |
+ if (isConnected()) { |
connectSyncBaseConditions(); |
+ connectEventBaseConditions(); |
+ endListChanged(elapsed()); |
+ } |
+ animationAttributeChanged(); |
} else if (name == SVGNames::onbeginAttr) { |
setAttributeEventListener( |
EventTypeNames::beginEvent, |
@@ -500,14 +508,6 @@ void SVGSMILElement::svgAttributeChanged(const QualifiedName& attrName) { |
buildPendingResource(); |
if (m_targetElement) |
clearAnimatedType(); |
- } else if (attrName == SVGNames::beginAttr || attrName == SVGNames::endAttr) { |
- if (isConnected()) { |
- connectEventBaseConditions(); |
- if (attrName == SVGNames::beginAttr) |
- beginListChanged(elapsed()); |
- else if (attrName == SVGNames::endAttr) |
- endListChanged(elapsed()); |
- } |
} else { |
SVGElement::svgAttributeChanged(attrName); |
return; |