Changeset 117216 in webkit


Ignore:
Timestamp:
May 15, 2012 9:49:17 PM (12 years ago)
Author:
igor.o@sisa.samsung.com
Message:

regression(111639): Issue with simultaneous CSS animations
https://bugs.webkit.org/show_bug.cgi?id=85929

Source/WebCore:

Currently, previousTimeToNextService is just saving the previous CompositeAnimation::timeToNextService
for AnimationControllerPrivate::updateAnimationTimerForRenderer, however CompositeAnimation::timeToNextService
is also called and used by updateAnimationTimer. Make sure we save the existing timeToNextService from
both places, updateAnimationTimerForRenderer and updateAnimationTimer.

Reviewed by Dean Jackson.

Test: animations/fill-mode-forwards.html

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
(WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
(WebCore::AnimationControllerPrivate::updateAnimationTimer):

  • page/animation/AnimationControllerPrivate.h:

(AnimationControllerPrivate):

LayoutTests:

Reviewed by Dean Jackson.

  • animations/fill-mode-forwards-expected.txt: Added.
  • animations/fill-mode-forwards.html: Added.
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r117208 r117216  
     12012-05-15  Igor Oliveira  <igor.o@sisa.samsung.com>
     2
     3        regression(111639): Issue with simultaneous CSS animations
     4        https://bugs.webkit.org/show_bug.cgi?id=85929
     5
     6        Reviewed by Dean Jackson.
     7
     8        * animations/fill-mode-forwards-expected.txt: Added.
     9        * animations/fill-mode-forwards.html: Added.
     10
    1112012-05-15  Alexis Menard  <alexis.menard@openbossa.org>
    212
  • trunk/Source/WebCore/ChangeLog

    r117214 r117216  
     12012-05-15  Igor Oliveira  <igor.o@sisa.samsung.com>
     2
     3        regression(111639): Issue with simultaneous CSS animations
     4        https://bugs.webkit.org/show_bug.cgi?id=85929
     5
     6        Currently, previousTimeToNextService is just saving the previous CompositeAnimation::timeToNextService
     7        for AnimationControllerPrivate::updateAnimationTimerForRenderer, however CompositeAnimation::timeToNextService
     8        is also called and used by updateAnimationTimer. Make sure we save the existing timeToNextService from
     9        both places, updateAnimationTimerForRenderer and updateAnimationTimer.
     10
     11        Reviewed by Dean Jackson.
     12
     13        Test: animations/fill-mode-forwards.html
     14
     15        * page/animation/AnimationController.cpp:
     16        (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
     17        (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
     18        (WebCore::AnimationControllerPrivate::updateAnimationTimer):
     19        * page/animation/AnimationControllerPrivate.h:
     20        (AnimationControllerPrivate):
     21
    1222012-05-15  Tien-Ren Chen  <trchen@chromium.org>
    223
  • trunk/Source/WebCore/page/animation/AnimationController.cpp

    r115581 r117216  
    5858    , m_animationsWaitingForStartTimeResponse()
    5959    , m_waitingForAsyncStartNotification(false)
     60    , m_previousTimeToNextService(0)
    6061{
    6162}
     
    119120void AnimationControllerPrivate::updateAnimationTimerForRenderer(RenderObject* renderer)
    120121{
    121     static double previousTimeToNextService = 0;
    122122    double timeToNextService = 0;
    123123
     
    127127
    128128    if (m_animationTimer.isActive()) {
    129         if (previousTimeToNextService < timeToNextService)
     129        if (m_previousTimeToNextService < timeToNextService)
    130130            return;
    131131
     
    133133    }
    134134
    135     previousTimeToNextService = timeToNextService;
     135    m_previousTimeToNextService = timeToNextService;
    136136    m_animationTimer.startOneShot(timeToNextService);
    137137}
     
    145145        if (!m_animationTimer.isActive() || m_animationTimer.repeatInterval() == 0)
    146146            m_animationTimer.startRepeating(cAnimationTimerDelay);
     147
     148        m_previousTimeToNextService = timeToNextService;
    147149        return;
    148150    }
     
    158160    if (m_animationTimer.isActive())
    159161        m_animationTimer.stop();
     162    m_previousTimeToNextService = timeToNextService;
    160163    m_animationTimer.startOneShot(timeToNextService);
    161164}
  • trunk/Source/WebCore/page/animation/AnimationControllerPrivate.h

    r111639 r117216  
    143143    WaitingAnimationsSet m_animationsWaitingForStartTimeResponse;
    144144    bool m_waitingForAsyncStartNotification;
     145    double m_previousTimeToNextService;
    145146};
    146147
Note: See TracChangeset for help on using the changeset viewer.