| Index: cc/trees/layer_tree_host_unittest_animation.cc
|
| diff --git a/cc/trees/layer_tree_host_unittest_animation.cc b/cc/trees/layer_tree_host_unittest_animation.cc
|
| index b32fdf7f20880298fae411fe2c4c1706c5014b32..0b3f1b3297e7e1108d020efcef3abad0eeb597ab 100644
|
| --- a/cc/trees/layer_tree_host_unittest_animation.cc
|
| +++ b/cc/trees/layer_tree_host_unittest_animation.cc
|
| @@ -50,11 +50,25 @@ class LayerTreeHostAnimationTest : public LayerTreeTest {
|
| timeline_->AttachPlayer(player_child_.get());
|
| }
|
|
|
| + void GetImplTimelineAndPlayerByID(const LayerTreeHostImpl& host_impl) {
|
| + AnimationHost* animation_host_impl = host_impl.animation_host();
|
| + timeline_impl_ = animation_host_impl->GetTimelineById(timeline_id_);
|
| + EXPECT_TRUE(timeline_impl_);
|
| + player_impl_ = timeline_impl_->GetPlayerById(player_id_);
|
| + EXPECT_TRUE(player_impl_);
|
| + player_child_impl_ = timeline_impl_->GetPlayerById(player_child_id_);
|
| + EXPECT_TRUE(player_child_impl_);
|
| + }
|
| +
|
| protected:
|
| scoped_refptr<AnimationTimeline> timeline_;
|
| scoped_refptr<AnimationPlayer> player_;
|
| scoped_refptr<AnimationPlayer> player_child_;
|
|
|
| + scoped_refptr<AnimationTimeline> timeline_impl_;
|
| + scoped_refptr<AnimationPlayer> player_impl_;
|
| + scoped_refptr<AnimationPlayer> player_child_impl_;
|
| +
|
| const int timeline_id_;
|
| const int player_id_;
|
| const int player_child_id_;
|
| @@ -162,8 +176,7 @@ class LayerTreeHostAnimationTestAddAnimation
|
| int group) override {
|
| EXPECT_LT(base::TimeTicks(), monotonic_time);
|
|
|
| - Animation* animation =
|
| - player_->element_animations()->GetAnimation(TargetProperty::OPACITY);
|
| + Animation* animation = player_->GetAnimation(TargetProperty::OPACITY);
|
| if (animation)
|
| player_->RemoveAnimation(animation->id());
|
|
|
| @@ -296,8 +309,7 @@ class LayerTreeHostAnimationTestAddAnimationWithTimingFunction
|
| timeline_impl->GetPlayerById(player_child_id_);
|
|
|
| Animation* animation =
|
| - player_child_impl->element_animations()->GetAnimation(
|
| - TargetProperty::OPACITY);
|
| + player_child_impl->GetAnimation(TargetProperty::OPACITY);
|
|
|
| const FloatAnimationCurve* curve =
|
| animation->curve()->ToFloatAnimationCurve();
|
| @@ -348,10 +360,9 @@ class LayerTreeHostAnimationTestSynchronizeAnimationStartTimes
|
| void NotifyAnimationStarted(base::TimeTicks monotonic_time,
|
| TargetProperty::Type target_property,
|
| int group) override {
|
| - Animation* animation = player_child_->element_animations()->GetAnimation(
|
| - TargetProperty::OPACITY);
|
| + Animation* animation = player_child_->GetAnimation(TargetProperty::OPACITY);
|
| main_start_time_ = animation->start_time();
|
| - player_child_->element_animations()->RemoveAnimation(animation->id());
|
| + player_child_->RemoveAnimation(animation->id());
|
| EndTest();
|
| }
|
|
|
| @@ -363,8 +374,7 @@ class LayerTreeHostAnimationTestSynchronizeAnimationStartTimes
|
| timeline_impl->GetPlayerById(player_child_id_);
|
|
|
| Animation* animation =
|
| - player_child_impl->element_animations()->GetAnimation(
|
| - TargetProperty::OPACITY);
|
| + player_child_impl->GetAnimation(TargetProperty::OPACITY);
|
| if (!animation)
|
| return;
|
|
|
| @@ -399,10 +409,9 @@ class LayerTreeHostAnimationTestAnimationFinishedEvents
|
| void NotifyAnimationFinished(base::TimeTicks monotonic_time,
|
| TargetProperty::Type target_property,
|
| int group) override {
|
| - Animation* animation =
|
| - player_->element_animations()->GetAnimation(TargetProperty::OPACITY);
|
| + Animation* animation = player_->GetAnimation(TargetProperty::OPACITY);
|
| if (animation)
|
| - player_->element_animations()->RemoveAnimation(animation->id());
|
| + player_->RemoveAnimation(animation->id());
|
| EndTest();
|
| }
|
|
|
| @@ -441,9 +450,9 @@ class LayerTreeHostAnimationTestDoNotSkipLayersWithAnimatedOpacity
|
| scoped_refptr<AnimationPlayer> player_impl =
|
| timeline_impl->GetPlayerById(player_id_);
|
|
|
| - Animation* animation_impl = player_impl->element_animations()->GetAnimation(
|
| - TargetProperty::OPACITY);
|
| - player_impl->element_animations()->RemoveAnimation(animation_impl->id());
|
| + Animation* animation_impl =
|
| + player_impl->GetAnimation(TargetProperty::OPACITY);
|
| + player_impl->RemoveAnimation(animation_impl->id());
|
| EndTest();
|
| }
|
|
|
| @@ -840,7 +849,22 @@ class LayerTreeHostAnimationTestScrollOffsetAnimationAdjusted
|
| layer_tree()->root_layer()->AddChild(scroll_layer_);
|
|
|
| AttachPlayersToTimeline();
|
| - player_child_->AttachElement(scroll_layer_->element_id());
|
| + }
|
| +
|
| + AnimationPlayer& ScrollOffsetPlayer(
|
| + const LayerTreeHostImpl& host_impl,
|
| + scoped_refptr<FakePictureLayer> layer) const {
|
| + scoped_refptr<ElementAnimations> element_animations =
|
| + host_impl.animation_host()->GetElementAnimationsForElementId(
|
| + layer->element_id());
|
| + DCHECK(element_animations);
|
| + DCHECK(element_animations->players_list().might_have_observers());
|
| +
|
| + ElementAnimations::PlayersList::Iterator it(
|
| + &element_animations->players_list());
|
| + AnimationPlayer* player = it.GetNext();
|
| + DCHECK(player);
|
| + return *player;
|
| }
|
|
|
| void BeginTest() override { PostSetNeedsCommitToMainThread(); }
|
| @@ -871,12 +895,12 @@ class LayerTreeHostAnimationTestScrollOffsetAnimationAdjusted
|
| // Note that the frame number gets incremented after BeginCommitOnThread but
|
| // before WillCommitCompleteOnThread and CommitCompleteOnThread.
|
| if (host_impl->sync_tree()->source_frame_number() == 0) {
|
| + GetImplTimelineAndPlayerByID(*host_impl);
|
| // This happens after the impl-only animation is added in
|
| // WillCommitCompleteOnThread.
|
| - Animation* animation =
|
| - host_impl->animation_host()
|
| - ->GetElementAnimationsForElementId(scroll_layer_->element_id())
|
| - ->GetAnimation(TargetProperty::SCROLL_OFFSET);
|
| + Animation* animation = ScrollOffsetPlayer(*host_impl, scroll_layer_)
|
| + .GetAnimation(TargetProperty::SCROLL_OFFSET);
|
| + DCHECK(animation);
|
| ScrollOffsetAnimationCurve* curve =
|
| animation->curve()->ToScrollOffsetAnimationCurve();
|
|
|
| @@ -899,10 +923,9 @@ class LayerTreeHostAnimationTestScrollOffsetAnimationAdjusted
|
|
|
| void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override {
|
| if (host_impl->sync_tree()->source_frame_number() == 1) {
|
| - Animation* animation =
|
| - host_impl->animation_host()
|
| - ->GetElementAnimationsForElementId(scroll_layer_->element_id())
|
| - ->GetAnimation(TargetProperty::SCROLL_OFFSET);
|
| + Animation* animation = ScrollOffsetPlayer(*host_impl, scroll_layer_)
|
| + .GetAnimation(TargetProperty::SCROLL_OFFSET);
|
| + DCHECK(animation);
|
| ScrollOffsetAnimationCurve* curve =
|
| animation->curve()->ToScrollOffsetAnimationCurve();
|
| // Verifiy the initial and target position after the scroll offset
|
| @@ -967,8 +990,7 @@ class LayerTreeHostAnimationTestScrollOffsetAnimationRemoval
|
| break;
|
| case 1: {
|
| Animation* animation =
|
| - player_child_->element_animations()
|
| - ->GetAnimation(TargetProperty::SCROLL_OFFSET);
|
| + player_child_->GetAnimation(TargetProperty::SCROLL_OFFSET);
|
| player_child_->RemoveAnimation(animation->id());
|
| scroll_layer_->SetScrollOffset(final_postion_);
|
| break;
|
| @@ -1025,8 +1047,8 @@ class LayerTreeHostAnimationTestScrollOffsetAnimationRemoval
|
|
|
| LayerImpl* scroll_layer_impl =
|
| host_impl->active_tree()->LayerById(scroll_layer_->id());
|
| - Animation* animation = player_impl->element_animations()->GetAnimation(
|
| - TargetProperty::SCROLL_OFFSET);
|
| + Animation* animation =
|
| + player_impl->GetAnimation(TargetProperty::SCROLL_OFFSET);
|
|
|
| if (!animation || animation->run_state() != Animation::RUNNING)
|
| return false;
|
| @@ -1119,21 +1141,18 @@ class LayerTreeHostAnimationTestAnimationsAddedToNewAndExistingLayers
|
| if (!player_impl->element_animations())
|
| return;
|
|
|
| - Animation* root_animation = player_impl->element_animations()->GetAnimation(
|
| - TargetProperty::OPACITY);
|
| + Animation* root_animation =
|
| + player_impl->GetAnimation(TargetProperty::OPACITY);
|
| if (!root_animation || root_animation->run_state() != Animation::RUNNING)
|
| return;
|
|
|
| Animation* child_animation =
|
| - player_child_impl->element_animations()->GetAnimation(
|
| - TargetProperty::OPACITY);
|
| + player_child_impl->GetAnimation(TargetProperty::OPACITY);
|
| EXPECT_EQ(Animation::RUNNING, child_animation->run_state());
|
| EXPECT_EQ(root_animation->start_time(), child_animation->start_time());
|
| - player_impl->element_animations()->AbortAnimations(TargetProperty::OPACITY);
|
| - player_impl->element_animations()->AbortAnimations(
|
| - TargetProperty::TRANSFORM);
|
| - player_child_impl->element_animations()->AbortAnimations(
|
| - TargetProperty::OPACITY);
|
| + player_impl->AbortAnimations(TargetProperty::OPACITY, false);
|
| + player_impl->AbortAnimations(TargetProperty::TRANSFORM, false);
|
| + player_child_impl->AbortAnimations(TargetProperty::OPACITY, false);
|
| EndTest();
|
| }
|
|
|
| @@ -1195,8 +1214,7 @@ class LayerTreeHostAnimationTestPendingTreeAnimatesFirstCommit
|
| timeline_impl->GetPlayerById(player_id_);
|
|
|
| LayerImpl* child = host_impl->sync_tree()->LayerById(layer_->id());
|
| - Animation* animation = player_impl->element_animations()->GetAnimation(
|
| - TargetProperty::TRANSFORM);
|
| + Animation* animation = player_impl->GetAnimation(TargetProperty::TRANSFORM);
|
|
|
| // The animation should be starting for the first frame.
|
| EXPECT_EQ(Animation::STARTING, animation->run_state());
|
| @@ -1209,8 +1227,7 @@ class LayerTreeHostAnimationTestPendingTreeAnimatesFirstCommit
|
| // And the sync tree layer should know it is animating.
|
| EXPECT_TRUE(child->screen_space_transform_is_animating());
|
|
|
| - player_impl->element_animations()->AbortAnimations(
|
| - TargetProperty::TRANSFORM);
|
| + player_impl->AbortAnimations(TargetProperty::TRANSFORM, false);
|
| EndTest();
|
| }
|
|
|
| @@ -1357,21 +1374,20 @@ class LayerTreeHostAnimationTestAddAnimationAfterAnimating
|
| }
|
|
|
| void CheckAnimations(LayerTreeHostImpl* host_impl) {
|
| - AnimationHost::ElementToAnimationsMap element_animations_copy =
|
| - host_impl->animation_host()->active_element_animations_for_testing();
|
| - EXPECT_EQ(2u, element_animations_copy.size());
|
| - for (auto& it : element_animations_copy) {
|
| - ElementId id = it.first;
|
| - if (id ==
|
| - host_impl->active_tree()->root_layer_for_testing()->element_id()) {
|
| - Animation* anim = it.second->GetAnimation(TargetProperty::TRANSFORM);
|
| - EXPECT_GT((anim->start_time() - base::TimeTicks()).InSecondsF(), 0);
|
| - } else if (id == layer_->element_id()) {
|
| - Animation* anim = it.second->GetAnimation(TargetProperty::OPACITY);
|
| - EXPECT_GT((anim->start_time() - base::TimeTicks()).InSecondsF(), 0);
|
| - }
|
| - EndTest();
|
| - }
|
| + GetImplTimelineAndPlayerByID(*host_impl);
|
| +
|
| + EXPECT_EQ(2u, host_impl->animation_host()
|
| + ->active_element_animations_for_testing()
|
| + .size());
|
| +
|
| + Animation* root_anim =
|
| + player_impl_->GetAnimation(TargetProperty::TRANSFORM);
|
| + EXPECT_GT((root_anim->start_time() - base::TimeTicks()).InSecondsF(), 0);
|
| +
|
| + Animation* anim = player_child_impl_->GetAnimation(TargetProperty::OPACITY);
|
| + EXPECT_GT((anim->start_time() - base::TimeTicks()).InSecondsF(), 0);
|
| +
|
| + EndTest();
|
| }
|
|
|
| void AfterTest() override {}
|
| @@ -1408,8 +1424,7 @@ class LayerTreeHostAnimationTestRemoveAnimation
|
| break;
|
| case 2:
|
| Animation* animation =
|
| - player_child_->element_animations()->GetAnimation(
|
| - TargetProperty::TRANSFORM);
|
| + player_child_->GetAnimation(TargetProperty::TRANSFORM);
|
| player_child_->RemoveAnimation(animation->id());
|
| gfx::Transform transform;
|
| transform.Translate(10.f, 10.f);
|
| @@ -1486,8 +1501,7 @@ class LayerTreeHostAnimationTestIsAnimating
|
| AddAnimatedTransformToPlayer(player_.get(), 1.0, 5, 5);
|
| break;
|
| case 2:
|
| - Animation* animation = player_->element_animations()->GetAnimation(
|
| - TargetProperty::TRANSFORM);
|
| + Animation* animation = player_->GetAnimation(TargetProperty::TRANSFORM);
|
| player_->RemoveAnimation(animation->id());
|
| break;
|
| }
|
| @@ -1719,8 +1733,8 @@ class LayerTreeHostAnimationTestChangeAnimationPlayer
|
| timeline_->AttachPlayer(player_child_.get());
|
| player_child_->AttachElement(layer_tree()->root_layer()->element_id());
|
| AddAnimatedTransformToPlayer(player_child_.get(), 1.0, 10, 10);
|
| - Animation* animation = player_child_->element_animations()->GetAnimation(
|
| - TargetProperty::TRANSFORM);
|
| + Animation* animation =
|
| + player_child_->GetAnimation(TargetProperty::TRANSFORM);
|
| animation->set_start_time(base::TimeTicks::Now() +
|
| base::TimeDelta::FromSecondsD(1000));
|
| animation->set_fill_mode(Animation::FillMode::NONE);
|
|
|