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/test/layer_tree_test.h" | 5 #include "cc/test/layer_tree_test.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
| 10 #include "base/thread_task_runner_handle.h" | 10 #include "base/thread_task_runner_handle.h" |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 #include "cc/test/fake_layer_tree_host_client.h" | 23 #include "cc/test/fake_layer_tree_host_client.h" |
| 24 #include "cc/test/fake_output_surface.h" | 24 #include "cc/test/fake_output_surface.h" |
| 25 #include "cc/test/test_context_provider.h" | 25 #include "cc/test/test_context_provider.h" |
| 26 #include "cc/test/test_gpu_memory_buffer_manager.h" | 26 #include "cc/test/test_gpu_memory_buffer_manager.h" |
| 27 #include "cc/test/test_shared_bitmap_manager.h" | 27 #include "cc/test/test_shared_bitmap_manager.h" |
| 28 #include "cc/test/test_task_graph_runner.h" | 28 #include "cc/test/test_task_graph_runner.h" |
| 29 #include "cc/trees/layer_tree_host_client.h" | 29 #include "cc/trees/layer_tree_host_client.h" |
| 30 #include "cc/trees/layer_tree_host_impl.h" | 30 #include "cc/trees/layer_tree_host_impl.h" |
| 31 #include "cc/trees/layer_tree_host_single_thread_client.h" | 31 #include "cc/trees/layer_tree_host_single_thread_client.h" |
| 32 #include "cc/trees/layer_tree_impl.h" | 32 #include "cc/trees/layer_tree_impl.h" |
| 33 #include "cc/trees/proxy_impl.h" | |
| 34 #include "cc/trees/proxy_main.h" | |
| 33 #include "cc/trees/single_thread_proxy.h" | 35 #include "cc/trees/single_thread_proxy.h" |
| 34 #include "cc/trees/thread_proxy.h" | 36 #include "cc/trees/threaded_channel.h" |
| 35 #include "testing/gmock/include/gmock/gmock.h" | 37 #include "testing/gmock/include/gmock/gmock.h" |
| 36 #include "ui/gfx/geometry/size_conversions.h" | 38 #include "ui/gfx/geometry/size_conversions.h" |
| 37 | 39 |
| 38 namespace cc { | 40 namespace cc { |
| 39 | 41 |
| 40 void CreateVirtualViewportLayers(Layer* root_layer, | 42 void CreateVirtualViewportLayers(Layer* root_layer, |
| 41 scoped_refptr<Layer> outer_scroll_layer, | 43 scoped_refptr<Layer> outer_scroll_layer, |
| 42 const gfx::Size& inner_bounds, | 44 const gfx::Size& inner_bounds, |
| 43 const gfx::Size& outer_bounds, | 45 const gfx::Size& outer_bounds, |
| 44 LayerTreeHost* host, | 46 LayerTreeHost* host, |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 105 } | 107 } |
| 106 | 108 |
| 107 void TestHooks::CreateResourceAndTileTaskWorkerPool( | 109 void TestHooks::CreateResourceAndTileTaskWorkerPool( |
| 108 LayerTreeHostImpl* host_impl, | 110 LayerTreeHostImpl* host_impl, |
| 109 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, | 111 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, |
| 110 scoped_ptr<ResourcePool>* resource_pool) { | 112 scoped_ptr<ResourcePool>* resource_pool) { |
| 111 host_impl->LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( | 113 host_impl->LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
| 112 tile_task_worker_pool, resource_pool); | 114 tile_task_worker_pool, resource_pool); |
| 113 } | 115 } |
| 114 | 116 |
| 115 // Adapts ThreadProxy for test. Injects test hooks for testing. | 117 // Adapts ProxyImpl for test. Injects test hooks for testing. |
|
Wez
2015/11/10 01:41:50
nit: Suggest "Creates a ProxyImpl that notifies th
Khushal
2015/11/11 04:17:47
Yeah, that makes it clearer. Done.
| |
| 116 class ThreadProxyForTest : public ThreadProxy { | 118 class ProxyImplForTest : public ProxyImpl { |
| 117 public: | 119 public: |
| 118 static scoped_ptr<Proxy> Create( | 120 static scoped_ptr<ProxyImpl> Create( |
| 121 TestHooks* test_hooks, | |
| 122 ChannelImpl* channel_impl, | |
| 123 LayerTreeHost* layer_tree_host, | |
| 124 TaskRunnerProvider* task_runner_provider, | |
| 125 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | |
| 126 return make_scoped_ptr(new ProxyImplForTest( | |
| 127 test_hooks, channel_impl, layer_tree_host, task_runner_provider, | |
| 128 external_begin_frame_source.Pass())); | |
| 129 } | |
| 130 | |
| 131 private: | |
| 132 TestHooks* test_hooks_; | |
| 133 | |
| 134 void ScheduledActionSendBeginMainFrame() override { | |
| 135 test_hooks_->ScheduledActionWillSendBeginMainFrame(); | |
| 136 ProxyImpl::ScheduledActionSendBeginMainFrame(); | |
| 137 test_hooks_->ScheduledActionSendBeginMainFrame(); | |
| 138 } | |
| 139 | |
| 140 DrawResult ScheduledActionDrawAndSwapIfPossible() override { | |
| 141 DrawResult result = ProxyImpl::ScheduledActionDrawAndSwapIfPossible(); | |
| 142 test_hooks_->ScheduledActionDrawAndSwapIfPossible(); | |
| 143 return result; | |
| 144 } | |
| 145 | |
| 146 void ScheduledActionAnimate() override { | |
| 147 ProxyImpl::ScheduledActionAnimate(); | |
| 148 test_hooks_->ScheduledActionAnimate(); | |
| 149 } | |
| 150 | |
| 151 void ScheduledActionCommit() override { | |
| 152 ProxyImpl::ScheduledActionCommit(); | |
| 153 test_hooks_->ScheduledActionCommit(); | |
| 154 } | |
| 155 | |
| 156 void ScheduledActionBeginOutputSurfaceCreation() override { | |
| 157 ProxyImpl::ScheduledActionBeginOutputSurfaceCreation(); | |
| 158 test_hooks_->ScheduledActionBeginOutputSurfaceCreation(); | |
| 159 } | |
| 160 | |
| 161 void ScheduledActionPrepareTiles() override { | |
| 162 ProxyImpl::ScheduledActionPrepareTiles(); | |
| 163 test_hooks_->ScheduledActionPrepareTiles(); | |
| 164 } | |
| 165 | |
| 166 void ScheduledActionInvalidateOutputSurface() override { | |
| 167 ProxyImpl::ScheduledActionInvalidateOutputSurface(); | |
| 168 test_hooks_->ScheduledActionInvalidateOutputSurface(); | |
| 169 } | |
| 170 | |
| 171 void SendBeginMainFrameNotExpectedSoon() override { | |
| 172 ProxyImpl::SendBeginMainFrameNotExpectedSoon(); | |
| 173 test_hooks_->SendBeginMainFrameNotExpectedSoon(); | |
| 174 } | |
| 175 | |
| 176 void DidActivateSyncTree() override { | |
| 177 ProxyImpl::DidActivateSyncTree(); | |
| 178 test_hooks_->DidActivateSyncTree(); | |
| 179 } | |
| 180 | |
| 181 void SetThrottleFrameProductionOnImpl(bool throttle) override { | |
| 182 test_hooks_->SetThrottleFrameProductionOnImpl(throttle); | |
| 183 ProxyImpl::SetThrottleFrameProductionOnImpl(throttle); | |
| 184 } | |
| 185 | |
| 186 void InitializeOutputSurfaceOnImpl(OutputSurface* output_surface) override { | |
| 187 test_hooks_->InitializeOutputSurfaceOnImpl(output_surface); | |
| 188 ProxyImpl::InitializeOutputSurfaceOnImpl(output_surface); | |
| 189 } | |
| 190 | |
| 191 void MainThreadHasStoppedFlingingOnImpl() override { | |
| 192 test_hooks_->MainThreadHasStoppedFlingingOnImpl(); | |
| 193 ProxyImpl::MainThreadHasStoppedFlingingOnImpl(); | |
| 194 } | |
| 195 | |
| 196 void SetInputThrottledUntilCommitOnImpl(bool is_throttled) override { | |
| 197 test_hooks_->SetInputThrottledUntilCommitOnImpl(is_throttled); | |
| 198 ProxyImpl::SetInputThrottledUntilCommitOnImpl(is_throttled); | |
| 199 } | |
| 200 | |
| 201 void UpdateTopControlsStateOnImpl(TopControlsState constraints, | |
| 202 TopControlsState current, | |
| 203 bool animate) override { | |
| 204 test_hooks_->UpdateTopControlsStateOnImpl(constraints, current, animate); | |
| 205 ProxyImpl::UpdateTopControlsStateOnImpl(constraints, current, animate); | |
| 206 } | |
| 207 | |
| 208 void SetDeferCommitsOnImpl(bool defer_commits) const override { | |
| 209 test_hooks_->SetDeferCommitsOnImpl(defer_commits); | |
| 210 ProxyImpl::SetDeferCommitsOnImpl(defer_commits); | |
| 211 } | |
| 212 | |
| 213 void BeginMainFrameAbortedOnImpl(CommitEarlyOutReason reason) override { | |
| 214 test_hooks_->BeginMainFrameAbortedOnImpl(reason); | |
| 215 ProxyImpl::BeginMainFrameAbortedOnImpl(reason); | |
| 216 } | |
| 217 | |
| 218 void SetNeedsRedrawOnImpl(const gfx::Rect& damage_rect) override { | |
| 219 test_hooks_->SetNeedsRedrawOnImpl(damage_rect); | |
| 220 ProxyImpl::SetNeedsRedrawOnImpl(damage_rect); | |
| 221 }; | |
| 222 | |
| 223 void SetNeedsCommitOnImpl() override { | |
| 224 test_hooks_->SetNeedsCommitOnImpl(); | |
| 225 ProxyImpl::SetNeedsCommitOnImpl(); | |
| 226 } | |
| 227 | |
| 228 void FinishAllRenderingOnImpl(CompletionEvent* completion) override { | |
| 229 test_hooks_->FinishAllRenderingOnImpl(); | |
| 230 ProxyImpl::FinishAllRenderingOnImpl(completion); | |
| 231 }; | |
| 232 | |
| 233 void SetVisibleOnImpl(bool visible) override { | |
| 234 test_hooks_->SetVisibleOnImpl(visible); | |
| 235 ProxyImpl::SetVisibleOnImpl(visible); | |
| 236 } | |
| 237 | |
| 238 void ReleaseOutputSurfaceOnImpl(CompletionEvent* completion) override { | |
| 239 test_hooks_->ReleaseOutputSurfaceOnImpl(); | |
| 240 ProxyImpl::ReleaseOutputSurfaceOnImpl(completion); | |
| 241 } | |
| 242 | |
| 243 void FinishGLOnImpl(CompletionEvent* completion) override { | |
| 244 test_hooks_->FinishGLOnImpl(); | |
| 245 ProxyImpl::FinishGLOnImpl(completion); | |
| 246 } | |
| 247 | |
| 248 void StartCommitOnImpl(CompletionEvent* completion, | |
| 249 LayerTreeHost* layer_tree_host, | |
| 250 bool hold_commit_for_activation) override { | |
| 251 test_hooks_->StartCommitOnImpl(); | |
| 252 ProxyImpl::StartCommitOnImpl(completion, layer_tree_host, | |
| 253 hold_commit_for_activation); | |
| 254 } | |
| 255 | |
| 256 void LayerTreeHostClosedOnImpl() override { | |
| 257 test_hooks_->WillCloseLayerTreeHostOnImpl(); | |
| 258 ProxyImpl::LayerTreeHostClosedOnImpl(); | |
| 259 } | |
| 260 | |
| 261 ProxyImplForTest(TestHooks* test_hooks, | |
| 262 ChannelImpl* channel_impl, | |
| 263 LayerTreeHost* layer_tree_host, | |
| 264 TaskRunnerProvider* task_runner_provider, | |
| 265 scoped_ptr<BeginFrameSource> external_begin_frame_source) | |
| 266 : ProxyImpl(channel_impl, | |
| 267 layer_tree_host, | |
| 268 task_runner_provider, | |
| 269 external_begin_frame_source.Pass()), | |
| 270 test_hooks_(test_hooks) {} | |
| 271 }; | |
| 272 | |
| 273 // Injects ProxyImplForTest for testing. | |
|
Wez
2015/11/10 01:41:50
Suggest "ThreadedChannel that will notify |test_ho
Khushal
2015/11/11 04:17:47
Done.
| |
| 274 class ThreadedChannelForTest : public ThreadedChannel { | |
| 275 public: | |
| 276 static scoped_ptr<ThreadedChannel> Create(TestHooks* test_hooks, | |
| 277 ProxyMain* proxy_main) { | |
| 278 return make_scoped_ptr(new ThreadedChannelForTest(test_hooks, proxy_main)); | |
| 279 } | |
| 280 | |
| 281 private: | |
| 282 TestHooks* test_hooks_; | |
| 283 | |
| 284 scoped_ptr<ProxyImpl> CreateProxyImpl( | |
| 285 ChannelImpl* channel_impl, | |
| 286 LayerTreeHost* layer_tree_host, | |
| 287 TaskRunnerProvider* task_runner_provider, | |
| 288 scoped_ptr<BeginFrameSource> external_begin_frame_source) override { | |
| 289 return ProxyImplForTest::Create(test_hooks_, channel_impl, layer_tree_host, | |
| 290 task_runner_provider, | |
| 291 external_begin_frame_source.Pass()); | |
| 292 } | |
| 293 | |
| 294 ThreadedChannelForTest(TestHooks* test_hooks, ProxyMain* proxy_main) | |
| 295 : ThreadedChannel(proxy_main), test_hooks_(test_hooks) {} | |
| 296 }; | |
| 297 | |
| 298 // Adapts ProxyMain for test. Injects test hooks for testing. | |
|
Wez
2015/11/10 01:41:50
See suggestions above.
Khushal
2015/11/11 04:17:47
Done.
| |
| 299 class ProxyMainForTest : public ProxyMain { | |
| 300 public: | |
| 301 static scoped_ptr<ProxyMain> Create( | |
| 119 TestHooks* test_hooks, | 302 TestHooks* test_hooks, |
| 120 LayerTreeHost* host, | 303 LayerTreeHost* host, |
| 121 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 304 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 122 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 305 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
| 123 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 306 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
| 124 return make_scoped_ptr(new ThreadProxyForTest( | 307 return make_scoped_ptr(new ProxyMainForTest( |
| 125 test_hooks, | 308 test_hooks, host, main_task_runner, impl_task_runner, |
| 126 host, | |
| 127 main_task_runner, | |
| 128 impl_task_runner, | |
| 129 external_begin_frame_source.Pass())); | 309 external_begin_frame_source.Pass())); |
| 130 } | 310 } |
| 131 | 311 |
| 132 ~ThreadProxyForTest() override {} | 312 ~ProxyMainForTest() override {} |
| 133 | 313 |
| 134 private: | 314 private: |
| 135 TestHooks* test_hooks_; | 315 TestHooks* test_hooks_; |
| 136 | 316 |
| 137 void SetNeedsUpdateLayers() override { | 317 void SetNeedsUpdateLayers() override { |
| 138 ThreadProxy::SetNeedsUpdateLayers(); | 318 ProxyMain::SetNeedsUpdateLayers(); |
| 139 test_hooks_->DidSetNeedsUpdateLayers(); | 319 test_hooks_->DidSetNeedsUpdateLayers(); |
| 140 } | 320 } |
| 141 | 321 |
| 142 void ScheduledActionSendBeginMainFrame() override { | |
| 143 test_hooks_->ScheduledActionWillSendBeginMainFrame(); | |
| 144 ThreadProxy::ScheduledActionSendBeginMainFrame(); | |
| 145 test_hooks_->ScheduledActionSendBeginMainFrame(); | |
| 146 } | |
| 147 | |
| 148 DrawResult ScheduledActionDrawAndSwapIfPossible() override { | |
| 149 DrawResult result = ThreadProxy::ScheduledActionDrawAndSwapIfPossible(); | |
| 150 test_hooks_->ScheduledActionDrawAndSwapIfPossible(); | |
| 151 return result; | |
| 152 } | |
| 153 | |
| 154 void ScheduledActionAnimate() override { | |
| 155 ThreadProxy::ScheduledActionAnimate(); | |
| 156 test_hooks_->ScheduledActionAnimate(); | |
| 157 } | |
| 158 | |
| 159 void ScheduledActionCommit() override { | |
| 160 ThreadProxy::ScheduledActionCommit(); | |
| 161 test_hooks_->ScheduledActionCommit(); | |
| 162 } | |
| 163 | |
| 164 void ScheduledActionBeginOutputSurfaceCreation() override { | |
| 165 ThreadProxy::ScheduledActionBeginOutputSurfaceCreation(); | |
| 166 test_hooks_->ScheduledActionBeginOutputSurfaceCreation(); | |
| 167 } | |
| 168 | |
| 169 void ScheduledActionPrepareTiles() override { | |
| 170 ThreadProxy::ScheduledActionPrepareTiles(); | |
| 171 test_hooks_->ScheduledActionPrepareTiles(); | |
| 172 } | |
| 173 | |
| 174 void ScheduledActionInvalidateOutputSurface() override { | |
| 175 ThreadProxy::ScheduledActionInvalidateOutputSurface(); | |
| 176 test_hooks_->ScheduledActionInvalidateOutputSurface(); | |
| 177 } | |
| 178 | |
| 179 void SendBeginMainFrameNotExpectedSoon() override { | |
| 180 ThreadProxy::SendBeginMainFrameNotExpectedSoon(); | |
| 181 test_hooks_->SendBeginMainFrameNotExpectedSoon(); | |
| 182 } | |
| 183 | |
| 184 void DidActivateSyncTree() override { | |
| 185 ThreadProxy::DidActivateSyncTree(); | |
| 186 test_hooks_->DidActivateSyncTree(); | |
| 187 } | |
| 188 | |
| 189 void SetThrottleFrameProductionOnImpl(bool throttle) override { | |
| 190 test_hooks_->SetThrottleFrameProductionOnImpl(throttle); | |
| 191 ThreadProxy::SetThrottleFrameProductionOnImpl(throttle); | |
| 192 } | |
| 193 | |
| 194 void InitializeOutputSurfaceOnImpl(OutputSurface* output_surface) override { | |
| 195 test_hooks_->InitializeOutputSurfaceOnImpl(output_surface); | |
| 196 ThreadProxy::InitializeOutputSurfaceOnImpl(output_surface); | |
| 197 } | |
| 198 | |
| 199 void MainThreadHasStoppedFlingingOnImpl() override { | |
| 200 test_hooks_->MainThreadHasStoppedFlingingOnImpl(); | |
| 201 ThreadProxy::MainThreadHasStoppedFlingingOnImpl(); | |
| 202 } | |
| 203 | |
| 204 void SetInputThrottledUntilCommitOnImpl(bool is_throttled) override { | |
| 205 test_hooks_->SetInputThrottledUntilCommitOnImpl(is_throttled); | |
| 206 ThreadProxy::SetInputThrottledUntilCommitOnImpl(is_throttled); | |
| 207 } | |
| 208 | |
| 209 void UpdateTopControlsStateOnImpl(TopControlsState constraints, | |
| 210 TopControlsState current, | |
| 211 bool animate) override { | |
| 212 test_hooks_->UpdateTopControlsStateOnImpl(constraints, current, animate); | |
| 213 ThreadProxy::UpdateTopControlsStateOnImpl(constraints, current, animate); | |
| 214 } | |
| 215 | |
| 216 void SetDeferCommitsOnImpl(bool defer_commits) const override { | |
| 217 test_hooks_->SetDeferCommitsOnImpl(defer_commits); | |
| 218 ThreadProxy::SetDeferCommitsOnImpl(defer_commits); | |
| 219 } | |
| 220 | |
| 221 void BeginMainFrameAbortedOnImpl(CommitEarlyOutReason reason) override { | |
| 222 test_hooks_->BeginMainFrameAbortedOnImpl(reason); | |
| 223 ThreadProxy::BeginMainFrameAbortedOnImpl(reason); | |
| 224 } | |
| 225 | |
| 226 void SetNeedsRedrawOnImpl(const gfx::Rect& damage_rect) override { | |
| 227 test_hooks_->SetNeedsRedrawOnImpl(damage_rect); | |
| 228 ThreadProxy::SetNeedsRedrawOnImpl(damage_rect); | |
| 229 }; | |
| 230 | |
| 231 void SetNeedsCommitOnImpl() override { | |
| 232 test_hooks_->SetNeedsCommitOnImpl(); | |
| 233 ThreadProxy::SetNeedsCommitOnImpl(); | |
| 234 } | |
| 235 | |
| 236 void FinishAllRenderingOnImpl(CompletionEvent* completion) override { | |
| 237 test_hooks_->FinishAllRenderingOnImpl(); | |
| 238 ThreadProxy::FinishAllRenderingOnImpl(completion); | |
| 239 }; | |
| 240 | |
| 241 void SetVisibleOnImpl(bool visible) override { | |
| 242 test_hooks_->SetVisibleOnImpl(visible); | |
| 243 ThreadProxy::SetVisibleOnImpl(visible); | |
| 244 } | |
| 245 | |
| 246 void ReleaseOutputSurfaceOnImpl(CompletionEvent* completion) override { | |
| 247 test_hooks_->ReleaseOutputSurfaceOnImpl(); | |
| 248 ThreadProxy::ReleaseOutputSurfaceOnImpl(completion); | |
| 249 } | |
| 250 | |
| 251 void FinishGLOnImpl(CompletionEvent* completion) override { | |
| 252 test_hooks_->FinishGLOnImpl(); | |
| 253 ThreadProxy::FinishGLOnImpl(completion); | |
| 254 } | |
| 255 | |
| 256 void StartCommitOnImpl(CompletionEvent* completion, | |
| 257 LayerTreeHost* layer_tree_host, | |
| 258 bool hold_commit_for_activation) override { | |
| 259 test_hooks_->StartCommitOnImpl(); | |
| 260 ThreadProxy::StartCommitOnImpl(completion, layer_tree_host, | |
| 261 hold_commit_for_activation); | |
| 262 } | |
| 263 | |
| 264 void InitializeImplOnImpl(CompletionEvent* completion, | |
| 265 LayerTreeHost* layer_tree_host) override { | |
| 266 ThreadProxy::InitializeImplOnImpl(completion, layer_tree_host); | |
| 267 test_hooks_->InitializeImplOnImpl(); | |
| 268 } | |
| 269 | |
| 270 void LayerTreeHostClosedOnImpl(CompletionEvent* completion) override { | |
| 271 test_hooks_->WillCloseLayerTreeHostOnImpl(); | |
| 272 ThreadProxy::LayerTreeHostClosedOnImpl(completion); | |
| 273 } | |
| 274 | |
| 275 void DidCompleteSwapBuffers() override { | 322 void DidCompleteSwapBuffers() override { |
| 276 test_hooks_->ReceivedDidCompleteSwapBuffers(); | 323 test_hooks_->ReceivedDidCompleteSwapBuffers(); |
| 277 ThreadProxy::DidCompleteSwapBuffers(); | 324 ProxyMain::DidCompleteSwapBuffers(); |
| 278 } | 325 } |
| 279 | 326 |
| 280 void SetRendererCapabilitiesMainCopy( | 327 void SetRendererCapabilitiesMainCopy( |
| 281 const RendererCapabilities& capabilities) override { | 328 const RendererCapabilities& capabilities) override { |
| 282 test_hooks_->ReceivedSetRendererCapabilitiesMainCopy(capabilities); | 329 test_hooks_->ReceivedSetRendererCapabilitiesMainCopy(capabilities); |
| 283 ThreadProxy::SetRendererCapabilitiesMainCopy(capabilities); | 330 ProxyMain::SetRendererCapabilitiesMainCopy(capabilities); |
| 284 } | 331 } |
| 285 | 332 |
| 286 void BeginMainFrameNotExpectedSoon() override { | 333 void BeginMainFrameNotExpectedSoon() override { |
| 287 test_hooks_->ReceivedBeginMainFrameNotExpectedSoon(); | 334 test_hooks_->ReceivedBeginMainFrameNotExpectedSoon(); |
| 288 ThreadProxy::BeginMainFrameNotExpectedSoon(); | 335 ProxyMain::BeginMainFrameNotExpectedSoon(); |
| 289 } | 336 } |
| 290 | 337 |
| 291 void DidCommitAndDrawFrame() override { | 338 void DidCommitAndDrawFrame() override { |
| 292 test_hooks_->ReceivedDidCommitAndDrawFrame(); | 339 test_hooks_->ReceivedDidCommitAndDrawFrame(); |
| 293 ThreadProxy::DidCommitAndDrawFrame(); | 340 ProxyMain::DidCommitAndDrawFrame(); |
| 294 } | 341 } |
| 295 | 342 |
| 296 void SetAnimationEvents(scoped_ptr<AnimationEventsVector> events) override { | 343 void SetAnimationEvents(scoped_ptr<AnimationEventsVector> events) override { |
| 297 test_hooks_->ReceivedSetAnimationEvents(); | 344 test_hooks_->ReceivedSetAnimationEvents(); |
| 298 ThreadProxy::SetAnimationEvents(events.Pass()); | 345 ProxyMain::SetAnimationEvents(events.Pass()); |
| 299 } | 346 } |
| 300 | 347 |
| 301 void DidLoseOutputSurface() override { | 348 void DidLoseOutputSurface() override { |
| 302 test_hooks_->ReceivedDidLoseOutputSurface(); | 349 test_hooks_->ReceivedDidLoseOutputSurface(); |
| 303 ThreadProxy::DidLoseOutputSurface(); | 350 ProxyMain::DidLoseOutputSurface(); |
| 304 } | 351 } |
| 305 | 352 |
| 306 void RequestNewOutputSurface() override { | 353 void RequestNewOutputSurface() override { |
| 307 test_hooks_->ReceivedRequestNewOutputSurface(); | 354 test_hooks_->ReceivedRequestNewOutputSurface(); |
| 308 ThreadProxy::RequestNewOutputSurface(); | 355 ProxyMain::RequestNewOutputSurface(); |
| 309 } | 356 } |
| 310 | 357 |
| 311 void DidInitializeOutputSurface( | 358 void DidInitializeOutputSurface( |
| 312 bool success, | 359 bool success, |
| 313 const RendererCapabilities& capabilities) override { | 360 const RendererCapabilities& capabilities) override { |
| 314 test_hooks_->ReceivedDidInitializeOutputSurface(success, capabilities); | 361 test_hooks_->ReceivedDidInitializeOutputSurface(success, capabilities); |
| 315 ThreadProxy::DidInitializeOutputSurface(success, capabilities); | 362 ProxyMain::DidInitializeOutputSurface(success, capabilities); |
| 316 } | 363 } |
| 317 | 364 |
| 318 void DidCompletePageScaleAnimation() override { | 365 void DidCompletePageScaleAnimation() override { |
| 319 test_hooks_->ReceivedDidCompletePageScaleAnimation(); | 366 test_hooks_->ReceivedDidCompletePageScaleAnimation(); |
| 320 ThreadProxy::DidCompletePageScaleAnimation(); | 367 ProxyMain::DidCompletePageScaleAnimation(); |
| 321 } | 368 } |
| 322 | 369 |
| 323 void PostFrameTimingEventsOnMain( | 370 void PostFrameTimingEventsOnMain( |
| 324 scoped_ptr<FrameTimingTracker::CompositeTimingSet> composite_events, | 371 scoped_ptr<FrameTimingTracker::CompositeTimingSet> composite_events, |
| 325 scoped_ptr<FrameTimingTracker::MainFrameTimingSet> main_frame_events) | 372 scoped_ptr<FrameTimingTracker::MainFrameTimingSet> main_frame_events) |
| 326 override { | 373 override { |
| 327 test_hooks_->ReceivedPostFrameTimingEventsOnMain(); | 374 test_hooks_->ReceivedPostFrameTimingEventsOnMain(); |
| 328 ThreadProxy::PostFrameTimingEventsOnMain(composite_events.Pass(), | 375 ProxyMain::PostFrameTimingEventsOnMain(composite_events.Pass(), |
| 329 main_frame_events.Pass()); | 376 main_frame_events.Pass()); |
| 330 } | 377 } |
| 331 | 378 |
| 332 void BeginMainFrame(scoped_ptr<BeginMainFrameAndCommitState> | 379 void BeginMainFrame(scoped_ptr<BeginMainFrameAndCommitState> |
| 333 begin_main_frame_state) override { | 380 begin_main_frame_state) override { |
| 334 test_hooks_->ReceivedBeginMainFrame(); | 381 test_hooks_->ReceivedBeginMainFrame(); |
| 335 ThreadProxy::BeginMainFrame(begin_main_frame_state.Pass()); | 382 ProxyMain::BeginMainFrame(begin_main_frame_state.Pass()); |
| 336 }; | 383 }; |
| 337 | 384 |
| 338 ThreadProxyForTest( | 385 ProxyMainForTest(TestHooks* test_hooks, |
| 339 TestHooks* test_hooks, | 386 LayerTreeHost* host, |
| 340 LayerTreeHost* host, | 387 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 341 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 388 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
| 342 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, | 389 scoped_ptr<BeginFrameSource> external_begin_frame_source) |
| 343 scoped_ptr<BeginFrameSource> external_begin_frame_source) | 390 : ProxyMain(host, |
| 344 : ThreadProxy(host, main_task_runner, | 391 main_task_runner, |
| 345 impl_task_runner, | 392 impl_task_runner, |
| 346 external_begin_frame_source.Pass()), | 393 external_begin_frame_source.Pass()), |
| 347 test_hooks_(test_hooks) {} | 394 test_hooks_(test_hooks) {} |
| 348 }; | 395 }; |
| 349 | 396 |
| 350 // Adapts ThreadProxy for test. Injects test hooks for testing. | 397 // Adapts SingleThreadProxy for test. Injects test hooks for testing. |
|
Wez
2015/11/10 01:41:50
See suggestions above re comment style.
Khushal
2015/11/11 04:17:47
Done.
| |
| 351 class SingleThreadProxyForTest : public SingleThreadProxy { | 398 class SingleThreadProxyForTest : public SingleThreadProxy { |
| 352 public: | 399 public: |
| 353 static scoped_ptr<Proxy> Create( | 400 static scoped_ptr<Proxy> Create( |
| 354 TestHooks* test_hooks, | 401 TestHooks* test_hooks, |
| 355 LayerTreeHost* host, | 402 LayerTreeHost* host, |
| 356 LayerTreeHostSingleThreadClient* client, | 403 LayerTreeHostSingleThreadClient* client, |
| 357 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 404 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 358 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 405 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
| 359 return make_scoped_ptr(new SingleThreadProxyForTest( | 406 return make_scoped_ptr(new SingleThreadProxyForTest( |
| 360 test_hooks, host, client, main_task_runner, | 407 test_hooks, host, client, main_task_runner, |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 697 scoped_ptr<BeginFrameSource> external_begin_frame_source) { | 744 scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
| 698 LayerTreeHost::InitParams params; | 745 LayerTreeHost::InitParams params; |
| 699 params.client = client; | 746 params.client = client; |
| 700 params.shared_bitmap_manager = shared_bitmap_manager; | 747 params.shared_bitmap_manager = shared_bitmap_manager; |
| 701 params.gpu_memory_buffer_manager = gpu_memory_buffer_manager; | 748 params.gpu_memory_buffer_manager = gpu_memory_buffer_manager; |
| 702 params.task_graph_runner = task_graph_runner; | 749 params.task_graph_runner = task_graph_runner; |
| 703 params.settings = &settings; | 750 params.settings = &settings; |
| 704 scoped_ptr<LayerTreeHostForTesting> layer_tree_host( | 751 scoped_ptr<LayerTreeHostForTesting> layer_tree_host( |
| 705 new LayerTreeHostForTesting(test_hooks, ¶ms)); | 752 new LayerTreeHostForTesting(test_hooks, ¶ms)); |
| 706 if (impl_task_runner.get()) { | 753 if (impl_task_runner.get()) { |
| 707 layer_tree_host->InitializeForTesting( | 754 scoped_ptr<ProxyMain> proxy_main = ProxyMainForTest::Create( |
| 708 ThreadProxyForTest::Create(test_hooks, | 755 test_hooks, layer_tree_host.get(), main_task_runner, impl_task_runner, |
| 709 layer_tree_host.get(), | 756 external_begin_frame_source.Pass()); |
| 710 main_task_runner, | 757 scoped_ptr<ThreadedChannel> threaded_channel = |
| 711 impl_task_runner, | 758 ThreadedChannelForTest::Create(test_hooks, proxy_main.get()); |
| 712 external_begin_frame_source.Pass())); | 759 proxy_main->SetChannel(threaded_channel.Pass()); |
| 760 layer_tree_host->InitializeForTesting(proxy_main.Pass()); | |
| 713 } else { | 761 } else { |
| 714 layer_tree_host->InitializeForTesting( | 762 layer_tree_host->InitializeForTesting( |
| 715 SingleThreadProxyForTest::Create( | 763 SingleThreadProxyForTest::Create( |
| 716 test_hooks, | 764 test_hooks, |
| 717 layer_tree_host.get(), | 765 layer_tree_host.get(), |
| 718 client, | 766 client, |
| 719 main_task_runner, | 767 main_task_runner, |
| 720 external_begin_frame_source.Pass())); | 768 external_begin_frame_source.Pass())); |
| 721 } | 769 } |
| 722 return layer_tree_host.Pass(); | 770 return layer_tree_host.Pass(); |
| (...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1153 | 1201 |
| 1154 LayerTreeHost* LayerTreeTest::layer_tree_host() { | 1202 LayerTreeHost* LayerTreeTest::layer_tree_host() { |
| 1155 // We check for a null proxy here as we sometimes ask for the layer tree host | 1203 // We check for a null proxy here as we sometimes ask for the layer tree host |
| 1156 // when the proxy does not exist, often for checking settings after a test has | 1204 // when the proxy does not exist, often for checking settings after a test has |
| 1157 // completed. For example, LTHPixelResourceTest::RunPixelResourceTest. See | 1205 // completed. For example, LTHPixelResourceTest::RunPixelResourceTest. See |
| 1158 // elsewhere in this file for other examples. | 1206 // elsewhere in this file for other examples. |
| 1159 DCHECK(!proxy() || proxy()->IsMainThread() || proxy()->IsMainThreadBlocked()); | 1207 DCHECK(!proxy() || proxy()->IsMainThread() || proxy()->IsMainThreadBlocked()); |
| 1160 return layer_tree_host_.get(); | 1208 return layer_tree_host_.get(); |
| 1161 } | 1209 } |
| 1162 | 1210 |
| 1211 ProxyMain* LayerTreeTest::GetProxyMain() const { | |
| 1212 DCHECK(HasImplThread()); | |
| 1213 return static_cast<ProxyMain*>(proxy()); | |
| 1214 } | |
| 1215 | |
| 1216 ProxyImpl* LayerTreeTest::GetProxyImpl() const { | |
| 1217 // Verify that the channel has been initialized since proxy impl exists in the | |
| 1218 // channel only after it is initialized. | |
| 1219 DCHECK(HasImplThread()); | |
| 1220 DCHECK(GetProxyMain()->channel_main()->IsInitialized()); | |
| 1221 ThreadedChannel* threaded_channel = | |
| 1222 static_cast<ThreadedChannel*>(GetProxyMain()->channel_main()); | |
| 1223 return threaded_channel->proxy_impl(); | |
| 1224 } | |
| 1225 | |
| 1163 } // namespace cc | 1226 } // namespace cc |
| OLD | NEW |