Chromium Code Reviews
Descriptioncc: Push Animation Finished State and Use Finished State for IsCompleted
This fixes the bug where we try to tick animation on pending tree after
commit using element id, but property trees doesn't think animation is
still running.
There are four parts that are changed by this CL:
1. Property tree check for animation is finished to determine that we
no longer need a node for animation, while animation host only think
animation is completed when animation is deleted. Change animation
host to considered finished animation as completed.
2. When animation is finished, the state is not pushed during commit.
In this case animation host on impl thread would still try to tick this
animation because it does not know animation is finished. Add call to
SetNeedsPushProperties to animation when it is finished.
3. It used to be that when animation no longer affects either pending
and active tree, that animation is removed during activation. After this
CL, animation marked as finished on main thread will get to same stage,
but sending out FINISHED event is still needed. To do this, don't
delete animations during activation, instead mark animations not
affecting trees as finished during UpdateState.
4. For animations removed on main thread, the compositor thread cannot
distinguish it from a FINISHED animation on main thread. When main
thread receives FINISHED event from compositor thread and found that
the animation no longer exists, it is safe to delete the animation on
the compositor thread during commit.
Since this is the correct fix for crashing cause by trying to use
element id to tick animation, the early return to avoid crash is also
removed in this CL.
BUG=702774
R=ajuma
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Review-Url: https://codereview.chromium.org/2796013003
Cr-Commit-Position: refs/heads/master@{#467008}
Committed: https://chromium.googlesource.com/chromium/src/+/b1e280d1a61f77855418913417c941c7faff176c
Patch Set 1 #Patch Set 2 : fix all cc unittest #
Total comments: 4
Patch Set 3 : address review comments #
Total comments: 1
Patch Set 4 : rebase #Patch Set 5 : clear events before update state in unittest #
Messages
Total messages: 24 (18 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||