Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Side by Side Diff: cc/trees/layer_tree_host_unittest_animation.cc

Issue 653563003: cc: Plumb group id through animation creation and start/finish notifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/test/layer_tree_test.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "cc/animation/animation_curve.h" 7 #include "cc/animation/animation_curve.h"
8 #include "cc/animation/layer_animation_controller.h" 8 #include "cc/animation/layer_animation_controller.h"
9 #include "cc/animation/scroll_offset_animation_curve.h" 9 #include "cc/animation/scroll_offset_animation_curve.h"
10 #include "cc/animation/timing_function.h" 10 #include "cc/animation/timing_function.h"
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 host_impl->active_tree()->root_layer()->layer_animation_controller(); 139 host_impl->active_tree()->root_layer()->layer_animation_controller();
140 Animation* animation_impl = 140 Animation* animation_impl =
141 controller_impl->GetAnimation(Animation::Opacity); 141 controller_impl->GetAnimation(Animation::Opacity);
142 if (animation_impl) 142 if (animation_impl)
143 controller_impl->RemoveAnimation(animation_impl->id()); 143 controller_impl->RemoveAnimation(animation_impl->id());
144 144
145 EndTest(); 145 EndTest();
146 } 146 }
147 } 147 }
148 148
149 virtual void NotifyAnimationStarted( 149 virtual void NotifyAnimationStarted(base::TimeTicks monotonic_time,
150 base::TimeTicks monotonic_time, 150 Animation::TargetProperty target_property,
151 Animation::TargetProperty target_property) override { 151 int group) override {
152 received_animation_started_notification_ = true; 152 received_animation_started_notification_ = true;
153 start_time_ = monotonic_time; 153 start_time_ = monotonic_time;
154 if (num_begin_frames_) { 154 if (num_begin_frames_) {
155 EXPECT_LT(base::TimeTicks(), start_time_); 155 EXPECT_LT(base::TimeTicks(), start_time_);
156 156
157 LayerAnimationController* controller = 157 LayerAnimationController* controller =
158 layer_tree_host()->root_layer()->layer_animation_controller(); 158 layer_tree_host()->root_layer()->layer_animation_controller();
159 Animation* animation = 159 Animation* animation =
160 controller->GetAnimation(Animation::Opacity); 160 controller->GetAnimation(Animation::Opacity);
161 if (animation) 161 if (animation)
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 started_animating_ = true; 234 started_animating_ = true;
235 return; 235 return;
236 } 236 }
237 237
238 if (started_animating_ && !have_animations) 238 if (started_animating_ && !have_animations)
239 EndTest(); 239 EndTest();
240 } 240 }
241 241
242 virtual void NotifyAnimationFinished( 242 virtual void NotifyAnimationFinished(
243 base::TimeTicks monotonic_time, 243 base::TimeTicks monotonic_time,
244 Animation::TargetProperty target_property) override { 244 Animation::TargetProperty target_property,
245 int group) override {
245 // Animations on the impl-side controller only get deleted during a commit, 246 // Animations on the impl-side controller only get deleted during a commit,
246 // so we need to schedule a commit. 247 // so we need to schedule a commit.
247 layer_tree_host()->SetNeedsCommit(); 248 layer_tree_host()->SetNeedsCommit();
248 } 249 }
249 250
250 virtual void AfterTest() override {} 251 virtual void AfterTest() override {}
251 252
252 private: 253 private:
253 bool started_animating_; 254 bool started_animating_;
254 }; 255 };
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 virtual base::TimeDelta LowFrequencyAnimationInterval() const override { 362 virtual base::TimeDelta LowFrequencyAnimationInterval() const override {
362 return base::TimeDelta::FromMilliseconds(4); 363 return base::TimeDelta::FromMilliseconds(4);
363 } 364 }
364 365
365 virtual void BeginTest() override { 366 virtual void BeginTest() override {
366 PostAddAnimationToMainThread(layer_tree_host()->root_layer()); 367 PostAddAnimationToMainThread(layer_tree_host()->root_layer());
367 } 368 }
368 369
369 virtual void NotifyAnimationFinished( 370 virtual void NotifyAnimationFinished(
370 base::TimeTicks monotonic_time, 371 base::TimeTicks monotonic_time,
371 Animation::TargetProperty target_property) override { 372 Animation::TargetProperty target_property,
373 int group) override {
372 // Replace animated commits with an empty tree. 374 // Replace animated commits with an empty tree.
373 layer_tree_host()->SetRootLayer(make_scoped_refptr<Layer>(NULL)); 375 layer_tree_host()->SetRootLayer(make_scoped_refptr<Layer>(NULL));
374 } 376 }
375 377
376 virtual void DidCommit() override { 378 virtual void DidCommit() override {
377 // This alternates setting an empty tree and a non-empty tree with an 379 // This alternates setting an empty tree and a non-empty tree with an
378 // animation. 380 // animation.
379 switch (layer_tree_host()->source_frame_number()) { 381 switch (layer_tree_host()->source_frame_number()) {
380 case 1: 382 case 1:
381 // Wait for NotifyAnimationFinished to commit an empty tree. 383 // Wait for NotifyAnimationFinished to commit an empty tree.
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 content_ = FakeContentLayer::Create(&client_); 555 content_ = FakeContentLayer::Create(&client_);
554 content_->SetBounds(gfx::Size(4, 4)); 556 content_->SetBounds(gfx::Size(4, 4));
555 content_->set_layer_animation_delegate(this); 557 content_->set_layer_animation_delegate(this);
556 layer_tree_host()->root_layer()->AddChild(content_); 558 layer_tree_host()->root_layer()->AddChild(content_);
557 } 559 }
558 560
559 virtual void BeginTest() override { 561 virtual void BeginTest() override {
560 PostAddAnimationToMainThread(content_.get()); 562 PostAddAnimationToMainThread(content_.get());
561 } 563 }
562 564
563 virtual void NotifyAnimationStarted( 565 virtual void NotifyAnimationStarted(base::TimeTicks monotonic_time,
564 base::TimeTicks monotonic_time, 566 Animation::TargetProperty target_property,
565 Animation::TargetProperty target_property) override { 567 int group) override {
566 LayerAnimationController* controller = 568 LayerAnimationController* controller =
567 layer_tree_host()->root_layer()->children()[0]-> 569 layer_tree_host()->root_layer()->children()[0]->
568 layer_animation_controller(); 570 layer_animation_controller();
569 Animation* animation = 571 Animation* animation =
570 controller->GetAnimation(Animation::Opacity); 572 controller->GetAnimation(Animation::Opacity);
571 main_start_time_ = 573 main_start_time_ =
572 (animation->start_time() - base::TimeTicks()).InSecondsF(); 574 (animation->start_time() - base::TimeTicks()).InSecondsF();
573 controller->RemoveAnimation(animation->id()); 575 controller->RemoveAnimation(animation->id());
574 576
575 if (impl_start_time_ > 0.0) 577 if (impl_start_time_ > 0.0)
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 : public LayerTreeHostAnimationTest { 616 : public LayerTreeHostAnimationTest {
615 public: 617 public:
616 LayerTreeHostAnimationTestAnimationFinishedEvents() {} 618 LayerTreeHostAnimationTestAnimationFinishedEvents() {}
617 619
618 virtual void BeginTest() override { 620 virtual void BeginTest() override {
619 PostAddInstantAnimationToMainThread(layer_tree_host()->root_layer()); 621 PostAddInstantAnimationToMainThread(layer_tree_host()->root_layer());
620 } 622 }
621 623
622 virtual void NotifyAnimationFinished( 624 virtual void NotifyAnimationFinished(
623 base::TimeTicks monotonic_time, 625 base::TimeTicks monotonic_time,
624 Animation::TargetProperty target_property) override { 626 Animation::TargetProperty target_property,
627 int group) override {
625 LayerAnimationController* controller = 628 LayerAnimationController* controller =
626 layer_tree_host()->root_layer()->layer_animation_controller(); 629 layer_tree_host()->root_layer()->layer_animation_controller();
627 Animation* animation = 630 Animation* animation =
628 controller->GetAnimation(Animation::Opacity); 631 controller->GetAnimation(Animation::Opacity);
629 if (animation) 632 if (animation)
630 controller->RemoveAnimation(animation->id()); 633 controller->RemoveAnimation(animation->id());
631 EndTest(); 634 EndTest();
632 } 635 }
633 636
634 virtual void AfterTest() override {} 637 virtual void AfterTest() override {}
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 content_->SetBounds(gfx::Size(4, 4)); 854 content_->SetBounds(gfx::Size(4, 4));
852 content_->set_layer_animation_delegate(this); 855 content_->set_layer_animation_delegate(this);
853 layer_tree_host()->root_layer()->AddChild(content_); 856 layer_tree_host()->root_layer()->AddChild(content_);
854 } 857 }
855 858
856 virtual void BeginTest() override { 859 virtual void BeginTest() override {
857 layer_tree_host()->SetViewportSize(gfx::Size()); 860 layer_tree_host()->SetViewportSize(gfx::Size());
858 PostAddAnimationToMainThread(content_.get()); 861 PostAddAnimationToMainThread(content_.get());
859 } 862 }
860 863
861 virtual void NotifyAnimationStarted( 864 virtual void NotifyAnimationStarted(base::TimeTicks monotonic_time,
862 base::TimeTicks monotonic_time, 865 Animation::TargetProperty target_property,
863 Animation::TargetProperty target_property) override { 866 int group) override {
864 started_times_++; 867 started_times_++;
865 } 868 }
866 869
867 virtual void NotifyAnimationFinished( 870 virtual void NotifyAnimationFinished(
868 base::TimeTicks monotonic_time, 871 base::TimeTicks monotonic_time,
869 Animation::TargetProperty target_property) override { 872 Animation::TargetProperty target_property,
873 int group) override {
870 EndTest(); 874 EndTest();
871 } 875 }
872 876
873 virtual void AfterTest() override { 877 virtual void AfterTest() override {
874 EXPECT_EQ(1, started_times_); 878 EXPECT_EQ(1, started_times_);
875 } 879 }
876 880
877 private: 881 private:
878 int started_times_; 882 int started_times_;
879 FakeContentLayerClient client_; 883 FakeContentLayerClient client_;
(...skipping 21 matching lines...) Expand all
901 virtual void BeginTest() override { 905 virtual void BeginTest() override {
902 visible_ = true; 906 visible_ = true;
903 PostAddAnimationToMainThread(content_.get()); 907 PostAddAnimationToMainThread(content_.get());
904 } 908 }
905 909
906 virtual void DidCommit() override { 910 virtual void DidCommit() override {
907 visible_ = false; 911 visible_ = false;
908 layer_tree_host()->SetVisible(false); 912 layer_tree_host()->SetVisible(false);
909 } 913 }
910 914
911 virtual void NotifyAnimationStarted( 915 virtual void NotifyAnimationStarted(base::TimeTicks monotonic_time,
912 base::TimeTicks monotonic_time, 916 Animation::TargetProperty target_property,
913 Animation::TargetProperty target_property) override { 917 int group) override {
914 EXPECT_FALSE(visible_); 918 EXPECT_FALSE(visible_);
915 started_times_++; 919 started_times_++;
916 } 920 }
917 921
918 virtual void NotifyAnimationFinished( 922 virtual void NotifyAnimationFinished(
919 base::TimeTicks monotonic_time, 923 base::TimeTicks monotonic_time,
920 Animation::TargetProperty target_property) override { 924 Animation::TargetProperty target_property,
925 int group) override {
921 EXPECT_FALSE(visible_); 926 EXPECT_FALSE(visible_);
922 EXPECT_EQ(1, started_times_); 927 EXPECT_EQ(1, started_times_);
923 EndTest(); 928 EndTest();
924 } 929 }
925 930
926 virtual void AfterTest() override {} 931 virtual void AfterTest() override {}
927 932
928 private: 933 private:
929 bool visible_; 934 bool visible_;
930 int started_times_; 935 int started_times_;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 added_animations_++; 989 added_animations_++;
985 break; 990 break;
986 case 2: 991 case 2:
987 // This second animation will not be drawn so it should not start. 992 // This second animation will not be drawn so it should not start.
988 AddAnimatedTransformToLayer(content_.get(), 0.1, 5, 5); 993 AddAnimatedTransformToLayer(content_.get(), 0.1, 5, 5);
989 added_animations_++; 994 added_animations_++;
990 break; 995 break;
991 } 996 }
992 } 997 }
993 998
994 virtual void NotifyAnimationStarted( 999 virtual void NotifyAnimationStarted(base::TimeTicks monotonic_time,
995 base::TimeTicks monotonic_time, 1000 Animation::TargetProperty target_property,
996 Animation::TargetProperty target_property) override { 1001 int group) override {
997 if (TestEnded()) 1002 if (TestEnded())
998 return; 1003 return;
999 started_times_++; 1004 started_times_++;
1000 } 1005 }
1001 1006
1002 virtual void AfterTest() override { 1007 virtual void AfterTest() override {
1003 // Make sure we tried to draw the second animation but failed. 1008 // Make sure we tried to draw the second animation but failed.
1004 EXPECT_LT(0, prevented_draw_); 1009 EXPECT_LT(0, prevented_draw_);
1005 // The first animation should be started, but the second should not because 1010 // The first animation should be started, but the second should not because
1006 // of checkerboard. 1011 // of checkerboard.
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1290 private: 1295 private:
1291 scoped_refptr<Layer> content_; 1296 scoped_refptr<Layer> content_;
1292 int num_swap_buffers_; 1297 int num_swap_buffers_;
1293 }; 1298 };
1294 1299
1295 SINGLE_AND_MULTI_THREAD_TEST_F( 1300 SINGLE_AND_MULTI_THREAD_TEST_F(
1296 LayerTreeHostAnimationTestAddAnimationAfterAnimating); 1301 LayerTreeHostAnimationTestAddAnimationAfterAnimating);
1297 1302
1298 } // namespace 1303 } // namespace
1299 } // namespace cc 1304 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_test.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698