New issue
Advanced search Search tips

Issue 767043 link

Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocked on:
issue 861851

Blocking:
issue 430155


Participants' hotlists:
Hotlist-AnimationWorklet
AnimationWorklet-MVP

Show other hotlists

Other hotlists containing this issue:
Hotlist-1


Sign in to add a comment

AnimationWorklet - Support GroupEffects in blink and cc

Project Member Reported by majidvp@chromium.org, Sep 20 2017

Issue description

AnimationWorklet API supports mutation of multiple keyframe effects by passing in a GroupEffect. [1]

We should start adding support for running animations which have group effects in Blink and CC to enable this. 

[1] https://wicg.github.io/animation-worklet/#worklet-group-effect
 
Blocking: 430155
Labels: -Type-Bug Type-Feature
Owner: yigu@chromium.org
Status: Assigned (was: Available)
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b

commit c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b
Author: Yi Gu <yigu@chromium.org>
Date: Sat Jan 27 19:42:57 2018

Group effects support in cc::AnimationPlayer

The current cc/animations logic assumes a single animation has a single
keyframe effect and can only affect a single layer. To enable animations
with multiple keyframe effects, cc::AnimationPlayer need to support
multiple AnimationTickers each corresponding to one keyframe effect.

Currently there is a 1:1 relationship between AnimationPlayer and
AnimationTicker. This patch is to extend it to 1:n. Here is a summary of
changes:
- Introduce a sub-class of AnimationPlayer, a.k.a
SingleTickerAnimationPlayer, to handle the existing logic (single
effect). SingleTickerAnimationPlayer owns only one AnimationTicker as
the AnimationPlayer does today.
- Currently a AnimationTicker is created upon creating AnimationPlayer.
In this patch, tickers are created separately and added to the player
afterwards. Tickers that the player owns may belong to different targets
therefore the player needs to coordinate with AnimationHost regarding
this situation.
- Adjust existing unit tests according to the changes above.

Bug: 767043
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ibd2ed2f396effec9fbc206ff52c7b94474342d39
Reviewed-on: https://chromium-review.googlesource.com/742162
Commit-Queue: Yi Gu <yigu@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Reviewed-by: Ian Vollick <vollick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532244}
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/BUILD.gn
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_host.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_host.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_host_perftest.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_player.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_player.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_player_unittest.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_ticker.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_ticker.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_timeline.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/animation_timeline_unittest.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/element_animations_unittest.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/scroll_offset_animations_impl.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/scroll_offset_animations_impl.h
[add] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/single_ticker_animation_player.cc
[add] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/single_ticker_animation_player.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/worklet_animation_player.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/animation/worklet_animation_player.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/test/animation_test_common.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/test/animation_test_common.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/test/animation_timelines_test_common.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/test/animation_timelines_test_common.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/test/layer_tree_test.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/test/layer_tree_test.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/cc/trees/layer_tree_host_unittest_animation.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.cpp
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/ui/compositor/layer_animator.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/ui/compositor/layer_animator.h
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b/ui/compositor/layer_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6da6970dc28e5ac882bea9f3ec63a9c08221a13b

commit 6da6970dc28e5ac882bea9f3ec63a9c08221a13b
Author: Makoto Shimazu <shimazu@chromium.org>
Date: Mon Jan 29 07:19:33 2018

Revert "Group effects support in cc::AnimationPlayer"

This reverts commit c70ba0e8ab3258849eb62d3b4f98b6228ae7d54b.

Reason for revert: The original CL caused failures of
AnimationPlayerTest.SwitchToLayer on Linux CFI bot.
https://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=AnimationPlayerTest.SwitchToLayer&testType=cc_unittests


Original change's description:
> Group effects support in cc::AnimationPlayer
> 
> The current cc/animations logic assumes a single animation has a single
> keyframe effect and can only affect a single layer. To enable animations
> with multiple keyframe effects, cc::AnimationPlayer need to support
> multiple AnimationTickers each corresponding to one keyframe effect.
> 
> Currently there is a 1:1 relationship between AnimationPlayer and
> AnimationTicker. This patch is to extend it to 1:n. Here is a summary of
> changes:
> - Introduce a sub-class of AnimationPlayer, a.k.a
> SingleTickerAnimationPlayer, to handle the existing logic (single
> effect). SingleTickerAnimationPlayer owns only one AnimationTicker as
> the AnimationPlayer does today.
> - Currently a AnimationTicker is created upon creating AnimationPlayer.
> In this patch, tickers are created separately and added to the player
> afterwards. Tickers that the player owns may belong to different targets
> therefore the player needs to coordinate with AnimationHost regarding
> this situation.
> - Adjust existing unit tests according to the changes above.
> 
> Bug: 767043
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Change-Id: Ibd2ed2f396effec9fbc206ff52c7b94474342d39
> Reviewed-on: https://chromium-review.googlesource.com/742162
> Commit-Queue: Yi Gu <yigu@chromium.org>
> Reviewed-by: Robert Flack <flackr@chromium.org>
> Reviewed-by: Majid Valipour <majidvp@chromium.org>
> Reviewed-by: Ian Vollick <vollick@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#532244}

TBR=vollick@chromium.org,flackr@chromium.org,majidvp@chromium.org,yigu@chromium.org,smcgruer@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 767043
Change-Id: I7547dfad1e8835d1218b2c704ba1ee69a09544a8
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/890918
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Commit-Queue: Makoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532340}
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/BUILD.gn
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_host.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_host.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_host_perftest.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_player.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_player.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_player_unittest.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_ticker.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_ticker.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_timeline.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/animation_timeline_unittest.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/element_animations_unittest.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/scroll_offset_animations_impl.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/scroll_offset_animations_impl.h
[delete] https://crrev.com/0595c4d499e667842991af8d879b0e55b4058984/cc/animation/single_ticker_animation_player.cc
[delete] https://crrev.com/0595c4d499e667842991af8d879b0e55b4058984/cc/animation/single_ticker_animation_player.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/worklet_animation_player.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/animation/worklet_animation_player.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/test/animation_test_common.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/test/animation_test_common.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/test/animation_timelines_test_common.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/test/animation_timelines_test_common.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/test/layer_tree_test.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/test/layer_tree_test.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/cc/trees/layer_tree_host_unittest_animation.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.cpp
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/ui/compositor/layer_animator.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/ui/compositor/layer_animator.h
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/6da6970dc28e5ac882bea9f3ec63a9c08221a13b/ui/compositor/layer_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5978ffa4f71356305a9ee549a4c2c324a263b070

commit 5978ffa4f71356305a9ee549a4c2c324a263b070
Author: Yi Gu <yigu@chromium.org>
Date: Mon Jan 29 18:57:03 2018

Reland Group effects support in cc::AnimationPlayer

Patch https://chromium-review.googlesource.com/c/chromium/src/+/742162
got reverted because it caused cc_unittest failure on CFI bot. This
patch fixed the bug.

Commit message from the original patch:

The current cc/animations logic assumes a single animation has a single
keyframe effect and can only affect a single layer. To enable animations
with multiple keyframe effects, cc::AnimationPlayer need to support
multiple AnimationTickers each corresponding to one keyframe effect.

Currently there is a 1:1 relationship between AnimationPlayer and
AnimationTicker. This patch is to extend it to 1:n. Here is a summary of
changes:
- Introduce a sub-class of AnimationPlayer, a.k.a
SingleTickerAnimationPlayer, to handle the existing logic (single
effect). SingleTickerAnimationPlayer owns only one AnimationTicker as
the AnimationPlayer does today.
- Currently a AnimationTicker is created upon creating AnimationPlayer.
In this patch, tickers are created separately and added to the player
afterwards. Tickers that the player owns may belong to different targets
therefore the player needs to coordinate with AnimationHost regarding
this situation.
- Adjust existing unit tests according to the changes above.

Bug: 767043
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: If21bad1285c35bbc048fef6b619c8272c0760551
Reviewed-on: https://chromium-review.googlesource.com/890724
Reviewed-by: Ian Vollick <vollick@chromium.org>
Commit-Queue: Yi Gu <yigu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532519}
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/BUILD.gn
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_host.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_host.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_host_perftest.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_player.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_player.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_player_unittest.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_ticker.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_ticker.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_timeline.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/animation_timeline_unittest.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/element_animations_unittest.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/scroll_offset_animations_impl.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/scroll_offset_animations_impl.h
[add] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/single_ticker_animation_player.cc
[add] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/single_ticker_animation_player.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/worklet_animation_player.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/animation/worklet_animation_player.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/test/animation_test_common.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/test/animation_test_common.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/test/animation_timelines_test_common.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/test/animation_timelines_test_common.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/test/layer_tree_test.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/test/layer_tree_test.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/cc/trees/layer_tree_host_unittest_animation.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.cpp
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/ui/compositor/layer_animator.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/ui/compositor/layer_animator.h
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/5978ffa4f71356305a9ee549a4c2c324a263b070/ui/compositor/layer_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e

commit 9d7782ddc3528218aea2e5ee55defeefa4a8fd4e
Author: Samuel Huang <huangs@chromium.org>
Date: Mon Jan 29 22:22:10 2018

Revert "Reland Group effects support in cc::AnimationPlayer"

This reverts commit 5978ffa4f71356305a9ee549a4c2c324a263b070.

Reason for revert: Seems to cause failure in linux-chromeos-rel test:
  telemetry.internal.actions.scroll_unittest.ScrollActionTest.testWheelScrollDistanceWhileZoomed

Original change's description:
> Reland Group effects support in cc::AnimationPlayer
> 
> Patch https://chromium-review.googlesource.com/c/chromium/src/+/742162
> got reverted because it caused cc_unittest failure on CFI bot. This
> patch fixed the bug.
> 
> Commit message from the original patch:
> 
> The current cc/animations logic assumes a single animation has a single
> keyframe effect and can only affect a single layer. To enable animations
> with multiple keyframe effects, cc::AnimationPlayer need to support
> multiple AnimationTickers each corresponding to one keyframe effect.
> 
> Currently there is a 1:1 relationship between AnimationPlayer and
> AnimationTicker. This patch is to extend it to 1:n. Here is a summary of
> changes:
> - Introduce a sub-class of AnimationPlayer, a.k.a
> SingleTickerAnimationPlayer, to handle the existing logic (single
> effect). SingleTickerAnimationPlayer owns only one AnimationTicker as
> the AnimationPlayer does today.
> - Currently a AnimationTicker is created upon creating AnimationPlayer.
> In this patch, tickers are created separately and added to the player
> afterwards. Tickers that the player owns may belong to different targets
> therefore the player needs to coordinate with AnimationHost regarding
> this situation.
> - Adjust existing unit tests according to the changes above.
> 
> Bug: 767043
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Change-Id: If21bad1285c35bbc048fef6b619c8272c0760551
> Reviewed-on: https://chromium-review.googlesource.com/890724
> Reviewed-by: Ian Vollick <vollick@chromium.org>
> Commit-Queue: Yi Gu <yigu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#532519}

TBR=vollick@chromium.org,yigu@chromium.org

Change-Id: Ic82337555158a49ec24ae10fb7a6d63db3114828
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 767043
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/891998
Reviewed-by: Samuel Huang <huangs@chromium.org>
Commit-Queue: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532623}
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/BUILD.gn
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_host.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_host.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_host_perftest.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_player.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_player.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_player_unittest.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_ticker.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_ticker.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_timeline.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/animation_timeline_unittest.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/element_animations_unittest.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/scroll_offset_animations_impl.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/scroll_offset_animations_impl.h
[delete] https://crrev.com/6a6ad1c649e3ac05d32fb90890ada7b37208400c/cc/animation/single_ticker_animation_player.cc
[delete] https://crrev.com/6a6ad1c649e3ac05d32fb90890ada7b37208400c/cc/animation/single_ticker_animation_player.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/worklet_animation_player.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/animation/worklet_animation_player.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/test/animation_test_common.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/test/animation_test_common.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/test/animation_timelines_test_common.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/test/animation_timelines_test_common.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/test/layer_tree_test.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/test/layer_tree_test.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/cc/trees/layer_tree_host_unittest_animation.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.cpp
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/ui/compositor/layer_animator.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/ui/compositor/layer_animator.h
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/9d7782ddc3528218aea2e5ee55defeefa4a8fd4e/ui/compositor/layer_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jan 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/361b1e2af678fe9820b9efa96acade513605abe8

commit 361b1e2af678fe9820b9efa96acade513605abe8
Author: Yi Gu <yigu@chromium.org>
Date: Tue Jan 30 15:26:56 2018

Reland "Reland Group effects support in cc::AnimationPlayer"

This is a reland of 5978ffa4f71356305a9ee549a4c2c324a263b070.

Original change's description:
> Reland Group effects support in cc::AnimationPlayer
> 
> Patch https://chromium-review.googlesource.com/c/chromium/src/+/742162
> got reverted because it caused cc_unittest failure on CFI bot. This
> patch fixed the bug.
> 
> Commit message from the original patch:
> 
> The current cc/animations logic assumes a single animation has a single
> keyframe effect and can only affect a single layer. To enable animations
> with multiple keyframe effects, cc::AnimationPlayer need to support
> multiple AnimationTickers each corresponding to one keyframe effect.
> 
> Currently there is a 1:1 relationship between AnimationPlayer and
> AnimationTicker. This patch is to extend it to 1:n. Here is a summary of
> changes:
> - Introduce a sub-class of AnimationPlayer, a.k.a
> SingleTickerAnimationPlayer, to handle the existing logic (single
> effect). SingleTickerAnimationPlayer owns only one AnimationTicker as
> the AnimationPlayer does today.
> - Currently a AnimationTicker is created upon creating AnimationPlayer.
> In this patch, tickers are created separately and added to the player
> afterwards. Tickers that the player owns may belong to different targets
> therefore the player needs to coordinate with AnimationHost regarding
> this situation.
> - Adjust existing unit tests according to the changes above.
> 
> Bug: 767043
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Change-Id: If21bad1285c35bbc048fef6b619c8272c0760551
> Reviewed-on: https://chromium-review.googlesource.com/890724
> Reviewed-by: Ian Vollick <vollick@chromium.org>
> Commit-Queue: Yi Gu <yigu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#532519}

Bug: 767043
Change-Id: I5e6e7d796ff03cf76c3e2b0de3c4df5b506bf12d
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/893338
Reviewed-by: Ian Vollick <vollick@chromium.org>
Commit-Queue: Yi Gu <yigu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532882}
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/BUILD.gn
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_host.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_host.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_host_perftest.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_player.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_player.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_player_unittest.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_ticker.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_ticker.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_timeline.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/animation_timeline_unittest.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/element_animations_unittest.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/scroll_offset_animations_impl.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/scroll_offset_animations_impl.h
[add] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/single_ticker_animation_player.cc
[add] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/single_ticker_animation_player.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/worklet_animation_player.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/animation/worklet_animation_player.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/test/animation_test_common.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/test/animation_test_common.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/test/animation_timelines_test_common.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/test/animation_timelines_test_common.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/test/layer_tree_test.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/test/layer_tree_test.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/cc/trees/layer_tree_host_unittest_animation.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.cpp
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayerTest.cpp
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/ui/compositor/layer_animator.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/ui/compositor/layer_animator.h
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/361b1e2af678fe9820b9efa96acade513605abe8/ui/compositor/layer_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cfa11ad7bc5950d5a20377cc9ed14b05ccac0c11

commit cfa11ad7bc5950d5a20377cc9ed14b05ccac0c11
Author: Yi Gu <yigu@chromium.org>
Date: Tue Jun 12 20:28:57 2018

Unify animation test logic to serve group effects

Currently we have two paths for adding keyframe models in animation
test. The one in animation_test_common.h is a legacy to accommodate for
SingleKeyframeEffectAnimation. The other one is in animation_unittest.cc
which supports for animations with group effects.

This patch unifies the two so that we are able to test group effects.

Bug: 767043
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Icd839152eef6becc8aa34af3342544ae02d70f4c
Reviewed-on: https://chromium-review.googlesource.com/1092871
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Commit-Queue: Yi Gu <yigu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566552}
[modify] https://crrev.com/cfa11ad7bc5950d5a20377cc9ed14b05ccac0c11/cc/animation/animation_unittest.cc
[modify] https://crrev.com/cfa11ad7bc5950d5a20377cc9ed14b05ccac0c11/cc/test/animation_test_common.cc
[modify] https://crrev.com/cfa11ad7bc5950d5a20377cc9ed14b05ccac0c11/cc/test/animation_test_common.h

Cc: yigu@chromium.org
 Issue 843238  has been merged into this issue.
Blockedon: 861851
Project Member

Comment 13 by bugdroid1@chromium.org, Sep 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c12f9188afee3b5a9892103c0a899ba6a032e18f

commit c12f9188afee3b5a9892103c0a899ba6a032e18f
Author: Yi Gu <yigu@chromium.org>
Date: Thu Sep 13 03:27:40 2018

[animation-worklet] Animate worklet group effects via main thread

Given that we now have a new path to the worklet thread, multiple
effects (size > 1) can be animated via main thread. If only 1
effect is in the worklet animation, it may still go through the
compositor path.
Follow up work:
  1. The effects are driven by a single time value, i.e. they are
  animating all together. Need to introduce multiple output time and
  expose multiple effect proxy in worklet.
  2. Currently if any of the effects cannot be animated, the entire
  animation won't start. Need to animate the valid ones once we have
  the work above in place.

Bug: 767043
Change-Id: I81cf9fe914979a488e5225024d63799576dfd0dd
Reviewed-on: https://chromium-review.googlesource.com/1214092
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590911}
[add] https://crrev.com/c12f9188afee3b5a9892103c0a899ba6a032e18f/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animate-multiple-effects-via-main-thread-expected.txt
[add] https://crrev.com/c12f9188afee3b5a9892103c0a899ba6a032e18f/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/animate-multiple-effects-via-main-thread.html
[modify] https://crrev.com/c12f9188afee3b5a9892103c0a899ba6a032e18f/third_party/WebKit/LayoutTests/virtual/threaded/fast/animationworklet/worklet-animation-creation.html
[modify] https://crrev.com/c12f9188afee3b5a9892103c0a899ba6a032e18f/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc

Labels: Hotlist-Experimental
Summary: AnimationWorklet - Support GroupEffects in blink and cc (was: AnimationWorklet - Enable passing in multiple effects)

Sign in to add a comment