[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