-
simon.fraser@apple.com authored
Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=26943 When one transition finishes slightly before another the longer one will fire a second time. This is because the second ImplicitAnmation object is culled too early, before its final RenderStyle is in place. This is done by cleanupFinishedAnimations() so I got rid of that method completely and now cleanup each transition or animation at the point where I am setting the final style, or when I detect that the transition or animation has been terminated early (which happens when you remove it from the style). Test: transitions/extra-transition.html * page/animation/AnimationController.cpp: (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired): * page/animation/CompositeAnimation.cpp: (WebCore::CompositeAnimation::updateTransitions): (WebCore::CompositeAnimation::updateKeyframeAnimations): (WebCore::CompositeAnimation::animate): * page/animation/CompositeAnimation.h: * page/animation/AnimationBase.cpp: (WebCore::AnimationBase::getTimeToNextEvent): Avoid a divide by zero if m_animation->duration() is zero, which can happen if the duration is changed to zero while the animation is running. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
0b0ce0dd