Chromium Code Reviews| Index: cc/trees/layer_tree_host_unittest_context.cc |
| diff --git a/cc/trees/layer_tree_host_unittest_context.cc b/cc/trees/layer_tree_host_unittest_context.cc |
| index 7c766fe8bedc60376fafb543e8f51667e2c40682..14829221e1e865361c67f95906467dd5cde75f95 100644 |
| --- a/cc/trees/layer_tree_host_unittest_context.cc |
| +++ b/cc/trees/layer_tree_host_unittest_context.cc |
| @@ -382,6 +382,66 @@ class LayerTreeHostClientNotReadyDoesNotCreateOutputSurface |
| SINGLE_AND_MULTI_THREAD_TEST_F( |
| LayerTreeHostClientNotReadyDoesNotCreateOutputSurface); |
| +class LayerTreeHostClientTakeAwayOutputSurface |
| + : public LayerTreeHostContextTest { |
| + public: |
| + LayerTreeHostClientTakeAwayOutputSurface() |
| + : LayerTreeHostContextTest(), setos_counter_(0), made_visible_(false) {} |
| + |
| + void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| + |
| + void RequestNewOutputSurface() override { |
| + if (!made_visible_) |
|
no sievers
2015/09/11 22:44:50
You mean 'if (made_visible_)'? Or you could simply
sohanjg
2015/09/14 13:01:27
Done.
|
| + CreateAndSetOutputSurface(); |
| + } |
| + |
| + void CreateAndSetOutputSurface() { |
| + scoped_ptr<OutputSurface> surface = |
| + LayerTreeHostContextTest::CreateOutputSurface(); |
| + CHECK(surface); |
| + layer_tree_host()->SetOutputSurface(surface.Pass()); |
| + setos_counter_++; |
| + } |
| + |
| + void HideAndReleaseOutputSurface() { |
| + EXPECT_TRUE(layer_tree_host()->proxy()->IsMainThread()); |
| + layer_tree_host()->SetVisible(false); |
| + made_visible_ = false; |
| + scoped_ptr<OutputSurface> surface = |
| + layer_tree_host()->ReleaseOutputSurface(); |
| + CHECK(surface); |
| + MainThreadTaskRunner()->PostTask( |
| + FROM_HERE, |
| + base::Bind(&LayerTreeHostClientTakeAwayOutputSurface::MakeVisible, |
| + base::Unretained(this))); |
| + } |
| + |
| + void DidInitializeOutputSurface() override { |
| + if (setos_counter_ == 0) { |
|
no sievers
2015/09/11 22:44:50
== 1? Otherwise this is unreachable, and it probab
sohanjg
2015/09/14 13:01:27
Done.
|
| + EXPECT_TRUE(layer_tree_host()->visible()); |
| + MainThreadTaskRunner()->PostTask( |
| + FROM_HERE, base::Bind(&LayerTreeHostClientTakeAwayOutputSurface:: |
| + HideAndReleaseOutputSurface, |
| + base::Unretained(this))); |
| + } else { |
| + EndTest(); |
| + } |
| + } |
| + |
| + void MakeVisible() { |
| + EXPECT_TRUE(layer_tree_host()->proxy()->IsMainThread()); |
| + layer_tree_host()->SetVisible(true); |
| + made_visible_ = true; |
| + } |
| + |
| + void AfterTest() override {} |
| + |
| + int setos_counter_; |
| + bool made_visible_; |
| +}; |
| + |
| +SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostClientTakeAwayOutputSurface); |
| + |
| class MultipleCompositeDoesNotCreateOutputSurface |
| : public LayerTreeHostContextTest { |
| public: |