| Index: Source/core/animation/CompositorPendingAnimations.cpp
|
| diff --git a/Source/core/animation/CompositorPendingAnimations.cpp b/Source/core/animation/CompositorPendingAnimations.cpp
|
| index c4aa6897798e1e4f7f690e17e635cd1435dffdd9..134baeacd5abca7f0e3c824346e9b33804315aa8 100644
|
| --- a/Source/core/animation/CompositorPendingAnimations.cpp
|
| +++ b/Source/core/animation/CompositorPendingAnimations.cpp
|
| @@ -114,24 +114,36 @@ bool CompositorPendingAnimations::update(bool startOnCompositor)
|
| }
|
|
|
| // If not, go ahead and start any animations that were waiting.
|
| - notifyCompositorAnimationStarted(monotonicallyIncreasingTime());
|
| + notifyAnimationStarted(monotonicallyIncreasingTime(), false);
|
|
|
| ASSERT(m_pending.isEmpty());
|
| return false;
|
| }
|
|
|
| -void CompositorPendingAnimations::notifyCompositorAnimationStarted(double monotonicAnimationStartTime)
|
| +void CompositorPendingAnimations::notifyAnimationStarted(double monotonicAnimationStartTime, bool startedOnCompositor)
|
| {
|
| + TRACE_EVENT0("blink", "CompositorPendingAnimations::notifyCompositorAnimationStarted");
|
| for (size_t i = 0; i < m_waitingForCompositorAnimationStart.size(); ++i) {
|
| AnimationPlayer* player = m_waitingForCompositorAnimationStart[i].get();
|
| if (player->hasStartTime())
|
| continue;
|
| - player->notifyCompositorStartTime(monotonicAnimationStartTime - player->timeline()->zeroTime());
|
| + double effectiveStartTime = monotonicAnimationStartTime - player->timeline()->zeroTime();
|
| + if (startedOnCompositor) {
|
| + player->notifyCompositorStartTime(effectiveStartTime);
|
| + } else {
|
| + player->notifyStartTime(effectiveStartTime);
|
| + }
|
| }
|
|
|
| m_waitingForCompositorAnimationStart.clear();
|
| }
|
|
|
| +void CompositorPendingAnimations::notifyCompositorAnimationStarted(double monotonicAnimationStartTime)
|
| +{
|
| + TRACE_EVENT0("blink", "CompositorPendingAnimations::notifyCompositorAnimationStarted");
|
| + notifyAnimationStarted(monotonicAnimationStartTime, true);
|
| +}
|
| +
|
| void CompositorPendingAnimations::trace(Visitor* visitor)
|
| {
|
| visitor->trace(m_pending);
|
|
|