[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

simon.fraser at apple.com simon.fraser at apple.com
Wed Dec 22 18:46:45 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 0aa5fe3eb5bcfb6be3cf74aac61e2497cf207da3
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Dec 17 21:22:34 2010 +0000

    2010-12-17  Simon Fraser  <simon.fraser at apple.com>
    
            Reviewed by Chris Marrin.
    
            Interrupted accelerated animation can break later transitions
            https://bugs.webkit.org/show_bug.cgi?id=51264
    
            Step 1: code cleanup.
            Rename "responseWait" variables to "startTimeResponseWait", to make it clear
            the kind of response that is being waited for.
    
            Make a couple of methods private.
    
            No behavioral changes, so no tests.
    
            * page/animation/AnimationController.cpp:
            (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
            (WebCore::AnimationControllerPrivate::endAnimationUpdate):
            (WebCore::AnimationControllerPrivate::receivedStartTimeResponse):
            (WebCore::AnimationControllerPrivate::addToStartTimeResponseWaitList):
            (WebCore::AnimationControllerPrivate::removeFromStartTimeResponseWaitList):
            (WebCore::AnimationControllerPrivate::startTimeResponse):
            * page/animation/AnimationControllerPrivate.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74286 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 70f021c..9ff0b2b 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,27 @@
+2010-12-17  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Chris Marrin.
+
+        Interrupted accelerated animation can break later transitions
+        https://bugs.webkit.org/show_bug.cgi?id=51264
+
+        Step 1: code cleanup.
+        Rename "responseWait" variables to "startTimeResponseWait", to make it clear
+        the kind of response that is being waited for.
+        
+        Make a couple of methods private.
+        
+        No behavioral changes, so no tests.
+
+        * page/animation/AnimationController.cpp:
+        (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
+        (WebCore::AnimationControllerPrivate::endAnimationUpdate):
+        (WebCore::AnimationControllerPrivate::receivedStartTimeResponse):
+        (WebCore::AnimationControllerPrivate::addToStartTimeResponseWaitList):
+        (WebCore::AnimationControllerPrivate::removeFromStartTimeResponseWaitList):
+        (WebCore::AnimationControllerPrivate::startTimeResponse):
+        * page/animation/AnimationControllerPrivate.h:
+
 2010-12-17  Dan Bernstein  <mitz at apple.com>
 
         Reviewed by Dave Hyatt.
diff --git a/WebCore/page/animation/AnimationController.cpp b/WebCore/page/animation/AnimationController.cpp
index e8e990c..4680a9f 100644
--- a/WebCore/page/animation/AnimationController.cpp
+++ b/WebCore/page/animation/AnimationController.cpp
@@ -53,9 +53,9 @@ AnimationControllerPrivate::AnimationControllerPrivate(Frame* frame)
     , m_beginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet)
     , m_styleAvailableWaiters(0)
     , m_lastStyleAvailableWaiter(0)
-    , m_responseWaiters(0)
-    , m_lastResponseWaiter(0)
-    , m_waitingForResponse(false)
+    , m_startTimeResponseWaiters(0)
+    , m_lastStartTimeResponseWaiter(0)
+    , m_waitingForStartTimeResponse(false)
 {
 }
 
@@ -323,13 +323,13 @@ double AnimationControllerPrivate::beginAnimationUpdateTime()
 void AnimationControllerPrivate::endAnimationUpdate()
 {
     styleAvailable();
-    if (!m_waitingForResponse)
+    if (!m_waitingForStartTimeResponse)
         startTimeResponse(beginAnimationUpdateTime());
 }
 
 void AnimationControllerPrivate::receivedStartTimeResponse(double time)
 {
-    m_waitingForResponse = false;
+    m_waitingForStartTimeResponse = false;
     startTimeResponse(time);
 }
 
@@ -432,29 +432,29 @@ void AnimationControllerPrivate::addToStartTimeResponseWaitList(AnimationBase* a
     ASSERT(!animation->next());
     
     if (willGetResponse)
-        m_waitingForResponse = true;
+        m_waitingForStartTimeResponse = true;
     
-    if (m_responseWaiters)
-        m_lastResponseWaiter->setNext(animation);
+    if (m_startTimeResponseWaiters)
+        m_lastStartTimeResponseWaiter->setNext(animation);
     else
-        m_responseWaiters = animation;
+        m_startTimeResponseWaiters = animation;
         
-    m_lastResponseWaiter = animation;
+    m_lastStartTimeResponseWaiter = animation;
     animation->setNext(0);
 }
 
 void AnimationControllerPrivate::removeFromStartTimeResponseWaitList(AnimationBase* animationToRemove)
 {
     AnimationBase* prevAnimation = 0;
-    for (AnimationBase* animation = m_responseWaiters; animation; animation = animation->next()) {
+    for (AnimationBase* animation = m_startTimeResponseWaiters; animation; animation = animation->next()) {
         if (animation == animationToRemove) {
             if (prevAnimation)
                 prevAnimation->setNext(animation->next());
             else
-                m_responseWaiters = animation->next();
+                m_startTimeResponseWaiters = animation->next();
             
-            if (m_lastResponseWaiter == animation)
-                m_lastResponseWaiter = prevAnimation;
+            if (m_lastStartTimeResponseWaiter == animation)
+                m_lastStartTimeResponseWaiter = prevAnimation;
                 
             animationToRemove->setNext(0);
         }
@@ -465,15 +465,15 @@ void AnimationControllerPrivate::removeFromStartTimeResponseWaitList(AnimationBa
 void AnimationControllerPrivate::startTimeResponse(double time)
 {
     // Go through list of waiters and send them on their way
-    for (AnimationBase* animation = m_responseWaiters; animation; ) {
+    for (AnimationBase* animation = m_startTimeResponseWaiters; animation; ) {
         AnimationBase* nextAnimation = animation->next();
         animation->setNext(0);
         animation->onAnimationStartResponse(time);
         animation = nextAnimation;
     }
     
-    m_responseWaiters = 0;
-    m_lastResponseWaiter = 0;
+    m_startTimeResponseWaiters = 0;
+    m_lastStartTimeResponseWaiter = 0;
 }
 
 AnimationController::AnimationController(Frame* frame)
diff --git a/WebCore/page/animation/AnimationControllerPrivate.h b/WebCore/page/animation/AnimationControllerPrivate.h
index 893c717..6812e09 100644
--- a/WebCore/page/animation/AnimationControllerPrivate.h
+++ b/WebCore/page/animation/AnimationControllerPrivate.h
@@ -54,12 +54,11 @@ public:
     AnimationControllerPrivate(Frame*);
     ~AnimationControllerPrivate();
 
+    void updateAnimationTimer(bool callSetChanged = false);
+
     PassRefPtr<CompositeAnimation> accessCompositeAnimation(RenderObject*);
     bool clear(RenderObject*);
 
-    void animationTimerFired(Timer<AnimationControllerPrivate>*);
-    void updateAnimationTimer(bool callSetChanged = false);
-
     void updateStyleIfNeededDispatcherFired(Timer<AnimationControllerPrivate>*);
     void startUpdateStyleIfNeededDispatcher();
     void addEventToDispatch(PassRefPtr<Element> element, const AtomicString& eventType, const String& name, double elapsedTime);
@@ -92,11 +91,13 @@ public:
     
     void addToStartTimeResponseWaitList(AnimationBase*, bool willGetResponse);
     void removeFromStartTimeResponseWaitList(AnimationBase*);    
-    void startTimeResponse(double t);
     
 private:
+    void animationTimerFired(Timer<AnimationControllerPrivate>*);
+
     void styleAvailable();
     void fireEventsAndUpdateStyle();
+    void startTimeResponse(double t);
 
     typedef HashMap<RenderObject*, RefPtr<CompositeAnimation> > RenderObjectAnimationMap;
 
@@ -120,9 +121,9 @@ private:
     AnimationBase* m_styleAvailableWaiters;
     AnimationBase* m_lastStyleAvailableWaiter;
     
-    AnimationBase* m_responseWaiters;
-    AnimationBase* m_lastResponseWaiter;
-    bool m_waitingForResponse;
+    AnimationBase* m_startTimeResponseWaiters;
+    AnimationBase* m_lastStartTimeResponseWaiter;
+    bool m_waitingForStartTimeResponse;
 };
 
 } // namespace WebCore

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list