| 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 "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 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 | 404 |
| 405 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); } | 405 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); } |
| 406 | 406 |
| 407 void AfterTest() override {} | 407 void AfterTest() override {} |
| 408 | 408 |
| 409 int request_count_; | 409 int request_count_; |
| 410 }; | 410 }; |
| 411 | 411 |
| 412 SINGLE_THREAD_NOIMPL_TEST_F(MultipleCompositeDoesNotCreateOutputSurface); | 412 SINGLE_THREAD_NOIMPL_TEST_F(MultipleCompositeDoesNotCreateOutputSurface); |
| 413 | 413 |
| 414 // This test makes sure that once a SingleThreadProxy issues a |
| 415 // DidFailToInitializeOutputSurface, that future Composite calls will not |
| 416 // trigger additional requests for output surfaces. |
| 414 class FailedCreateDoesNotCreateExtraOutputSurface | 417 class FailedCreateDoesNotCreateExtraOutputSurface |
| 415 : public LayerTreeHostContextTest { | 418 : public LayerTreeHostContextTest { |
| 416 public: | 419 public: |
| 417 FailedCreateDoesNotCreateExtraOutputSurface() | 420 FailedCreateDoesNotCreateExtraOutputSurface() |
| 418 : LayerTreeHostContextTest(), request_count_(0) {} | 421 : LayerTreeHostContextTest(), num_requests_(0), has_failed_(false) {} |
| 419 | 422 |
| 420 void InitializeSettings(LayerTreeSettings* settings) override { | 423 void InitializeSettings(LayerTreeSettings* settings) override { |
| 421 settings->single_thread_proxy_scheduler = false; | 424 settings->single_thread_proxy_scheduler = false; |
| 422 } | 425 } |
| 423 | 426 |
| 424 void RequestNewOutputSurface() override { | 427 void RequestNewOutputSurface() override { |
| 425 if (request_count_ == 0) { | 428 num_requests_++; |
| 426 ExpectCreateToFail(); | 429 // There should be one initial request and then one request from |
| 427 layer_tree_host()->SetOutputSurface( | 430 // the LayerTreeTest test hooks DidFailToInitializeOutputSurface (which is |
| 428 make_scoped_ptr(new FailureOutputSurface(false))); | 431 // hard to skip). This second request is just ignored and is test cruft. |
| 429 } | 432 EXPECT_LE(num_requests_, 2); |
| 433 if (num_requests_ > 1) |
| 434 return; |
| 435 ExpectCreateToFail(); |
| 436 layer_tree_host()->SetOutputSurface( |
| 437 make_scoped_ptr(new FailureOutputSurface(false))); |
| 430 } | 438 } |
| 431 | 439 |
| 432 void BeginTest() override { | 440 void BeginTest() override { |
| 441 // First composite tries to create a surface. |
| 433 layer_tree_host()->Composite(base::TimeTicks()); | 442 layer_tree_host()->Composite(base::TimeTicks()); |
| 443 EXPECT_EQ(num_requests_, 2); |
| 444 EXPECT_TRUE(has_failed_); |
| 445 |
| 446 // Second composite should not request or fail. |
| 434 layer_tree_host()->Composite(base::TimeTicks()); | 447 layer_tree_host()->Composite(base::TimeTicks()); |
| 448 EXPECT_EQ(num_requests_, 2); |
| 449 EndTest(); |
| 435 } | 450 } |
| 436 | 451 |
| 437 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); } | 452 void DidInitializeOutputSurface() override { EXPECT_TRUE(false); } |
| 438 | 453 |
| 439 void DidFailToInitializeOutputSurface() override { | 454 void DidFailToInitializeOutputSurface() override { |
| 440 LayerTreeHostContextTest::DidFailToInitializeOutputSurface(); | 455 LayerTreeHostContextTest::DidFailToInitializeOutputSurface(); |
| 441 EXPECT_GE(2, ++request_count_); | 456 EXPECT_FALSE(has_failed_); |
| 442 EndTest(); | 457 has_failed_ = true; |
| 443 } | 458 } |
| 444 | 459 |
| 445 void AfterTest() override {} | 460 void AfterTest() override {} |
| 446 | 461 |
| 447 int request_count_; | 462 int num_requests_; |
| 463 bool has_failed_; |
| 448 }; | 464 }; |
| 449 | 465 |
| 450 SINGLE_THREAD_NOIMPL_TEST_F(FailedCreateDoesNotCreateExtraOutputSurface); | 466 SINGLE_THREAD_NOIMPL_TEST_F(FailedCreateDoesNotCreateExtraOutputSurface); |
| 451 | 467 |
| 452 class LayerTreeHostContextTestCommitAfterDelayedOutputSurface | 468 class LayerTreeHostContextTestCommitAfterDelayedOutputSurface |
| 453 : public LayerTreeHostContextTest { | 469 : public LayerTreeHostContextTest { |
| 454 public: | 470 public: |
| 455 LayerTreeHostContextTestCommitAfterDelayedOutputSurface() | 471 LayerTreeHostContextTestCommitAfterDelayedOutputSurface() |
| 456 : LayerTreeHostContextTest(), creating_output_(false) {} | 472 : LayerTreeHostContextTest(), creating_output_(false) {} |
| 457 | 473 |
| (...skipping 1342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1800 void AfterTest() override {} | 1816 void AfterTest() override {} |
| 1801 | 1817 |
| 1802 bool deferred_; | 1818 bool deferred_; |
| 1803 }; | 1819 }; |
| 1804 | 1820 |
| 1805 SINGLE_AND_MULTI_THREAD_TEST_F( | 1821 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 1806 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame); | 1822 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame); |
| 1807 | 1823 |
| 1808 } // namespace | 1824 } // namespace |
| 1809 } // namespace cc | 1825 } // namespace cc |
| OLD | NEW |