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

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

Issue 550073002: Revert of cc: Single-threaded impl-side painting for unit tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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/trees/layer_tree_host_unittest.cc ('k') | cc/trees/single_thread_proxy.h » ('j') | 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 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 break; 390 break;
391 case 4: 391 case 4:
392 EndTest(); 392 EndTest();
393 break; 393 break;
394 } 394 }
395 } 395 }
396 396
397 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 397 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
398 // At the start of every commit, block activations and make sure 398 // At the start of every commit, block activations and make sure
399 // we are backgrounded. 399 // we are backgrounded.
400 if (host_impl->settings().impl_side_painting) 400 host_impl->BlockNotifyReadyToActivateForTesting(true);
401 host_impl->BlockNotifyReadyToActivateForTesting(true);
402 PostSetVisibleToMainThread(false); 401 PostSetVisibleToMainThread(false);
403 } 402 }
404 403
405 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 404 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
406 if (!host_impl->settings().impl_side_painting) { 405 if (!host_impl->settings().impl_side_painting) {
407 // There are no activations to block if we're not impl-side-painting, 406 // There are no activations to block if we're not impl-side-painting,
408 // so just advance the test immediately. 407 // so just advance the test immediately.
409 if (host_impl->active_tree()->source_frame_number() < 3) 408 if (host_impl->active_tree()->source_frame_number() < 3)
410 UnblockActivations(host_impl); 409 UnblockActivations(host_impl);
411 return; 410 return;
412 } 411 }
413 412
414 // We block activation for several ticks to make sure that, even though 413 // We block activation for several ticks to make sure that, even though
415 // there is a pending tree with animations, we still do not background 414 // there is a pending tree with animations, we still do not background
416 // tick if the active tree is empty. 415 // tick if the active tree is empty.
417 if (host_impl->pending_tree()->source_frame_number() < 3) { 416 if (host_impl->pending_tree()->source_frame_number() < 3) {
418 base::MessageLoopProxy::current()->PostDelayedTask( 417 base::MessageLoopProxy::current()->PostDelayedTask(
419 FROM_HERE, 418 FROM_HERE,
420 base::Bind( 419 base::Bind(
421 &LayerTreeHostAnimationTestNoBackgroundTickingWithoutActiveTree:: 420 &LayerTreeHostAnimationTestNoBackgroundTickingWithoutActiveTree::
422 UnblockActivations, 421 UnblockActivations,
423 base::Unretained(this), 422 base::Unretained(this),
424 host_impl), 423 host_impl),
425 4 * LowFrequencyAnimationInterval()); 424 4 * LowFrequencyAnimationInterval());
426 } 425 }
427 } 426 }
428 427
429 virtual void UnblockActivations(LayerTreeHostImpl* host_impl) { 428 virtual void UnblockActivations(LayerTreeHostImpl* host_impl) {
430 if (host_impl->settings().impl_side_painting) 429 host_impl->BlockNotifyReadyToActivateForTesting(false);
431 host_impl->BlockNotifyReadyToActivateForTesting(false);
432 } 430 }
433 431
434 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 432 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
435 active_tree_was_animated_ = false; 433 active_tree_was_animated_ = false;
436 434
437 // Verify that commits are actually alternating with empty / non-empty 435 // Verify that commits are actually alternating with empty / non-empty
438 // trees. 436 // trees.
439 int frame_number = host_impl->active_tree()->source_frame_number(); 437 int frame_number = host_impl->active_tree()->source_frame_number();
440 switch (frame_number) { 438 switch (frame_number) {
441 case 0: 439 case 0:
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 475
478 // The next commit is blocked until we become visible again. 476 // The next commit is blocked until we become visible again.
479 PostSetVisibleToMainThread(true); 477 PostSetVisibleToMainThread(true);
480 } 478 }
481 479
482 virtual void AfterTest() OVERRIDE {} 480 virtual void AfterTest() OVERRIDE {}
483 481
484 bool active_tree_was_animated_; 482 bool active_tree_was_animated_;
485 }; 483 };
486 484
487 SINGLE_AND_MULTI_THREAD_BLOCKNOTIFY_TEST_F( 485 SINGLE_AND_MULTI_THREAD_TEST_F(
488 LayerTreeHostAnimationTestNoBackgroundTickingWithoutActiveTree); 486 LayerTreeHostAnimationTestNoBackgroundTickingWithoutActiveTree);
489 487
490 // Ensure that an animation's timing function is respected. 488 // Ensure that an animation's timing function is respected.
491 class LayerTreeHostAnimationTestAddAnimationWithTimingFunction 489 class LayerTreeHostAnimationTestAddAnimationWithTimingFunction
492 : public LayerTreeHostAnimationTest { 490 : public LayerTreeHostAnimationTest {
493 public: 491 public:
494 LayerTreeHostAnimationTestAddAnimationWithTimingFunction() {} 492 LayerTreeHostAnimationTestAddAnimationWithTimingFunction() {}
495 493
496 virtual void SetupTree() OVERRIDE { 494 virtual void SetupTree() OVERRIDE {
497 LayerTreeHostAnimationTest::SetupTree(); 495 LayerTreeHostAnimationTest::SetupTree();
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
1164 1162
1165 scoped_refptr<Layer> layer = Layer::Create(); 1163 scoped_refptr<Layer> layer = Layer::Create();
1166 layer_tree_host()->root_layer()->AddChild(layer); 1164 layer_tree_host()->root_layer()->AddChild(layer);
1167 layer->set_layer_animation_delegate(this); 1165 layer->set_layer_animation_delegate(this);
1168 layer->SetBounds(gfx::Size(4, 4)); 1166 layer->SetBounds(gfx::Size(4, 4));
1169 AddOpacityTransitionToLayer(layer.get(), 1, 0.f, 0.5f, true); 1167 AddOpacityTransitionToLayer(layer.get(), 1, 0.f, 0.5f, true);
1170 } 1168 }
1171 } 1169 }
1172 1170
1173 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 1171 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
1174 if (host_impl->settings().impl_side_painting) 1172 host_impl->BlockNotifyReadyToActivateForTesting(true);
1175 host_impl->BlockNotifyReadyToActivateForTesting(true);
1176 } 1173 }
1177 1174
1178 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 1175 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
1179 // For the commit that added animations to new and existing layers, keep 1176 // For the commit that added animations to new and existing layers, keep
1180 // blocking activation. We want to verify that even with activation blocked, 1177 // blocking activation. We want to verify that even with activation blocked,
1181 // the animation on the layer that's already in the active tree won't get a 1178 // the animation on the layer that's already in the active tree won't get a
1182 // head start. 1179 // head start.
1183 if (host_impl->settings().impl_side_painting && 1180 if (!host_impl->settings().impl_side_painting ||
1184 host_impl->pending_tree()->source_frame_number() != 2) { 1181 host_impl->pending_tree()->source_frame_number() != 2)
1185 host_impl->BlockNotifyReadyToActivateForTesting(false); 1182 host_impl->BlockNotifyReadyToActivateForTesting(false);
1186 }
1187 } 1183 }
1188 1184
1189 virtual void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl, 1185 virtual void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl,
1190 const BeginFrameArgs& args) OVERRIDE { 1186 const BeginFrameArgs& args) OVERRIDE {
1191 if (!host_impl->pending_tree() || 1187 if (!host_impl->pending_tree() ||
1192 host_impl->pending_tree()->source_frame_number() != 2) 1188 host_impl->pending_tree()->source_frame_number() != 2)
1193 return; 1189 return;
1194 1190
1195 frame_count_with_pending_tree_++; 1191 frame_count_with_pending_tree_++;
1196 if (frame_count_with_pending_tree_ == 2 && 1192 if (frame_count_with_pending_tree_ == 2)
1197 host_impl->settings().impl_side_painting) {
1198 host_impl->BlockNotifyReadyToActivateForTesting(false); 1193 host_impl->BlockNotifyReadyToActivateForTesting(false);
1199 }
1200 } 1194 }
1201 1195
1202 virtual void UpdateAnimationState(LayerTreeHostImpl* host_impl, 1196 virtual void UpdateAnimationState(LayerTreeHostImpl* host_impl,
1203 bool has_unfinished_animation) OVERRIDE { 1197 bool has_unfinished_animation) OVERRIDE {
1204 LayerAnimationController* root_controller_impl = 1198 LayerAnimationController* root_controller_impl =
1205 host_impl->active_tree()->root_layer()->layer_animation_controller(); 1199 host_impl->active_tree()->root_layer()->layer_animation_controller();
1206 Animation* root_animation = 1200 Animation* root_animation =
1207 root_controller_impl->GetAnimation(Animation::Opacity); 1201 root_controller_impl->GetAnimation(Animation::Opacity);
1208 if (!root_animation || root_animation->run_state() != Animation::Running) 1202 if (!root_animation || root_animation->run_state() != Animation::Running)
1209 return; 1203 return;
(...skipping 10 matching lines...) Expand all
1220 child_controller_impl->AbortAnimations(Animation::Opacity); 1214 child_controller_impl->AbortAnimations(Animation::Opacity);
1221 EndTest(); 1215 EndTest();
1222 } 1216 }
1223 1217
1224 virtual void AfterTest() OVERRIDE {} 1218 virtual void AfterTest() OVERRIDE {}
1225 1219
1226 private: 1220 private:
1227 int frame_count_with_pending_tree_; 1221 int frame_count_with_pending_tree_;
1228 }; 1222 };
1229 1223
1230 SINGLE_AND_MULTI_THREAD_BLOCKNOTIFY_TEST_F( 1224 SINGLE_AND_MULTI_THREAD_TEST_F(
1231 LayerTreeHostAnimationTestAnimationsAddedToNewAndExistingLayers); 1225 LayerTreeHostAnimationTestAnimationsAddedToNewAndExistingLayers);
1232 1226
1233 class LayerTreeHostAnimationTestAddAnimationAfterAnimating 1227 class LayerTreeHostAnimationTestAddAnimationAfterAnimating
1234 : public LayerTreeHostAnimationTest { 1228 : public LayerTreeHostAnimationTest {
1235 public: 1229 public:
1236 LayerTreeHostAnimationTestAddAnimationAfterAnimating() 1230 LayerTreeHostAnimationTestAddAnimationAfterAnimating()
1237 : num_swap_buffers_(0) {} 1231 : num_swap_buffers_(0) {}
1238 1232
1239 virtual void SetupTree() OVERRIDE { 1233 virtual void SetupTree() OVERRIDE {
1240 LayerTreeHostAnimationTest::SetupTree(); 1234 LayerTreeHostAnimationTest::SetupTree();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1290 private: 1284 private:
1291 scoped_refptr<Layer> content_; 1285 scoped_refptr<Layer> content_;
1292 int num_swap_buffers_; 1286 int num_swap_buffers_;
1293 }; 1287 };
1294 1288
1295 SINGLE_AND_MULTI_THREAD_TEST_F( 1289 SINGLE_AND_MULTI_THREAD_TEST_F(
1296 LayerTreeHostAnimationTestAddAnimationAfterAnimating); 1290 LayerTreeHostAnimationTestAddAnimationAfterAnimating);
1297 1291
1298 } // namespace 1292 } // namespace
1299 } // namespace cc 1293 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | cc/trees/single_thread_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698