DescriptionDefer starting of animations until after compositing update
Starting of animations depends on compositing state so that a decision
as to whether to run the animation on the main or compositor threads
can be made. Previously this happened following a style recalc where
sufficient incremental updating allowed a decision. After this patch
starting of animations may be deferred until after a compositing
update. Ideally this would happen once before the frame completes, but
the lifecycle of a frame is not yet visible to Blink.
Following the starting of animations the animation clock is unfrozen
allowing getComputedStyle and other animation API calls to advance
time when outside a frame. Previously, to maintain synchronization
in these situations the clock automatically froze on access and then
unfroze after a subsequent style recalc. This was partially inaccurate
as calls via the animation API might never trigger a recalc. Deferring the
unfreezing until after the compositing update is less feasible. Instead,
this patch allows the clock to remain unfrozen outside a frame by
throttling the frequency at which the clock is permitted to advance.
BUG=339847
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=167740
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=167865
Patch Set 1 #Patch Set 2 : Rebase. #Patch Set 3 : Ensure players have start time from current frame' #Patch Set 4 : Rebase. #Patch Set 5 : Advance animation clock after minimum delay. #
Total comments: 9
Patch Set 6 : Rebase. #Patch Set 7 : Improve DocumentAnimations and factor out inner functionality of updateCompositingLayers. #Patch Set 8 : Remove anonymous namespace. #
Total comments: 11
Patch Set 9 : Move some AnimationClock functions to cpp. #
Total comments: 8
Patch Set 10 : Address comments from esprehn. #Patch Set 11 : Rebase. #Patch Set 12 : Fix assertion. #Patch Set 13 : Reland after fixing flaky tests. #Messages
Total messages: 32 (0 generated)
|