Fix play controls for composited animations. #20539
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Play controls recently broke for composited animations due to timing
differences on when variables are changes. Per spec, the start time is
not cleared when pausing an animation until after the animation is
ready. This discrepancy lead to a case when PreCommit would not get
called when pausing a composited animation.
Reverse and updatePlaybackRate were also broken for composited
animations. We cannot composite infinite duration animations in the
reverse direction. We were using playback rate instead of
EffectivePlaybackRate in one of our checks for compositor eligibility,
and falling to catch this case.
Finally, with changes to when start time is cleared, we can be in a
case where it is important to preserve the start time or the current
time when starting a composited animation. Fortunately, we can
determine when start time is the important factor based in whether the
animation is pending.
Next step: Add WPT tests that would have caught the regressions. Filed
as issue 1029123.
Bug: 1028985, 1028986
Change-Id: I4edf851790a860d20962df84944558e7dbc1863a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1940885
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#720042}