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

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

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 10 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
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 "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "cc/layers/content_layer.h" 8 #include "cc/layers/content_layer.h"
9 #include "cc/layers/delegated_frame_provider.h" 9 #include "cc/layers/delegated_frame_provider.h"
10 #include "cc/layers/delegated_frame_resource_collection.h" 10 #include "cc/layers/delegated_frame_resource_collection.h"
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 397
398 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); } 398 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); }
399 399
400 void AfterTest() override {} 400 void AfterTest() override {}
401 401
402 int request_count_; 402 int request_count_;
403 }; 403 };
404 404
405 SINGLE_THREAD_NOIMPL_TEST_F(MultipleCompositeDoesNotCreateOutputSurface); 405 SINGLE_THREAD_NOIMPL_TEST_F(MultipleCompositeDoesNotCreateOutputSurface);
406 406
407 // This test makes sure that once a SingleThreadProxy issues a
408 // DidFailToInitializeOutputSurface, that future Composite calls will not
409 // trigger additional requests for output surfaces.
407 class FailedCreateDoesNotCreateExtraOutputSurface 410 class FailedCreateDoesNotCreateExtraOutputSurface
408 : public LayerTreeHostContextTest { 411 : public LayerTreeHostContextTest {
409 public: 412 public:
410 FailedCreateDoesNotCreateExtraOutputSurface() 413 FailedCreateDoesNotCreateExtraOutputSurface()
411 : LayerTreeHostContextTest(), request_count_(0) {} 414 : LayerTreeHostContextTest(), num_requests_(0), has_failed_(false) {}
412 415
413 void InitializeSettings(LayerTreeSettings* settings) override { 416 void InitializeSettings(LayerTreeSettings* settings) override {
414 settings->single_thread_proxy_scheduler = false; 417 settings->single_thread_proxy_scheduler = false;
415 } 418 }
416 419
417 void RequestNewOutputSurface() override { 420 void RequestNewOutputSurface() override {
418 if (request_count_ == 0) { 421 num_requests_++;
419 ExpectCreateToFail(); 422 // There should be one initial request and then one request from
420 layer_tree_host()->SetOutputSurface( 423 // the LayerTreeTest test hooks DidFailToInitializeOutputSurface (which is
421 make_scoped_ptr(new FailureOutputSurface(false))); 424 // hard to skip). This second request is just ignored and is test cruft.
422 } 425 EXPECT_LE(num_requests_, 2);
426 if (num_requests_ > 1)
427 return;
428 ExpectCreateToFail();
429 layer_tree_host()->SetOutputSurface(
430 make_scoped_ptr(new FailureOutputSurface(false)));
423 } 431 }
424 432
425 void BeginTest() override { 433 void BeginTest() override {
434 // First composite tries to create a surface.
426 layer_tree_host()->Composite(base::TimeTicks()); 435 layer_tree_host()->Composite(base::TimeTicks());
436 EXPECT_EQ(num_requests_, 2);
437 EXPECT_TRUE(has_failed_);
438
439 // Second composite should not request or fail.
427 layer_tree_host()->Composite(base::TimeTicks()); 440 layer_tree_host()->Composite(base::TimeTicks());
441 EXPECT_EQ(num_requests_, 2);
442 EndTest();
428 } 443 }
429 444
430 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); } 445 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); }
431 446
432 void DidFailToInitializeOutputSurface() override { 447 void DidFailToInitializeOutputSurface() override {
433 LayerTreeHostContextTest::DidFailToInitializeOutputSurface(); 448 LayerTreeHostContextTest::DidFailToInitializeOutputSurface();
434 EXPECT_GE(2, ++request_count_); 449 EXPECT_FALSE(has_failed_);
435 EndTest(); 450 has_failed_ = true;
436 } 451 }
437 452
438 void AfterTest() override {} 453 void AfterTest() override {}
439 454
440 int request_count_; 455 int num_requests_;
456 bool has_failed_;
441 }; 457 };
442 458
443 SINGLE_THREAD_NOIMPL_TEST_F(FailedCreateDoesNotCreateExtraOutputSurface); 459 SINGLE_THREAD_NOIMPL_TEST_F(FailedCreateDoesNotCreateExtraOutputSurface);
444 460
445 class LayerTreeHostContextTestCommitAfterDelayedOutputSurface 461 class LayerTreeHostContextTestCommitAfterDelayedOutputSurface
446 : public LayerTreeHostContextTest { 462 : public LayerTreeHostContextTest {
447 public: 463 public:
448 LayerTreeHostContextTestCommitAfterDelayedOutputSurface() 464 LayerTreeHostContextTestCommitAfterDelayedOutputSurface()
449 : LayerTreeHostContextTest(), creating_output_(false) {} 465 : LayerTreeHostContextTest(), creating_output_(false) {}
450 466
(...skipping 1236 matching lines...) Expand 10 before | Expand all | Expand 10 after
1687 deferred_ = false; 1703 deferred_ = false;
1688 PostSetNeedsCommitToMainThread(); 1704 PostSetNeedsCommitToMainThread();
1689 } 1705 }
1690 1706
1691 void ScheduledActionWillSendBeginMainFrame() override { 1707 void ScheduledActionWillSendBeginMainFrame() override {
1692 if (deferred_) 1708 if (deferred_)
1693 return; 1709 return;
1694 deferred_ = true; 1710 deferred_ = true;
1695 1711
1696 // Defer commits before the BeginFrame arrives, causing it to be delayed. 1712 // Defer commits before the BeginFrame arrives, causing it to be delayed.
1697 MainThreadTaskRunner()->PostTask( 1713 PostSetDeferCommitsToMainThread(true);
1698 FROM_HERE,
1699 base::Bind(&LayerTreeHostContextTestLoseAfterSendingBeginMainFrame::
1700 DeferCommitsOnMainThread,
1701 base::Unretained(this),
1702 true));
1703 // Meanwhile, lose the context while we are in defer commits. 1714 // Meanwhile, lose the context while we are in defer commits.
1704 ImplThreadTaskRunner()->PostTask( 1715 ImplThreadTaskRunner()->PostTask(
1705 FROM_HERE, 1716 FROM_HERE,
1706 base::Bind(&LayerTreeHostContextTestLoseAfterSendingBeginMainFrame:: 1717 base::Bind(&LayerTreeHostContextTestLoseAfterSendingBeginMainFrame::
1707 LoseContextOnImplThread, 1718 LoseContextOnImplThread,
1708 base::Unretained(this))); 1719 base::Unretained(this)));
1709 } 1720 }
1710 1721
1711 void LoseContextOnImplThread() { 1722 void LoseContextOnImplThread() {
1712 LoseContext(); 1723 LoseContext();
1713 1724
1714 // After losing the context, stop deferring commits. 1725 // After losing the context, stop deferring commits.
1715 MainThreadTaskRunner()->PostTask( 1726 PostSetDeferCommitsToMainThread(false);
1716 FROM_HERE,
1717 base::Bind(&LayerTreeHostContextTestLoseAfterSendingBeginMainFrame::
1718 DeferCommitsOnMainThread,
1719 base::Unretained(this),
1720 false));
1721 }
1722
1723 void DeferCommitsOnMainThread(bool defer_commits) {
1724 layer_tree_host()->SetDeferCommits(defer_commits);
1725 } 1727 }
1726 1728
1727 void WillBeginMainFrame() override { 1729 void WillBeginMainFrame() override {
1728 // Don't begin a frame with a lost surface. 1730 // Don't begin a frame with a lost surface.
1729 EXPECT_FALSE(layer_tree_host()->output_surface_lost()); 1731 EXPECT_FALSE(layer_tree_host()->output_surface_lost());
1730 } 1732 }
1731 1733
1732 void DidCommitAndDrawFrame() override { EndTest(); } 1734 void DidCommitAndDrawFrame() override { EndTest(); }
1733 1735
1734 void AfterTest() override {} 1736 void AfterTest() override {}
1735 1737
1736 bool deferred_; 1738 bool deferred_;
1737 }; 1739 };
1738 1740
1739 SINGLE_AND_MULTI_THREAD_TEST_F( 1741 SINGLE_AND_MULTI_THREAD_TEST_F(
1740 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame); 1742 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame);
1741 1743
1742 } // namespace 1744 } // namespace
1743 } // namespace cc 1745 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest_animation.cc ('k') | cc/trees/layer_tree_host_unittest_copyrequest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698