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 <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 4909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4920 size_t second_output_surface_memory_limit_; | 4920 size_t second_output_surface_memory_limit_; |
| 4921 FakeContentLayerClient client_; | 4921 FakeContentLayerClient client_; |
| 4922 scoped_refptr<Layer> root_; | 4922 scoped_refptr<Layer> root_; |
| 4923 }; | 4923 }; |
| 4924 | 4924 |
| 4925 SINGLE_AND_MULTI_THREAD_TEST_F( | 4925 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 4926 LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface); | 4926 LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface); |
| 4927 | 4927 |
| 4928 struct TestSwapPromiseResult { | 4928 struct TestSwapPromiseResult { |
| 4929 TestSwapPromiseResult() | 4929 TestSwapPromiseResult() |
| 4930 : did_swap_called(false), | 4930 : did_activate_called(false), |
| 4931 did_swap_called(false), | |
| 4931 did_not_swap_called(false), | 4932 did_not_swap_called(false), |
| 4932 dtor_called(false), | 4933 dtor_called(false), |
| 4933 reason(SwapPromise::DID_NOT_SWAP_UNKNOWN) {} | 4934 reason(SwapPromise::COMMIT_FAILS) {} |
| 4934 | 4935 |
| 4936 bool did_activate_called; | |
| 4935 bool did_swap_called; | 4937 bool did_swap_called; |
| 4936 bool did_not_swap_called; | 4938 bool did_not_swap_called; |
| 4937 bool dtor_called; | 4939 bool dtor_called; |
| 4938 SwapPromise::DidNotSwapReason reason; | 4940 SwapPromise::DidNotSwapReason reason; |
| 4939 base::Lock lock; | 4941 base::Lock lock; |
| 4940 }; | 4942 }; |
| 4941 | 4943 |
| 4942 class TestSwapPromise : public SwapPromise { | 4944 class TestSwapPromise : public SwapPromise { |
| 4943 public: | 4945 public: |
| 4944 explicit TestSwapPromise(TestSwapPromiseResult* result) : result_(result) {} | 4946 explicit TestSwapPromise(TestSwapPromiseResult* result) : result_(result) {} |
| 4945 | 4947 |
| 4946 ~TestSwapPromise() override { | 4948 ~TestSwapPromise() override { |
| 4947 base::AutoLock lock(result_->lock); | 4949 base::AutoLock lock(result_->lock); |
| 4948 result_->dtor_called = true; | 4950 result_->dtor_called = true; |
| 4949 } | 4951 } |
| 4950 | 4952 |
| 4953 void DidActivate() override { | |
| 4954 base::AutoLock lock(result_->lock); | |
| 4955 EXPECT_FALSE(result_->did_activate_called); | |
| 4956 EXPECT_FALSE(result_->did_swap_called); | |
| 4957 EXPECT_FALSE(result_->did_not_swap_called); | |
| 4958 result_->did_activate_called = true; | |
| 4959 } | |
| 4960 | |
| 4951 void DidSwap(CompositorFrameMetadata* metadata) override { | 4961 void DidSwap(CompositorFrameMetadata* metadata) override { |
| 4952 base::AutoLock lock(result_->lock); | 4962 base::AutoLock lock(result_->lock); |
| 4963 EXPECT_TRUE(result_->did_activate_called); | |
| 4953 EXPECT_FALSE(result_->did_swap_called); | 4964 EXPECT_FALSE(result_->did_swap_called); |
| 4954 EXPECT_FALSE(result_->did_not_swap_called); | 4965 EXPECT_FALSE(result_->did_not_swap_called); |
| 4955 result_->did_swap_called = true; | 4966 result_->did_swap_called = true; |
| 4956 } | 4967 } |
| 4957 | 4968 |
| 4958 void DidNotSwap(DidNotSwapReason reason) override { | 4969 void DidNotSwap(DidNotSwapReason reason) override { |
| 4959 base::AutoLock lock(result_->lock); | 4970 base::AutoLock lock(result_->lock); |
| 4960 EXPECT_FALSE(result_->did_swap_called); | 4971 EXPECT_FALSE(result_->did_swap_called); |
| 4961 EXPECT_FALSE(result_->did_not_swap_called); | 4972 EXPECT_FALSE(result_->did_not_swap_called); |
| 4973 EXPECT_FALSE(result_->did_activate_called && | |
| 4974 reason == DidNotSwapReason::ACTIVATION_FAILS); | |
|
boliu
2015/05/15 03:50:50
Actually on second thought, this is not strict eno
Tobias Sargeant
2015/05/15 16:30:49
Done.
| |
| 4962 result_->did_not_swap_called = true; | 4975 result_->did_not_swap_called = true; |
| 4963 result_->reason = reason; | 4976 result_->reason = reason; |
| 4964 } | 4977 } |
| 4965 | 4978 |
| 4966 int64 TraceId() const override { return 0; } | 4979 int64 TraceId() const override { return 0; } |
| 4967 | 4980 |
| 4968 private: | 4981 private: |
| 4969 // Not owned. | 4982 // Not owned. |
| 4970 TestSwapPromiseResult* result_; | 4983 TestSwapPromiseResult* result_; |
| 4971 }; | 4984 }; |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 4985 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 4998 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 4986 | 4999 |
| 4987 void DidCommit() override { | 5000 void DidCommit() override { |
| 4988 commit_count_++; | 5001 commit_count_++; |
| 4989 if (commit_count_ == 2) { | 5002 if (commit_count_ == 2) { |
| 4990 // This commit will finish. | 5003 // This commit will finish. |
| 4991 layer_tree_host()->SetNeedsCommit(); | 5004 layer_tree_host()->SetNeedsCommit(); |
| 4992 } | 5005 } |
| 4993 } | 5006 } |
| 4994 | 5007 |
| 5008 void WillActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { | |
| 5009 if (host_impl->pending_tree()) { | |
| 5010 int frame = host_impl->pending_tree()->source_frame_number(); | |
| 5011 base::AutoLock lock(swap_promise_result_[frame].lock); | |
| 5012 EXPECT_FALSE(swap_promise_result_[frame].did_activate_called); | |
| 5013 EXPECT_FALSE(swap_promise_result_[frame].did_swap_called); | |
| 5014 } | |
| 5015 } | |
| 5016 | |
| 5017 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { | |
| 5018 int frame = host_impl->active_tree()->source_frame_number(); | |
| 5019 base::AutoLock lock(swap_promise_result_[frame].lock); | |
| 5020 EXPECT_TRUE(swap_promise_result_[frame].did_activate_called); | |
| 5021 EXPECT_FALSE(swap_promise_result_[frame].did_swap_called); | |
| 5022 } | |
| 5023 | |
| 4995 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { | 5024 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { |
| 4996 commit_complete_count_++; | 5025 commit_complete_count_++; |
| 4997 if (commit_complete_count_ == 1) { | 5026 if (commit_complete_count_ == 1) { |
| 4998 // This commit will be aborted because no actual update. | 5027 // This commit will be aborted because no actual update. |
| 4999 PostSetNeedsUpdateLayersToMainThread(); | 5028 PostSetNeedsUpdateLayersToMainThread(); |
| 5000 } else { | 5029 } else { |
| 5001 EndTest(); | 5030 EndTest(); |
| 5002 } | 5031 } |
| 5003 } | 5032 } |
| 5004 | 5033 |
| 5005 void AfterTest() override { | 5034 void AfterTest() override { |
| 5006 // 3 commits are scheduled. 2 completes. 1 is aborted. | 5035 // 3 commits are scheduled. 2 completes. 1 is aborted. |
| 5007 EXPECT_EQ(commit_count_, 3); | 5036 EXPECT_EQ(commit_count_, 3); |
| 5008 EXPECT_EQ(commit_complete_count_, 2); | 5037 EXPECT_EQ(commit_complete_count_, 2); |
| 5009 | 5038 |
| 5010 { | 5039 { |
| 5011 // The first commit completes and causes swap buffer which finishes | 5040 // The first commit completes and causes swap buffer which finishes |
| 5012 // the promise. | 5041 // the promise. |
| 5013 base::AutoLock lock(swap_promise_result_[0].lock); | 5042 base::AutoLock lock(swap_promise_result_[0].lock); |
| 5014 EXPECT_TRUE(swap_promise_result_[0].did_swap_called); | 5043 EXPECT_TRUE(swap_promise_result_[0].did_swap_called); |
| 5015 EXPECT_FALSE(swap_promise_result_[0].did_not_swap_called); | 5044 EXPECT_FALSE(swap_promise_result_[0].did_not_swap_called); |
| 5016 EXPECT_TRUE(swap_promise_result_[0].dtor_called); | 5045 EXPECT_TRUE(swap_promise_result_[0].dtor_called); |
| 5017 } | 5046 } |
| 5018 | 5047 |
| 5019 { | 5048 { |
| 5020 // The second commit is aborted since it contains no updates. | 5049 // The second commit is aborted since it contains no updates. |
| 5021 base::AutoLock lock(swap_promise_result_[1].lock); | 5050 base::AutoLock lock(swap_promise_result_[1].lock); |
| 5051 EXPECT_FALSE(swap_promise_result_[1].did_activate_called); | |
| 5022 EXPECT_FALSE(swap_promise_result_[1].did_swap_called); | 5052 EXPECT_FALSE(swap_promise_result_[1].did_swap_called); |
| 5023 EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called); | 5053 EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called); |
| 5024 EXPECT_EQ(SwapPromise::COMMIT_NO_UPDATE, swap_promise_result_[1].reason); | 5054 EXPECT_EQ(SwapPromise::COMMIT_NO_UPDATE, swap_promise_result_[1].reason); |
| 5025 EXPECT_TRUE(swap_promise_result_[1].dtor_called); | 5055 EXPECT_TRUE(swap_promise_result_[1].dtor_called); |
| 5026 } | 5056 } |
| 5027 | 5057 |
| 5028 { | 5058 { |
| 5029 // The last commit completes but it does not cause swap buffer because | 5059 // The last commit completes but it does not cause swap buffer because |
| 5030 // there is no damage in the frame data. | 5060 // there is no damage in the frame data. |
| 5031 base::AutoLock lock(swap_promise_result_[2].lock); | 5061 base::AutoLock lock(swap_promise_result_[2].lock); |
| 5062 EXPECT_TRUE(swap_promise_result_[2].did_activate_called); | |
| 5032 EXPECT_FALSE(swap_promise_result_[2].did_swap_called); | 5063 EXPECT_FALSE(swap_promise_result_[2].did_swap_called); |
| 5033 EXPECT_TRUE(swap_promise_result_[2].did_not_swap_called); | 5064 EXPECT_TRUE(swap_promise_result_[2].did_not_swap_called); |
| 5034 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[2].reason); | 5065 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[2].reason); |
| 5035 EXPECT_TRUE(swap_promise_result_[2].dtor_called); | 5066 EXPECT_TRUE(swap_promise_result_[2].dtor_called); |
| 5036 } | 5067 } |
| 5037 } | 5068 } |
| 5038 | 5069 |
| 5039 int commit_count_; | 5070 int commit_count_; |
| 5040 int commit_complete_count_; | 5071 int commit_complete_count_; |
| 5041 TestSwapPromiseResult swap_promise_result_[3]; | 5072 TestSwapPromiseResult swap_promise_result_[3]; |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 5071 make_scoped_ptr(new TestSwapPromise(&swap_promise_result_))); | 5102 make_scoped_ptr(new TestSwapPromise(&swap_promise_result_))); |
| 5072 break; | 5103 break; |
| 5073 case 2: | 5104 case 2: |
| 5074 break; | 5105 break; |
| 5075 default: | 5106 default: |
| 5076 NOTREACHED(); | 5107 NOTREACHED(); |
| 5077 break; | 5108 break; |
| 5078 } | 5109 } |
| 5079 } | 5110 } |
| 5080 | 5111 |
| 5112 void WillActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { | |
| 5113 if (host_impl->pending_tree() && | |
| 5114 host_impl->pending_tree()->source_frame_number() == 1) { | |
| 5115 base::AutoLock lock(swap_promise_result_.lock); | |
| 5116 EXPECT_FALSE(swap_promise_result_.did_activate_called); | |
| 5117 EXPECT_FALSE(swap_promise_result_.did_swap_called); | |
| 5118 } | |
| 5119 } | |
| 5120 | |
| 5121 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { | |
| 5122 if (host_impl->active_tree()->source_frame_number() == 1) { | |
| 5123 base::AutoLock lock(swap_promise_result_.lock); | |
| 5124 EXPECT_TRUE(swap_promise_result_.did_activate_called); | |
| 5125 EXPECT_FALSE(swap_promise_result_.did_swap_called); | |
| 5126 } | |
| 5127 } | |
| 5128 | |
| 5129 void ActivationCallback() { | |
| 5130 // DidActivate needs to happen before the tree activation callback. | |
| 5131 base::AutoLock lock(swap_promise_result_.lock); | |
| 5132 EXPECT_TRUE(swap_promise_result_.did_activate_called); | |
| 5133 } | |
| 5134 | |
| 5135 void BeginCommitOnThread(LayerTreeHostImpl* host_impl) override { | |
| 5136 SetCallback(layer_tree_host()->settings().impl_side_painting && | |
| 5137 host_impl->active_tree()->source_frame_number() == 0); | |
|
boliu
2015/05/15 03:50:50
SwapPromise is only queued in frame 1, but this is
Tobias Sargeant
2015/05/15 16:30:49
Done.
| |
| 5138 } | |
| 5139 | |
| 5140 void SetCallback(bool enable) { | |
| 5141 output_surface()->SetTreeActivationCallback( | |
| 5142 enable | |
| 5143 ? base::Bind(&LayerTreeHostTestKeepSwapPromise::ActivationCallback, | |
| 5144 base::Unretained(this)) | |
| 5145 : base::Closure()); | |
| 5146 } | |
| 5147 | |
| 5081 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override { | 5148 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override { |
| 5082 EXPECT_TRUE(result); | 5149 EXPECT_TRUE(result); |
| 5083 if (host_impl->active_tree()->source_frame_number() >= 1) { | 5150 if (host_impl->active_tree()->source_frame_number() >= 1) { |
| 5084 // The commit changes layers so it should cause a swap. | 5151 // The commit changes layers so it should cause a swap. |
| 5085 base::AutoLock lock(swap_promise_result_.lock); | 5152 base::AutoLock lock(swap_promise_result_.lock); |
| 5086 EXPECT_TRUE(swap_promise_result_.did_swap_called); | 5153 EXPECT_TRUE(swap_promise_result_.did_swap_called); |
| 5087 EXPECT_FALSE(swap_promise_result_.did_not_swap_called); | 5154 EXPECT_FALSE(swap_promise_result_.did_not_swap_called); |
| 5088 EXPECT_TRUE(swap_promise_result_.dtor_called); | 5155 EXPECT_TRUE(swap_promise_result_.dtor_called); |
| 5089 EndTest(); | 5156 EndTest(); |
| 5090 } | 5157 } |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 5120 } | 5187 } |
| 5121 | 5188 |
| 5122 void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, | 5189 void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, |
| 5123 CommitEarlyOutReason reason) override { | 5190 CommitEarlyOutReason reason) override { |
| 5124 EndTest(); | 5191 EndTest(); |
| 5125 } | 5192 } |
| 5126 | 5193 |
| 5127 void AfterTest() override { | 5194 void AfterTest() override { |
| 5128 { | 5195 { |
| 5129 base::AutoLock lock(swap_promise_result_.lock); | 5196 base::AutoLock lock(swap_promise_result_.lock); |
| 5197 EXPECT_FALSE(swap_promise_result_.did_activate_called); | |
| 5130 EXPECT_FALSE(swap_promise_result_.did_swap_called); | 5198 EXPECT_FALSE(swap_promise_result_.did_swap_called); |
| 5131 EXPECT_TRUE(swap_promise_result_.did_not_swap_called); | 5199 EXPECT_TRUE(swap_promise_result_.did_not_swap_called); |
| 5132 EXPECT_EQ(SwapPromise::COMMIT_FAILS, swap_promise_result_.reason); | 5200 EXPECT_EQ(SwapPromise::COMMIT_FAILS, swap_promise_result_.reason); |
| 5133 EXPECT_TRUE(swap_promise_result_.dtor_called); | 5201 EXPECT_TRUE(swap_promise_result_.dtor_called); |
| 5134 } | 5202 } |
| 5135 } | 5203 } |
| 5136 | 5204 |
| 5137 TestSwapPromiseResult swap_promise_result_; | 5205 TestSwapPromiseResult swap_promise_result_; |
| 5138 }; | 5206 }; |
| 5139 | 5207 |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 5169 void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, | 5237 void BeginMainFrameAbortedOnThread(LayerTreeHostImpl* host_impl, |
| 5170 CommitEarlyOutReason reason) override { | 5238 CommitEarlyOutReason reason) override { |
| 5171 // This is needed so that the impl-thread state matches main-thread state. | 5239 // This is needed so that the impl-thread state matches main-thread state. |
| 5172 host_impl->DidLoseOutputSurface(); | 5240 host_impl->DidLoseOutputSurface(); |
| 5173 EndTest(); | 5241 EndTest(); |
| 5174 } | 5242 } |
| 5175 | 5243 |
| 5176 void AfterTest() override { | 5244 void AfterTest() override { |
| 5177 { | 5245 { |
| 5178 base::AutoLock lock(swap_promise_result_.lock); | 5246 base::AutoLock lock(swap_promise_result_.lock); |
| 5247 EXPECT_FALSE(swap_promise_result_.did_activate_called); | |
| 5179 EXPECT_FALSE(swap_promise_result_.did_swap_called); | 5248 EXPECT_FALSE(swap_promise_result_.did_swap_called); |
| 5180 EXPECT_TRUE(swap_promise_result_.did_not_swap_called); | 5249 EXPECT_TRUE(swap_promise_result_.did_not_swap_called); |
| 5181 EXPECT_EQ(SwapPromise::COMMIT_FAILS, swap_promise_result_.reason); | 5250 EXPECT_EQ(SwapPromise::COMMIT_FAILS, swap_promise_result_.reason); |
| 5182 EXPECT_TRUE(swap_promise_result_.dtor_called); | 5251 EXPECT_TRUE(swap_promise_result_.dtor_called); |
| 5183 } | 5252 } |
| 5184 } | 5253 } |
| 5185 | 5254 |
| 5186 bool output_surface_lost_triggered_; | 5255 bool output_surface_lost_triggered_; |
| 5187 TestSwapPromiseResult swap_promise_result_; | 5256 TestSwapPromiseResult swap_promise_result_; |
| 5188 }; | 5257 }; |
| (...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5822 { | 5891 { |
| 5823 base::AutoLock lock(swap_promise_result_[0].lock); | 5892 base::AutoLock lock(swap_promise_result_[0].lock); |
| 5824 EXPECT_TRUE(swap_promise_result_[0].did_swap_called); | 5893 EXPECT_TRUE(swap_promise_result_[0].did_swap_called); |
| 5825 EXPECT_FALSE(swap_promise_result_[0].did_not_swap_called); | 5894 EXPECT_FALSE(swap_promise_result_[0].did_not_swap_called); |
| 5826 EXPECT_TRUE(swap_promise_result_[0].dtor_called); | 5895 EXPECT_TRUE(swap_promise_result_[0].dtor_called); |
| 5827 } | 5896 } |
| 5828 | 5897 |
| 5829 // Second swap promise fails to swap. | 5898 // Second swap promise fails to swap. |
| 5830 { | 5899 { |
| 5831 base::AutoLock lock(swap_promise_result_[1].lock); | 5900 base::AutoLock lock(swap_promise_result_[1].lock); |
| 5901 EXPECT_TRUE(swap_promise_result_[1].did_activate_called); | |
| 5832 EXPECT_FALSE(swap_promise_result_[1].did_swap_called); | 5902 EXPECT_FALSE(swap_promise_result_[1].did_swap_called); |
| 5833 EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called); | 5903 EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called); |
| 5834 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[1].reason); | 5904 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[1].reason); |
| 5835 EXPECT_TRUE(swap_promise_result_[1].dtor_called); | 5905 EXPECT_TRUE(swap_promise_result_[1].dtor_called); |
| 5836 } | 5906 } |
| 5837 | 5907 |
| 5838 // Third swap promises also fails to swap (and draw). | 5908 // Third swap promises also fails to swap (and draw). |
| 5839 { | 5909 { |
| 5840 base::AutoLock lock(swap_promise_result_[2].lock); | 5910 base::AutoLock lock(swap_promise_result_[2].lock); |
| 5911 EXPECT_TRUE(swap_promise_result_[2].did_activate_called); | |
| 5841 EXPECT_FALSE(swap_promise_result_[2].did_swap_called); | 5912 EXPECT_FALSE(swap_promise_result_[2].did_swap_called); |
| 5842 EXPECT_TRUE(swap_promise_result_[2].did_not_swap_called); | 5913 EXPECT_TRUE(swap_promise_result_[2].did_not_swap_called); |
| 5843 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[2].reason); | 5914 EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[2].reason); |
| 5844 EXPECT_TRUE(swap_promise_result_[2].dtor_called); | 5915 EXPECT_TRUE(swap_promise_result_[2].dtor_called); |
| 5845 } | 5916 } |
| 5846 } | 5917 } |
| 5847 | 5918 |
| 5848 int commit_count_; | 5919 int commit_count_; |
| 5849 TestSwapPromiseResult swap_promise_result_[3]; | 5920 TestSwapPromiseResult swap_promise_result_[3]; |
| 5850 }; | 5921 }; |
| (...skipping 1335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7186 void AfterTest() override {} | 7257 void AfterTest() override {} |
| 7187 | 7258 |
| 7188 scoped_refptr<FakePictureLayer> content_child_layer_; | 7259 scoped_refptr<FakePictureLayer> content_child_layer_; |
| 7189 FakeContentLayerClient client_; | 7260 FakeContentLayerClient client_; |
| 7190 }; | 7261 }; |
| 7191 | 7262 |
| 7192 SINGLE_AND_MULTI_THREAD_TEST_F( | 7263 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 7193 LayerTreeTestReflectionMaskLayerForSurfaceWithUnclippedChild); | 7264 LayerTreeTestReflectionMaskLayerForSurfaceWithUnclippedChild); |
| 7194 | 7265 |
| 7195 } // namespace cc | 7266 } // namespace cc |
| OLD | NEW |