Skip to content
  • simon.fraser@apple.com's avatar
    2009-07-05 Chris Marrin <cmarrin@apple.com> · 0b0ce0dd
    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