Chromium Code Reviews| Index: cc/trees/layer_tree_host_unittest.cc |
| diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc |
| index cee77ff3d34e2ff457c963fbb93e9866c388edb1..535ea3e9ace3b2b8a3f885128ed2f01db6079927 100644 |
| --- a/cc/trees/layer_tree_host_unittest.cc |
| +++ b/cc/trees/layer_tree_host_unittest.cc |
| @@ -780,6 +780,53 @@ class LayerTreeHostTestPropertyTreesChangedSync : public LayerTreeHostTest { |
| SINGLE_THREAD_TEST_F(LayerTreeHostTestPropertyTreesChangedSync); |
| +class LayerTreeHostTestSwitchMaskLayer : public LayerTreeHostTest { |
| + protected: |
| + void SetupTree() override { |
| + scoped_refptr<Layer> root = Layer::Create(); |
| + scoped_refptr<Layer> child = Layer::Create(); |
| + mask_layer = Layer::Create(); |
| + child->SetMaskLayer(mask_layer.get()); |
| + root->AddChild(std::move(child)); |
| + layer_tree_host()->SetRootLayer(root); |
| + LayerTreeHostTest::SetupTree(); |
| + } |
| + |
| + void BeginTest() override { |
| + index_ = 0; |
| + PostSetNeedsCommitToMainThread(); |
| + } |
| + |
| + void DidCommit() override { |
| + switch (layer_tree_host()->source_frame_number()) { |
| + case 1: |
| + layer_tree_host()->root_layer()->RemoveAllChildren(); |
| + layer_tree_host()->root_layer()->SetMaskLayer(mask_layer.get()); |
| + break; |
| + } |
| + } |
| + |
| + void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { |
| + switch (index_) { |
| + case 0: |
| + index_++; |
| + EXPECT_FALSE(impl->active_tree()->root_layer()->mask_layer()); |
| + break; |
| + case 1: |
| + EXPECT_TRUE(impl->active_tree()->root_layer()->mask_layer()); |
| + EndTest(); |
| + break; |
| + } |
| + } |
| + |
| + void AfterTest() override {} |
| + |
| + scoped_refptr<Layer> mask_layer; |
| + int index_; |
| +}; |
| + |
| +SINGLE_THREAD_TEST_F(LayerTreeHostTestSwitchMaskLayer); |
|
ajuma
2016/03/30 21:50:59
Any reason for this to be single-thread only? (If
danakj
2016/03/30 22:13:35
Thanks for asking this, would also appreciate a co
jaydasika
2016/03/30 22:33:34
Changed it to single and multi thread.
|
| + |
| // 1 setNeedsRedraw after the first commit has completed should lead to 1 |
| // additional draw. |
| class LayerTreeHostTestSetNeedsRedraw : public LayerTreeHostTest { |