| Index: third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp | 
| diff --git a/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp b/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp | 
| index 9030a03e86711a6b5b03d48aede82491a1046654..323c800abc7cdb5bc72d8eb69382226eff1413e7 100644 | 
| --- a/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp | 
| +++ b/third_party/WebKit/Source/core/svg/SVGAnimatedTypeAnimator.cpp | 
| @@ -161,55 +161,32 @@ void SVGAnimatedTypeAnimator::calculateFromAndByValues(Member<SVGPropertyBase>& | 
| to->add(from, m_contextElement); | 
| } | 
|  | 
| -namespace { | 
| - | 
| -void setAnimatedValueOnAllTargetProperties(const SVGElementInstances& list, const QualifiedName& attributeName, SVGPropertyBase* value) | 
| +SVGPropertyBase* SVGAnimatedTypeAnimator::resetAnimation() | 
| { | 
| -    for (SVGElement* elementInstance : list) { | 
| -        if (SVGAnimatedPropertyBase* animatedProperty = elementInstance->propertyFromAttribute(attributeName)) | 
| -            animatedProperty->setAnimatedValue(value); | 
| -    } | 
| -} | 
| - | 
| -} // namespace | 
| - | 
| -SVGPropertyBase* SVGAnimatedTypeAnimator::resetAnimation(const SVGElementInstances& list) | 
| -{ | 
| -    ASSERT(isAnimatingSVGDom()); | 
| +    DCHECK(isAnimatingSVGDom()); | 
| +    DCHECK(m_contextElement); | 
| SVGPropertyBase* animatedValue = m_animatedProperty->createAnimatedValue(); | 
| -    ASSERT(animatedValue->type() == m_type); | 
| -    setAnimatedValueOnAllTargetProperties(list, m_animatedProperty->attributeName(), animatedValue); | 
| - | 
| +    DCHECK_EQ(animatedValue->type(), m_type); | 
| +    m_contextElement->setAnimatedAttribute(m_animatedProperty->attributeName(), animatedValue); | 
| return animatedValue; | 
| } | 
|  | 
| -SVGPropertyBase* SVGAnimatedTypeAnimator::startAnimValAnimation(const SVGElementInstances& list) | 
| +SVGPropertyBase* SVGAnimatedTypeAnimator::startAnimValAnimation() | 
| { | 
| -    ASSERT(isAnimatingSVGDom()); | 
| -    SVGElement::InstanceUpdateBlocker blocker(m_contextElement); | 
| - | 
| -    return resetAnimation(list); | 
| +    return resetAnimation(); | 
| } | 
|  | 
| -void SVGAnimatedTypeAnimator::stopAnimValAnimation(const SVGElementInstances& list) | 
| +void SVGAnimatedTypeAnimator::stopAnimValAnimation() | 
| { | 
| if (!isAnimatingSVGDom()) | 
| return; | 
| - | 
| -    ASSERT(m_contextElement); | 
| -    SVGElement::InstanceUpdateBlocker blocker(m_contextElement); | 
| - | 
| -    for (SVGElement* elementInstance : list) { | 
| -        if (SVGAnimatedPropertyBase* animatedProperty = elementInstance->propertyFromAttribute(m_animatedProperty->attributeName())) | 
| -            animatedProperty->animationEnded(); | 
| -    } | 
| +    DCHECK(m_contextElement); | 
| +    m_contextElement->clearAnimatedAttribute(m_animatedProperty->attributeName()); | 
| } | 
|  | 
| -SVGPropertyBase* SVGAnimatedTypeAnimator::resetAnimValToBaseVal(const SVGElementInstances& list) | 
| +SVGPropertyBase* SVGAnimatedTypeAnimator::resetAnimValToBaseVal() | 
| { | 
| -    SVGElement::InstanceUpdateBlocker blocker(m_contextElement); | 
| - | 
| -    return resetAnimation(list); | 
| +    return resetAnimation(); | 
| } | 
|  | 
| class ParsePropertyFromString { | 
|  |