OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include "cc/animation/animation_curve.h" | 9 #include "cc/animation/animation_curve.h" |
10 #include "cc/animation/animation_host.h" | 10 #include "cc/animation/animation_host.h" |
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 LayerTreeHostAnimationTestDoNotSkipLayersWithAnimatedOpacity); | 465 LayerTreeHostAnimationTestDoNotSkipLayersWithAnimatedOpacity); |
466 | 466 |
467 // Layers added to tree with existing active animations should have the | 467 // Layers added to tree with existing active animations should have the |
468 // animation correctly recognized. | 468 // animation correctly recognized. |
469 class LayerTreeHostAnimationTestLayerAddedWithAnimation | 469 class LayerTreeHostAnimationTestLayerAddedWithAnimation |
470 : public LayerTreeHostAnimationTest { | 470 : public LayerTreeHostAnimationTest { |
471 public: | 471 public: |
472 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 472 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
473 | 473 |
474 void DidCommit() override { | 474 void DidCommit() override { |
475 if (layer_tree_host()->source_frame_number() == 1) { | 475 if (layer_tree_host()->SourceFrameNumber() == 1) { |
476 AttachPlayersToTimeline(); | 476 AttachPlayersToTimeline(); |
477 | 477 |
478 scoped_refptr<Layer> layer = Layer::Create(); | 478 scoped_refptr<Layer> layer = Layer::Create(); |
479 layer->SetElementId(ElementId(42, 0)); | 479 layer->SetElementId(ElementId(42, 0)); |
480 player_->AttachElement(layer->element_id()); | 480 player_->AttachElement(layer->element_id()); |
481 player_->set_animation_delegate(this); | 481 player_->set_animation_delegate(this); |
482 | 482 |
483 // Any valid AnimationCurve will do here. | 483 // Any valid AnimationCurve will do here. |
484 std::unique_ptr<AnimationCurve> curve(new FakeFloatAnimationCurve()); | 484 std::unique_ptr<AnimationCurve> curve(new FakeFloatAnimationCurve()); |
485 std::unique_ptr<Animation> animation( | 485 std::unique_ptr<Animation> animation( |
(...skipping 20 matching lines...) Expand all Loading... |
506 : public LayerTreeHostAnimationTest { | 506 : public LayerTreeHostAnimationTest { |
507 public: | 507 public: |
508 LayerTreeHostAnimationTestCancelAnimateCommit() | 508 LayerTreeHostAnimationTestCancelAnimateCommit() |
509 : num_begin_frames_(0), num_commit_calls_(0), num_draw_calls_(0) {} | 509 : num_begin_frames_(0), num_commit_calls_(0), num_draw_calls_(0) {} |
510 | 510 |
511 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 511 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
512 | 512 |
513 void BeginMainFrame(const BeginFrameArgs& args) override { | 513 void BeginMainFrame(const BeginFrameArgs& args) override { |
514 num_begin_frames_++; | 514 num_begin_frames_++; |
515 // No-op animate will cancel the commit. | 515 // No-op animate will cancel the commit. |
516 if (layer_tree_host()->source_frame_number() == 1) { | 516 if (layer_tree_host()->SourceFrameNumber() == 1) { |
517 EndTest(); | 517 EndTest(); |
518 return; | 518 return; |
519 } | 519 } |
520 layer_tree_host()->SetNeedsAnimate(); | 520 layer_tree_host()->SetNeedsAnimate(); |
521 } | 521 } |
522 | 522 |
523 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { | 523 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { |
524 num_commit_calls_++; | 524 num_commit_calls_++; |
525 if (impl->active_tree()->source_frame_number() > 1) | 525 if (impl->active_tree()->source_frame_number() > 1) |
526 FAIL() << "Commit should have been canceled."; | 526 FAIL() << "Commit should have been canceled."; |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
655 if (TestEnded()) | 655 if (TestEnded()) |
656 return draw_result; | 656 return draw_result; |
657 // Act like there is checkerboard when the second animation wants to draw. | 657 // Act like there is checkerboard when the second animation wants to draw. |
658 ++prevented_draw_; | 658 ++prevented_draw_; |
659 if (prevented_draw_ > 2) | 659 if (prevented_draw_ > 2) |
660 EndTest(); | 660 EndTest(); |
661 return DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; | 661 return DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; |
662 } | 662 } |
663 | 663 |
664 void DidCommitAndDrawFrame() override { | 664 void DidCommitAndDrawFrame() override { |
665 switch (layer_tree_host()->source_frame_number()) { | 665 switch (layer_tree_host()->SourceFrameNumber()) { |
666 case 1: | 666 case 1: |
667 // The animation is longer than 1 BeginFrame interval. | 667 // The animation is longer than 1 BeginFrame interval. |
668 AddOpacityTransitionToPlayer(player_child_.get(), 0.1, 0.2f, 0.8f, | 668 AddOpacityTransitionToPlayer(player_child_.get(), 0.1, 0.2f, 0.8f, |
669 false); | 669 false); |
670 break; | 670 break; |
671 case 2: | 671 case 2: |
672 // This second animation will not be drawn so it should not start. | 672 // This second animation will not be drawn so it should not start. |
673 AddAnimatedTransformToPlayer(player_child_.get(), 0.1, 5, 5); | 673 AddAnimatedTransformToPlayer(player_child_.get(), 0.1, 5, 5); |
674 break; | 674 break; |
675 } | 675 } |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
716 scroll_layer_->SetScrollOffset(gfx::ScrollOffset(10, 20)); | 716 scroll_layer_->SetScrollOffset(gfx::ScrollOffset(10, 20)); |
717 layer_tree()->root_layer()->AddChild(scroll_layer_); | 717 layer_tree()->root_layer()->AddChild(scroll_layer_); |
718 | 718 |
719 AttachPlayersToTimeline(); | 719 AttachPlayersToTimeline(); |
720 player_child_->AttachElement(scroll_layer_->element_id()); | 720 player_child_->AttachElement(scroll_layer_->element_id()); |
721 } | 721 } |
722 | 722 |
723 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 723 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
724 | 724 |
725 void DidCommit() override { | 725 void DidCommit() override { |
726 switch (layer_tree_host()->source_frame_number()) { | 726 switch (layer_tree_host()->SourceFrameNumber()) { |
727 case 1: { | 727 case 1: { |
728 std::unique_ptr<ScrollOffsetAnimationCurve> curve( | 728 std::unique_ptr<ScrollOffsetAnimationCurve> curve( |
729 ScrollOffsetAnimationCurve::Create( | 729 ScrollOffsetAnimationCurve::Create( |
730 gfx::ScrollOffset(500.f, 550.f), | 730 gfx::ScrollOffset(500.f, 550.f), |
731 CubicBezierTimingFunction::CreatePreset( | 731 CubicBezierTimingFunction::CreatePreset( |
732 CubicBezierTimingFunction::EaseType::EASE_IN_OUT))); | 732 CubicBezierTimingFunction::EaseType::EASE_IN_OUT))); |
733 std::unique_ptr<Animation> animation(Animation::Create( | 733 std::unique_ptr<Animation> animation(Animation::Create( |
734 std::move(curve), 1, 0, TargetProperty::SCROLL_OFFSET)); | 734 std::move(curve), 1, 0, TargetProperty::SCROLL_OFFSET)); |
735 animation->set_needs_synchronized_start_time(true); | 735 animation->set_needs_synchronized_start_time(true); |
736 bool impl_scrolling_supported = | 736 bool impl_scrolling_supported = |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
776 | 776 |
777 AttachPlayersToTimeline(); | 777 AttachPlayersToTimeline(); |
778 player_child_->AttachElement(scroll_layer_->element_id()); | 778 player_child_->AttachElement(scroll_layer_->element_id()); |
779 // Allows NotifyAnimationTakeover to get called. | 779 // Allows NotifyAnimationTakeover to get called. |
780 player_child_->set_animation_delegate(this); | 780 player_child_->set_animation_delegate(this); |
781 } | 781 } |
782 | 782 |
783 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 783 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
784 | 784 |
785 void DidCommit() override { | 785 void DidCommit() override { |
786 if (layer_tree_host()->source_frame_number() == 1) { | 786 if (layer_tree_host()->SourceFrameNumber() == 1) { |
787 // Add an update after the first commit to trigger the animation takeover | 787 // Add an update after the first commit to trigger the animation takeover |
788 // path. | 788 // path. |
789 layer_tree() | 789 layer_tree() |
790 ->animation_host() | 790 ->animation_host() |
791 ->scroll_offset_animations() | 791 ->scroll_offset_animations() |
792 .AddTakeoverUpdate(scroll_layer_->element_id()); | 792 .AddTakeoverUpdate(scroll_layer_->element_id()); |
793 EXPECT_TRUE(layer_tree() | 793 EXPECT_TRUE(layer_tree() |
794 ->animation_host() | 794 ->animation_host() |
795 ->scroll_offset_animations() | 795 ->scroll_offset_animations() |
796 .HasUpdatesForTesting()); | 796 .HasUpdatesForTesting()); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 scroll_layer_->SetScrollOffset(gfx::ScrollOffset(10, 20)); | 837 scroll_layer_->SetScrollOffset(gfx::ScrollOffset(10, 20)); |
838 layer_tree()->root_layer()->AddChild(scroll_layer_); | 838 layer_tree()->root_layer()->AddChild(scroll_layer_); |
839 | 839 |
840 AttachPlayersToTimeline(); | 840 AttachPlayersToTimeline(); |
841 player_child_->AttachElement(scroll_layer_->element_id()); | 841 player_child_->AttachElement(scroll_layer_->element_id()); |
842 } | 842 } |
843 | 843 |
844 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 844 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
845 | 845 |
846 void DidCommit() override { | 846 void DidCommit() override { |
847 if (layer_tree_host()->source_frame_number() == 1) { | 847 if (layer_tree_host()->SourceFrameNumber() == 1) { |
848 // Add an update after the first commit to trigger the animation update | 848 // Add an update after the first commit to trigger the animation update |
849 // path. | 849 // path. |
850 layer_tree() | 850 layer_tree() |
851 ->animation_host() | 851 ->animation_host() |
852 ->scroll_offset_animations() | 852 ->scroll_offset_animations() |
853 .AddAdjustmentUpdate(scroll_layer_->element_id(), | 853 .AddAdjustmentUpdate(scroll_layer_->element_id(), |
854 gfx::Vector2dF(100.f, 100.f)); | 854 gfx::Vector2dF(100.f, 100.f)); |
855 EXPECT_TRUE(layer_tree() | 855 EXPECT_TRUE(layer_tree() |
856 ->animation_host() | 856 ->animation_host() |
857 ->scroll_offset_animations() | 857 ->scroll_offset_animations() |
858 .HasUpdatesForTesting()); | 858 .HasUpdatesForTesting()); |
859 } else if (layer_tree_host()->source_frame_number() == 2) { | 859 } else if (layer_tree_host()->SourceFrameNumber() == 2) { |
860 // Verify that the update queue is cleared after the update is applied. | 860 // Verify that the update queue is cleared after the update is applied. |
861 EXPECT_FALSE(layer_tree() | 861 EXPECT_FALSE(layer_tree() |
862 ->animation_host() | 862 ->animation_host() |
863 ->scroll_offset_animations() | 863 ->scroll_offset_animations() |
864 .HasUpdatesForTesting()); | 864 .HasUpdatesForTesting()); |
865 } | 865 } |
866 } | 866 } |
867 | 867 |
868 void BeginCommitOnThread(LayerTreeHostImpl* host_impl) override { | 868 void BeginCommitOnThread(LayerTreeHostImpl* host_impl) override { |
869 // Note that the frame number gets incremented after BeginCommitOnThread but | 869 // Note that the frame number gets incremented after BeginCommitOnThread but |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 animation->set_needs_synchronized_start_time(true); | 953 animation->set_needs_synchronized_start_time(true); |
954 | 954 |
955 AttachPlayersToTimeline(); | 955 AttachPlayersToTimeline(); |
956 player_child_->AttachElement(scroll_layer_->element_id()); | 956 player_child_->AttachElement(scroll_layer_->element_id()); |
957 player_child_->AddAnimation(std::move(animation)); | 957 player_child_->AddAnimation(std::move(animation)); |
958 } | 958 } |
959 | 959 |
960 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 960 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
961 | 961 |
962 void BeginMainFrame(const BeginFrameArgs& args) override { | 962 void BeginMainFrame(const BeginFrameArgs& args) override { |
963 switch (layer_tree_host()->source_frame_number()) { | 963 switch (layer_tree_host()->SourceFrameNumber()) { |
964 case 0: | 964 case 0: |
965 break; | 965 break; |
966 case 1: { | 966 case 1: { |
967 Animation* animation = | 967 Animation* animation = |
968 player_child_->element_animations() | 968 player_child_->element_animations() |
969 ->GetAnimation(TargetProperty::SCROLL_OFFSET); | 969 ->GetAnimation(TargetProperty::SCROLL_OFFSET); |
970 player_child_->RemoveAnimation(animation->id()); | 970 player_child_->RemoveAnimation(animation->id()); |
971 scroll_layer_->SetScrollOffset(final_postion_); | 971 scroll_layer_->SetScrollOffset(final_postion_); |
972 break; | 972 break; |
973 } | 973 } |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1053 public: | 1053 public: |
1054 LayerTreeHostAnimationTestAnimationsAddedToNewAndExistingLayers() | 1054 LayerTreeHostAnimationTestAnimationsAddedToNewAndExistingLayers() |
1055 : frame_count_with_pending_tree_(0) {} | 1055 : frame_count_with_pending_tree_(0) {} |
1056 | 1056 |
1057 void BeginTest() override { | 1057 void BeginTest() override { |
1058 AttachPlayersToTimeline(); | 1058 AttachPlayersToTimeline(); |
1059 PostSetNeedsCommitToMainThread(); | 1059 PostSetNeedsCommitToMainThread(); |
1060 } | 1060 } |
1061 | 1061 |
1062 void DidCommit() override { | 1062 void DidCommit() override { |
1063 if (layer_tree_host()->source_frame_number() == 1) { | 1063 if (layer_tree_host()->SourceFrameNumber() == 1) { |
1064 player_->AttachElement(layer_tree()->root_layer()->element_id()); | 1064 player_->AttachElement(layer_tree()->root_layer()->element_id()); |
1065 AddAnimatedTransformToPlayer(player_.get(), 4, 1, 1); | 1065 AddAnimatedTransformToPlayer(player_.get(), 4, 1, 1); |
1066 } else if (layer_tree_host()->source_frame_number() == 2) { | 1066 } else if (layer_tree_host()->SourceFrameNumber() == 2) { |
1067 AddOpacityTransitionToPlayer(player_.get(), 1, 0.f, 0.5f, true); | 1067 AddOpacityTransitionToPlayer(player_.get(), 1, 0.f, 0.5f, true); |
1068 | 1068 |
1069 scoped_refptr<Layer> layer = Layer::Create(); | 1069 scoped_refptr<Layer> layer = Layer::Create(); |
1070 layer_tree()->root_layer()->AddChild(layer); | 1070 layer_tree()->root_layer()->AddChild(layer); |
1071 | 1071 |
1072 layer_tree()->SetElementIdsForTesting(); | 1072 layer_tree()->SetElementIdsForTesting(); |
1073 layer->SetBounds(gfx::Size(4, 4)); | 1073 layer->SetBounds(gfx::Size(4, 4)); |
1074 | 1074 |
1075 player_child_->AttachElement(layer->element_id()); | 1075 player_child_->AttachElement(layer->element_id()); |
1076 player_child_->set_animation_delegate(this); | 1076 player_child_->set_animation_delegate(this); |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1238 timeline_->AttachPlayer(player_.get()); | 1238 timeline_->AttachPlayer(player_.get()); |
1239 player_->AttachElement(layer_->element_id()); | 1239 player_->AttachElement(layer_->element_id()); |
1240 DCHECK(player_->element_animations()); | 1240 DCHECK(player_->element_animations()); |
1241 | 1241 |
1242 AddOpacityTransitionToPlayer(player_.get(), 10000.0, 0.1f, 0.9f, true); | 1242 AddOpacityTransitionToPlayer(player_.get(), 10000.0, 0.1f, 0.9f, true); |
1243 } | 1243 } |
1244 | 1244 |
1245 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1245 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
1246 | 1246 |
1247 void DidCommit() override { | 1247 void DidCommit() override { |
1248 switch (layer_tree_host()->source_frame_number()) { | 1248 switch (layer_tree_host()->SourceFrameNumber()) { |
1249 case 0: | 1249 case 0: |
1250 EXPECT_TRUE( | 1250 EXPECT_TRUE( |
1251 player_->element_animations()->has_element_in_active_list()); | 1251 player_->element_animations()->has_element_in_active_list()); |
1252 EXPECT_FALSE( | 1252 EXPECT_FALSE( |
1253 player_->element_animations()->has_element_in_pending_list()); | 1253 player_->element_animations()->has_element_in_pending_list()); |
1254 EXPECT_TRUE(layer_tree()->animation_host()->NeedsAnimateLayers()); | 1254 EXPECT_TRUE(layer_tree()->animation_host()->NeedsAnimateLayers()); |
1255 break; | 1255 break; |
1256 case 1: | 1256 case 1: |
1257 layer_->RemoveFromParent(); | 1257 layer_->RemoveFromParent(); |
1258 EXPECT_FALSE( | 1258 EXPECT_FALSE( |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1318 | 1318 |
1319 AttachPlayersToTimeline(); | 1319 AttachPlayersToTimeline(); |
1320 | 1320 |
1321 player_->AttachElement(layer_tree()->root_layer()->element_id()); | 1321 player_->AttachElement(layer_tree()->root_layer()->element_id()); |
1322 player_child_->AttachElement(layer_->element_id()); | 1322 player_child_->AttachElement(layer_->element_id()); |
1323 } | 1323 } |
1324 | 1324 |
1325 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1325 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
1326 | 1326 |
1327 void DidCommit() override { | 1327 void DidCommit() override { |
1328 switch (layer_tree_host()->source_frame_number()) { | 1328 switch (layer_tree_host()->SourceFrameNumber()) { |
1329 case 1: | 1329 case 1: |
1330 // First frame: add an animation to the root layer. | 1330 // First frame: add an animation to the root layer. |
1331 AddAnimatedTransformToPlayer(player_.get(), 0.1, 5, 5); | 1331 AddAnimatedTransformToPlayer(player_.get(), 0.1, 5, 5); |
1332 break; | 1332 break; |
1333 case 2: | 1333 case 2: |
1334 // Second frame: add an animation to the content layer. The root layer | 1334 // Second frame: add an animation to the content layer. The root layer |
1335 // animation has caused us to animate already during this frame. | 1335 // animation has caused us to animate already during this frame. |
1336 AddOpacityTransitionToPlayer(player_child_.get(), 0.1, 5, 5, false); | 1336 AddOpacityTransitionToPlayer(player_child_.get(), 0.1, 5, 5, false); |
1337 break; | 1337 break; |
1338 } | 1338 } |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1393 | 1393 |
1394 AttachPlayersToTimeline(); | 1394 AttachPlayersToTimeline(); |
1395 | 1395 |
1396 player_->AttachElement(layer_tree()->root_layer()->element_id()); | 1396 player_->AttachElement(layer_tree()->root_layer()->element_id()); |
1397 player_child_->AttachElement(layer_->element_id()); | 1397 player_child_->AttachElement(layer_->element_id()); |
1398 } | 1398 } |
1399 | 1399 |
1400 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1400 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
1401 | 1401 |
1402 void DidCommit() override { | 1402 void DidCommit() override { |
1403 switch (layer_tree_host()->source_frame_number()) { | 1403 switch (layer_tree_host()->SourceFrameNumber()) { |
1404 case 1: | 1404 case 1: |
1405 AddAnimatedTransformToPlayer(player_child_.get(), 1.0, 5, 5); | 1405 AddAnimatedTransformToPlayer(player_child_.get(), 1.0, 5, 5); |
1406 break; | 1406 break; |
1407 case 2: | 1407 case 2: |
1408 Animation* animation = | 1408 Animation* animation = |
1409 player_child_->element_animations()->GetAnimation( | 1409 player_child_->element_animations()->GetAnimation( |
1410 TargetProperty::TRANSFORM); | 1410 TargetProperty::TRANSFORM); |
1411 player_child_->RemoveAnimation(animation->id()); | 1411 player_child_->RemoveAnimation(animation->id()); |
1412 gfx::Transform transform; | 1412 gfx::Transform transform; |
1413 transform.Translate(10.f, 10.f); | 1413 transform.Translate(10.f, 10.f); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1472 client_.set_bounds(layer_->bounds()); | 1472 client_.set_bounds(layer_->bounds()); |
1473 layer_tree()->root_layer()->AddChild(layer_); | 1473 layer_tree()->root_layer()->AddChild(layer_); |
1474 | 1474 |
1475 AttachPlayersToTimeline(); | 1475 AttachPlayersToTimeline(); |
1476 player_->AttachElement(layer_->element_id()); | 1476 player_->AttachElement(layer_->element_id()); |
1477 } | 1477 } |
1478 | 1478 |
1479 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1479 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
1480 | 1480 |
1481 void DidCommit() override { | 1481 void DidCommit() override { |
1482 switch (layer_tree_host()->source_frame_number()) { | 1482 switch (layer_tree_host()->SourceFrameNumber()) { |
1483 case 1: | 1483 case 1: |
1484 AddAnimatedTransformToPlayer(player_.get(), 1.0, 5, 5); | 1484 AddAnimatedTransformToPlayer(player_.get(), 1.0, 5, 5); |
1485 break; | 1485 break; |
1486 case 2: | 1486 case 2: |
1487 Animation* animation = player_->element_animations()->GetAnimation( | 1487 Animation* animation = player_->element_animations()->GetAnimation( |
1488 TargetProperty::TRANSFORM); | 1488 TargetProperty::TRANSFORM); |
1489 player_->RemoveAnimation(animation->id()); | 1489 player_->RemoveAnimation(animation->id()); |
1490 break; | 1490 break; |
1491 } | 1491 } |
1492 } | 1492 } |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1555 | 1555 |
1556 AttachPlayersToTimeline(); | 1556 AttachPlayersToTimeline(); |
1557 | 1557 |
1558 player_->AttachElement(layer_tree()->root_layer()->element_id()); | 1558 player_->AttachElement(layer_tree()->root_layer()->element_id()); |
1559 player_child_->AttachElement(layer_->element_id()); | 1559 player_child_->AttachElement(layer_->element_id()); |
1560 } | 1560 } |
1561 | 1561 |
1562 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1562 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
1563 | 1563 |
1564 void DidCommit() override { | 1564 void DidCommit() override { |
1565 if (layer_tree_host()->source_frame_number() == 1) | 1565 if (layer_tree_host()->SourceFrameNumber() == 1) |
1566 AddAnimatedTransformToPlayer(player_child_.get(), 0.04, 5, 5); | 1566 AddAnimatedTransformToPlayer(player_child_.get(), 0.04, 5, 5); |
1567 } | 1567 } |
1568 | 1568 |
1569 void WillCommit() override { | 1569 void WillCommit() override { |
1570 if (layer_tree_host()->source_frame_number() == 2) { | 1570 if (layer_tree_host()->SourceFrameNumber() == 2) { |
1571 // Block until the animation finishes on the compositor thread. Since | 1571 // Block until the animation finishes on the compositor thread. Since |
1572 // animations have already been ticked on the main thread, when the commit | 1572 // animations have already been ticked on the main thread, when the commit |
1573 // happens the state on the main thread will be consistent with having a | 1573 // happens the state on the main thread will be consistent with having a |
1574 // running animation but the state on the compositor thread will be | 1574 // running animation but the state on the compositor thread will be |
1575 // consistent with having only a finished animation. | 1575 // consistent with having only a finished animation. |
1576 completion_.Wait(); | 1576 completion_.Wait(); |
1577 } | 1577 } |
1578 } | 1578 } |
1579 | 1579 |
1580 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { | 1580 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1703 EndTest(); | 1703 EndTest(); |
1704 break; | 1704 break; |
1705 default: | 1705 default: |
1706 break; | 1706 break; |
1707 } | 1707 } |
1708 } | 1708 } |
1709 | 1709 |
1710 void DidCommit() override { PostSetNeedsCommitToMainThread(); } | 1710 void DidCommit() override { PostSetNeedsCommitToMainThread(); } |
1711 | 1711 |
1712 void WillBeginMainFrame() override { | 1712 void WillBeginMainFrame() override { |
1713 if (layer_tree_host()->source_frame_number() == 2) { | 1713 if (layer_tree_host()->SourceFrameNumber() == 2) { |
1714 // Destroy player. | 1714 // Destroy player. |
1715 timeline_->DetachPlayer(player_.get()); | 1715 timeline_->DetachPlayer(player_.get()); |
1716 player_ = nullptr; | 1716 player_ = nullptr; |
1717 timeline_->AttachPlayer(player_child_.get()); | 1717 timeline_->AttachPlayer(player_child_.get()); |
1718 player_child_->AttachElement(layer_tree()->root_layer()->element_id()); | 1718 player_child_->AttachElement(layer_tree()->root_layer()->element_id()); |
1719 AddAnimatedTransformToPlayer(player_child_.get(), 1.0, 10, 10); | 1719 AddAnimatedTransformToPlayer(player_child_.get(), 1.0, 10, 10); |
1720 Animation* animation = player_child_->element_animations()->GetAnimation( | 1720 Animation* animation = player_child_->element_animations()->GetAnimation( |
1721 TargetProperty::TRANSFORM); | 1721 TargetProperty::TRANSFORM); |
1722 animation->set_start_time(base::TimeTicks::Now() + | 1722 animation->set_start_time(base::TimeTicks::Now() + |
1723 base::TimeDelta::FromSecondsD(1000)); | 1723 base::TimeDelta::FromSecondsD(1000)); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1755 } else { | 1755 } else { |
1756 EXPECT_FALSE(host_impl->pending_tree() | 1756 EXPECT_FALSE(host_impl->pending_tree() |
1757 ->root_layer_for_testing() | 1757 ->root_layer_for_testing() |
1758 ->screen_space_transform_is_animating()); | 1758 ->screen_space_transform_is_animating()); |
1759 } | 1759 } |
1760 } | 1760 } |
1761 | 1761 |
1762 void DidCommit() override { PostSetNeedsCommitToMainThread(); } | 1762 void DidCommit() override { PostSetNeedsCommitToMainThread(); } |
1763 | 1763 |
1764 void UpdateLayerTreeHost() override { | 1764 void UpdateLayerTreeHost() override { |
1765 if (layer_tree_host()->source_frame_number() == 2) { | 1765 if (layer_tree_host()->SourceFrameNumber() == 2) { |
1766 // Destroy player. | 1766 // Destroy player. |
1767 timeline_->DetachPlayer(player_.get()); | 1767 timeline_->DetachPlayer(player_.get()); |
1768 player_ = nullptr; | 1768 player_ = nullptr; |
1769 } | 1769 } |
1770 } | 1770 } |
1771 | 1771 |
1772 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, | 1772 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, |
1773 LayerTreeHostImpl::FrameData* frame_data, | 1773 LayerTreeHostImpl::FrameData* frame_data, |
1774 DrawResult draw_result) override { | 1774 DrawResult draw_result) override { |
1775 const bool screen_space_transform_is_animating = | 1775 const bool screen_space_transform_is_animating = |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1825 | 1825 |
1826 AttachPlayersToTimeline(); | 1826 AttachPlayersToTimeline(); |
1827 | 1827 |
1828 player_->AttachElement(layer_tree()->root_layer()->element_id()); | 1828 player_->AttachElement(layer_tree()->root_layer()->element_id()); |
1829 player_child_->AttachElement(layer_->element_id()); | 1829 player_child_->AttachElement(layer_->element_id()); |
1830 } | 1830 } |
1831 | 1831 |
1832 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 1832 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
1833 | 1833 |
1834 void DidCommit() override { | 1834 void DidCommit() override { |
1835 if (layer_tree_host()->source_frame_number() == 1 || | 1835 if (layer_tree_host()->SourceFrameNumber() == 1 || |
1836 layer_tree_host()->source_frame_number() == 2) | 1836 layer_tree_host()->SourceFrameNumber() == 2) |
1837 PostSetNeedsCommitToMainThread(); | 1837 PostSetNeedsCommitToMainThread(); |
1838 } | 1838 } |
1839 | 1839 |
1840 void UpdateLayerTreeHost() override { | 1840 void UpdateLayerTreeHost() override { |
1841 if (layer_tree_host()->source_frame_number() == 1) { | 1841 if (layer_tree_host()->SourceFrameNumber() == 1) { |
1842 EXPECT_FALSE(layer_tree()->property_trees()->needs_rebuild); | 1842 EXPECT_FALSE(layer_tree()->property_trees()->needs_rebuild); |
1843 AddAnimatedTransformToPlayer(player_child_.get(), 1.0, 5, 5); | 1843 AddAnimatedTransformToPlayer(player_child_.get(), 1.0, 5, 5); |
1844 } | 1844 } |
1845 | 1845 |
1846 EXPECT_TRUE(layer_tree()->property_trees()->needs_rebuild); | 1846 EXPECT_TRUE(layer_tree()->property_trees()->needs_rebuild); |
1847 } | 1847 } |
1848 | 1848 |
1849 void DrawLayersOnThread(LayerTreeHostImpl* host_impl) override { | 1849 void DrawLayersOnThread(LayerTreeHostImpl* host_impl) override { |
1850 if (host_impl->active_tree()->source_frame_number() >= 2) | 1850 if (host_impl->active_tree()->source_frame_number() >= 2) |
1851 EndTest(); | 1851 EndTest(); |
1852 } | 1852 } |
1853 | 1853 |
1854 void AfterTest() override {} | 1854 void AfterTest() override {} |
1855 | 1855 |
1856 private: | 1856 private: |
1857 scoped_refptr<Layer> layer_; | 1857 scoped_refptr<Layer> layer_; |
1858 FakeContentLayerClient client_; | 1858 FakeContentLayerClient client_; |
1859 }; | 1859 }; |
1860 | 1860 |
1861 MULTI_THREAD_TEST_F( | 1861 MULTI_THREAD_TEST_F( |
1862 LayerTreeHostAnimationTestRebuildPropertyTreesOnAnimationSetNeedsCommit); | 1862 LayerTreeHostAnimationTestRebuildPropertyTreesOnAnimationSetNeedsCommit); |
1863 | 1863 |
1864 } // namespace | 1864 } // namespace |
1865 } // namespace cc | 1865 } // namespace cc |
OLD | NEW |