New issue
Advanced search Search tips

Issue 891716 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug , Feature



Sign in to add a comment

Animations are ticked before updating their state.

Project Member Reported by flackr@chromium.org, Oct 3

Issue description

The current cc animation infrastructure calls AnimationHost::TickAnimations before calling AnimationHost::UpdateAnimationState. This seems to tick animations based on their run_state_ from the previous animation tick. This hasn't been a problem for the previous layer based animations since layers informed the animation when they went away but with BlinkGenPropertyTrees we try to tick fill-forwards animations for one more frame after they finished but BGPT no longer creates a composited element / transform node for the animation.

This seems to be the cause for the failing LayoutTests that were worked around by removing the thought to be unnecessary AnimateLayers call in https://chromium-review.googlesource.com/c/chromium/src/+/1091504 which revealed that AnimateLayers is necessary to mark finished animations causing  issue 888260 .

I think we should switch the order of these two calls - this also requires passing in the frame time (currently uses last tick time) and separating out the |start_ready_animations| behavior as this needs to be done later for compositor side animations.
 
I'm testing a potential lighter weight fix in https://chromium-review.googlesource.com/c/chromium/src/+/1256422 of just marking finished keyframe models during the Tick.
Labels: Type-Feature
Blocking: -836897
This doesn't block BGPT now that it has correct element tracking.

Sign in to add a comment