Index: Source/core/animation/AnimationClock.cpp |
diff --git a/Source/core/animation/AnimationClock.cpp b/Source/core/animation/AnimationClock.cpp |
index 649220690e67a27adf18592ac5d9a46d000c9ff2..e25af24f8a1a339d54ebb20b70d5cd0aa1a6cebd 100644 |
--- a/Source/core/animation/AnimationClock.cpp |
+++ b/Source/core/animation/AnimationClock.cpp |
@@ -35,18 +35,18 @@ namespace WebCore { |
void AnimationClock::updateTime(double time) |
{ |
- if (time > m_time) |
+ if (time > m_time) { |
m_time = time; |
- m_frozen = true; |
+ // Avoid a race where the animation start time received |
+ // from the compositor may be earlier than the task time. |
+ taskTime() = 0; |
+ } |
} |
double AnimationClock::currentTime() |
{ |
- if (!m_frozen) { |
- double newTime = m_monotonicallyIncreasingTime(); |
- if (newTime >= m_time + minTimeBeforeUnsynchronizedAnimationClockTick) |
- m_time = newTime; |
- } |
+ if (m_time < taskTime()) |
+ m_time = taskTime(); |
return m_time; |
} |