Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 573 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostFreeContextResourcesOnDestroy); | 573 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostFreeContextResourcesOnDestroy); |
| 574 | 574 |
| 575 // Test if the LTH successfully frees and stops freeing context resources | 575 // Test if the LTH successfully frees and stops freeing context resources |
| 576 // when the OutputSurface is lost and recreated. | 576 // when the OutputSurface is lost and recreated. |
| 577 class LayerTreeHostCacheBehaviorOnOutputSurfaceRecreated | 577 class LayerTreeHostCacheBehaviorOnOutputSurfaceRecreated |
| 578 : public LayerTreeHostContextCacheTest { | 578 : public LayerTreeHostContextCacheTest { |
| 579 public: | 579 public: |
| 580 void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl, | 580 void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl, |
| 581 const BeginFrameArgs& args) override { | 581 const BeginFrameArgs& args) override { |
| 582 // This code is run once, to trigger recreation of our OutputSurface. | 582 // This code is run once, to trigger recreation of our OutputSurface. |
| 583 if (has_recreated_) | 583 if (test_state_ != TestState::INIT) |
| 584 return; | 584 return; |
| 585 | 585 |
| 586 // Ensure that our initialization expectations have completed. | 586 // Ensure that our initialization expectations have completed. |
| 587 Mock::VerifyAndClearExpectations(mock_main_context_support_); | 587 Mock::VerifyAndClearExpectations(mock_main_context_support_); |
| 588 Mock::VerifyAndClearExpectations(mock_worker_context_support_); | 588 Mock::VerifyAndClearExpectations(mock_worker_context_support_); |
| 589 | 589 |
| 590 // Output surface lost expectations. | 590 // Output surface lost expectations. |
|
danakj
2016/10/06 23:37:38
oops. Output surface -> CompositorFrameSink
ericrk
2016/10/07 17:58:31
Done.
| |
| 591 EXPECT_CALL(*mock_worker_context_support_, | 591 EXPECT_CALL(*mock_worker_context_support_, |
| 592 SetAggressivelyFreeResources(true)); | 592 SetAggressivelyFreeResources(true)); |
| 593 EXPECT_CALL(*mock_main_context_support_, | 593 EXPECT_CALL(*mock_main_context_support_, |
| 594 SetAggressivelyFreeResources(true)); | 594 SetAggressivelyFreeResources(true)); |
| 595 host_impl->DidLoseCompositorFrameSink(); | 595 host_impl->DidLoseCompositorFrameSink(); |
| 596 has_recreated_ = true; | 596 test_state_ = TestState::RECREATED; |
| 597 } | 597 } |
| 598 | 598 |
| 599 void DidInitializeCompositorFrameSink() override { | 599 void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, |
| 600 bool success) override { | |
| 600 // This is run after we have recreated our OutputSurface. | 601 // This is run after we have recreated our OutputSurface. |
|
danakj
2016/10/06 23:37:38
and here
ericrk
2016/10/07 17:58:31
Done.
| |
| 601 if (!has_recreated_) | 602 if (test_state_ != TestState::RECREATED) |
| 602 return; | 603 return; |
| 603 | 604 |
| 604 // Ensure that our initialization expectations have completed. | 605 // Ensure that our initialization expectations have completed. |
| 605 Mock::VerifyAndClearExpectations(mock_main_context_support_); | 606 Mock::VerifyAndClearExpectations(mock_main_context_support_); |
| 606 Mock::VerifyAndClearExpectations(mock_worker_context_support_); | 607 Mock::VerifyAndClearExpectations(mock_worker_context_support_); |
| 607 | 608 |
| 608 // Destruction exptectations. | 609 // Destruction exptectations. |
| 609 EXPECT_CALL(*mock_worker_context_support_, | 610 EXPECT_CALL(*mock_worker_context_support_, |
| 610 SetAggressivelyFreeResources(true)); | 611 SetAggressivelyFreeResources(true)); |
| 611 EXPECT_CALL(*mock_main_context_support_, | 612 EXPECT_CALL(*mock_main_context_support_, |
| 612 SetAggressivelyFreeResources(true)); | 613 SetAggressivelyFreeResources(true)); |
| 613 EndTest(); | 614 EndTest(); |
| 615 test_state_ = TestState::DONE; | |
| 614 } | 616 } |
| 615 | 617 |
| 616 private: | 618 private: |
| 617 bool has_recreated_ = false; | 619 enum class TestState { INIT, RECREATED, DONE }; |
| 620 TestState test_state_ = TestState::INIT; | |
| 618 }; | 621 }; |
| 619 | 622 |
| 620 SINGLE_AND_MULTI_THREAD_TEST_F( | 623 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 621 LayerTreeHostCacheBehaviorOnOutputSurfaceRecreated); | 624 LayerTreeHostCacheBehaviorOnOutputSurfaceRecreated); |
| 622 | 625 |
| 623 // Two setNeedsCommits in a row should lead to at least 1 commit and at least 1 | 626 // Two setNeedsCommits in a row should lead to at least 1 commit and at least 1 |
| 624 // draw with frame 0. | 627 // draw with frame 0. |
| 625 class LayerTreeHostTestSetNeedsCommit1 : public LayerTreeHostTest { | 628 class LayerTreeHostTestSetNeedsCommit1 : public LayerTreeHostTest { |
| 626 public: | 629 public: |
| 627 LayerTreeHostTestSetNeedsCommit1() : num_commits_(0), num_draws_(0) {} | 630 LayerTreeHostTestSetNeedsCommit1() : num_commits_(0), num_draws_(0) {} |
| (...skipping 6378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7006 EndTest(); | 7009 EndTest(); |
| 7007 } | 7010 } |
| 7008 | 7011 |
| 7009 void AfterTest() override {} | 7012 void AfterTest() override {} |
| 7010 }; | 7013 }; |
| 7011 | 7014 |
| 7012 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSubmitFrameResources); | 7015 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSubmitFrameResources); |
| 7013 | 7016 |
| 7014 } // namespace | 7017 } // namespace |
| 7015 } // namespace cc | 7018 } // namespace cc |
| OLD | NEW |