зеркало из https://github.com/mozilla/gecko-dev.git
6b03b4a52f
Animation::Tick contains special handling to cope with pending ready times that are in the future. This was originally introduced to cope with the situation where we are called multiple times per refresh-driver tick. As of bug 1195180, Animation::Tick should no longer be called multiple times per refresh driver tick. It would seem, therefore, that we no longer need to check for a future time. However, since introducing this check, the vsync refresh driver timer has been added which means that we can still have a recorded time from TimeStamp::Now that is ahead of the vsync time used to update the refresh driver. In that case, however, rather than waiting for the next tick, we should simply clamp that pending ready time to the refresh driver time and finish pending immediately. This patch also updates one of the tests for reversing. With this updated behavior we can sometimes arrive at a situation where when an Animation starts and its ready promise resolves, its currentTime is still 0. If we call reverse() at this point on an animation with an infinite active duration it should throw an InvalidStateError. To avoid this situation, this test makes sure we wait an extra frame before calling reverse(). |
||
---|---|---|
.. | ||
test | ||
Animation.cpp | ||
Animation.h | ||
AnimationComparator.h | ||
AnimationEffectReadOnly.cpp | ||
AnimationEffectReadOnly.h | ||
AnimationTimeline.cpp | ||
AnimationTimeline.h | ||
AnimationUtils.h | ||
DocumentTimeline.cpp | ||
DocumentTimeline.h | ||
KeyframeEffect.cpp | ||
KeyframeEffect.h | ||
PendingAnimationTracker.cpp | ||
PendingAnimationTracker.h | ||
moz.build |