Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix play controls for composited animations. #20539

Closed
wants to merge 2 commits into from

Conversation

chromium-wpt-export-bot
Copy link
Collaborator

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}

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}
Copy link
Collaborator

@wpt-pr-bot wpt-pr-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The review process for this patch is being conducted in the Chromium project.

@rakuco
Copy link
Member

rakuco commented Dec 2, 2019

This was actually landed in #20492, I'm not entirely sure how this PR got created. cc @LukeZielinski

@rakuco rakuco closed this Dec 2, 2019
@rakuco rakuco deleted the chromium-export-9e05627618 branch December 2, 2019 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants