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/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
11 #include "base/single_thread_task_runner.h" | 11 #include "base/single_thread_task_runner.h" |
12 #include "base/threading/thread_task_runner_handle.h" | 12 #include "base/threading/thread_task_runner_handle.h" |
13 #include "cc/animation/animation.h" | 13 #include "cc/animation/animation.h" |
14 #include "cc/animation/animation_host.h" | 14 #include "cc/animation/animation_host.h" |
15 #include "cc/animation/element_animations.h" | 15 #include "cc/animation/element_animations.h" |
16 #include "cc/animation/timing_function.h" | 16 #include "cc/animation/timing_function.h" |
17 #include "cc/base/switches.h" | 17 #include "cc/base/switches.h" |
18 #include "cc/blimp/image_serialization_processor.h" | 18 #include "cc/blimp/remote_compositor_bridge.h" |
19 #include "cc/input/input_handler.h" | 19 #include "cc/input/input_handler.h" |
20 #include "cc/layers/layer.h" | 20 #include "cc/layers/layer.h" |
21 #include "cc/layers/layer_impl.h" | 21 #include "cc/layers/layer_impl.h" |
22 #include "cc/output/buffer_to_texture_target_map.h" | 22 #include "cc/output/buffer_to_texture_target_map.h" |
23 #include "cc/proto/compositor_message_to_impl.pb.h" | 23 #include "cc/proto/compositor_message_to_impl.pb.h" |
24 #include "cc/test/animation_test_common.h" | 24 #include "cc/test/animation_test_common.h" |
25 #include "cc/test/begin_frame_args_test.h" | 25 #include "cc/test/begin_frame_args_test.h" |
26 #include "cc/test/fake_image_serialization_processor.h" | 26 #include "cc/test/fake_image_serialization_processor.h" |
27 #include "cc/test/fake_layer_tree_host_client.h" | 27 #include "cc/test/fake_layer_tree_host_client.h" |
28 #include "cc/test/fake_output_surface.h" | 28 #include "cc/test/fake_output_surface.h" |
| 29 #include "cc/test/layer_tree_host_remote_for_testing.h" |
29 #include "cc/test/test_compositor_frame_sink.h" | 30 #include "cc/test/test_compositor_frame_sink.h" |
30 #include "cc/test/test_context_provider.h" | 31 #include "cc/test/test_context_provider.h" |
31 #include "cc/test/test_shared_bitmap_manager.h" | 32 #include "cc/test/test_shared_bitmap_manager.h" |
32 #include "cc/trees/layer_tree_host_client.h" | 33 #include "cc/trees/layer_tree_host_client.h" |
33 #include "cc/trees/layer_tree_host_impl.h" | 34 #include "cc/trees/layer_tree_host_impl.h" |
34 #include "cc/trees/layer_tree_host_single_thread_client.h" | 35 #include "cc/trees/layer_tree_host_single_thread_client.h" |
35 #include "cc/trees/layer_tree_impl.h" | 36 #include "cc/trees/layer_tree_impl.h" |
36 #include "cc/trees/proxy_impl.h" | 37 #include "cc/trees/proxy_impl.h" |
37 #include "cc/trees/proxy_main.h" | 38 #include "cc/trees/proxy_main.h" |
38 #include "cc/trees/single_thread_proxy.h" | 39 #include "cc/trees/single_thread_proxy.h" |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 | 338 |
338 TestHooks* test_hooks_; | 339 TestHooks* test_hooks_; |
339 }; | 340 }; |
340 | 341 |
341 // Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. | 342 // Adapts LayerTreeHost for test. Injects LayerTreeHostImplForTesting. |
342 class LayerTreeHostForTesting : public LayerTreeHostInProcess { | 343 class LayerTreeHostForTesting : public LayerTreeHostInProcess { |
343 public: | 344 public: |
344 static std::unique_ptr<LayerTreeHostForTesting> Create( | 345 static std::unique_ptr<LayerTreeHostForTesting> Create( |
345 TestHooks* test_hooks, | 346 TestHooks* test_hooks, |
346 CompositorMode mode, | 347 CompositorMode mode, |
347 LayerTreeHostClientForTesting* client, | 348 LayerTreeHostClient* client, |
| 349 LayerTreeHostSingleThreadClient* single_thread_client, |
348 SharedBitmapManager* shared_bitmap_manager, | 350 SharedBitmapManager* shared_bitmap_manager, |
349 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 351 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
350 TaskGraphRunner* task_graph_runner, | 352 TaskGraphRunner* task_graph_runner, |
351 const LayerTreeSettings& settings, | 353 const LayerTreeSettings& settings, |
352 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | 354 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
353 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { | 355 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { |
354 LayerTreeHostInProcess::InitParams params; | 356 LayerTreeHostInProcess::InitParams params; |
355 params.client = client; | 357 params.client = client; |
356 params.shared_bitmap_manager = shared_bitmap_manager; | 358 params.shared_bitmap_manager = shared_bitmap_manager; |
357 params.gpu_memory_buffer_manager = gpu_memory_buffer_manager; | 359 params.gpu_memory_buffer_manager = gpu_memory_buffer_manager; |
358 params.task_graph_runner = task_graph_runner; | 360 params.task_graph_runner = task_graph_runner; |
359 params.settings = &settings; | 361 params.settings = &settings; |
360 | 362 |
361 params.animation_host = | 363 params.animation_host = |
362 AnimationHost::CreateForTesting(ThreadInstance::MAIN); | 364 AnimationHost::CreateForTesting(ThreadInstance::MAIN); |
363 std::unique_ptr<LayerTreeHostForTesting> layer_tree_host( | 365 std::unique_ptr<LayerTreeHostForTesting> layer_tree_host( |
364 new LayerTreeHostForTesting(test_hooks, ¶ms, mode)); | 366 new LayerTreeHostForTesting(test_hooks, ¶ms, mode)); |
365 std::unique_ptr<TaskRunnerProvider> task_runner_provider = | 367 std::unique_ptr<TaskRunnerProvider> task_runner_provider = |
366 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); | 368 TaskRunnerProvider::Create(main_task_runner, impl_task_runner); |
367 std::unique_ptr<Proxy> proxy; | 369 std::unique_ptr<Proxy> proxy; |
368 switch (mode) { | 370 switch (mode) { |
369 case CompositorMode::SINGLE_THREADED: | 371 case CompositorMode::SINGLE_THREADED: |
370 proxy = SingleThreadProxy::Create(layer_tree_host.get(), client, | 372 proxy = SingleThreadProxy::Create(layer_tree_host.get(), |
| 373 single_thread_client, |
371 task_runner_provider.get()); | 374 task_runner_provider.get()); |
372 break; | 375 break; |
373 case CompositorMode::THREADED: | 376 case CompositorMode::THREADED: |
374 DCHECK(impl_task_runner.get()); | 377 DCHECK(impl_task_runner.get()); |
375 proxy = ProxyMain::CreateThreaded(layer_tree_host.get(), | 378 proxy = ProxyMain::CreateThreaded(layer_tree_host.get(), |
376 task_runner_provider.get()); | 379 task_runner_provider.get()); |
377 break; | 380 break; |
378 case CompositorMode::REMOTE: | 381 case CompositorMode::REMOTE: |
379 NOTREACHED(); | 382 NOTREACHED(); |
380 } | 383 } |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 LayerTreeHostInProcess::InitParams* params, | 417 LayerTreeHostInProcess::InitParams* params, |
415 CompositorMode mode) | 418 CompositorMode mode) |
416 : LayerTreeHostInProcess(params, mode), | 419 : LayerTreeHostInProcess(params, mode), |
417 test_hooks_(test_hooks), | 420 test_hooks_(test_hooks), |
418 test_started_(false) {} | 421 test_started_(false) {} |
419 | 422 |
420 TestHooks* test_hooks_; | 423 TestHooks* test_hooks_; |
421 bool test_started_; | 424 bool test_started_; |
422 }; | 425 }; |
423 | 426 |
| 427 // Adapts the LayerTreeHostRemoteForTesting to inject the |
| 428 // LayerTreeHostInProcess. |
| 429 class LayerTreeHostRemoteForLayerTreeTest |
| 430 : public LayerTreeHostRemoteForTesting { |
| 431 public: |
| 432 static std::unique_ptr<LayerTreeHostRemoteForLayerTreeTest> Create( |
| 433 TestHooks* test_hooks, |
| 434 LayerTreeHostClient* client, |
| 435 LayerTreeSettings const* settings, |
| 436 SharedBitmapManager* shared_bitmap_manager, |
| 437 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| 438 TaskGraphRunner* task_graph_runner, |
| 439 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 440 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { |
| 441 std::unique_ptr<FakeImageSerializationProcessor> |
| 442 image_serialization_processor = |
| 443 base::MakeUnique<FakeImageSerializationProcessor>(); |
| 444 |
| 445 LayerTreeHostRemote::InitParams params; |
| 446 params.client = client; |
| 447 params.main_task_runner = main_task_runner; |
| 448 params.animation_host = |
| 449 AnimationHost::CreateForTesting(ThreadInstance::MAIN); |
| 450 params.remote_compositor_bridge = |
| 451 CreateRemoteCompositorBridge(main_task_runner); |
| 452 params.engine_picture_cache = |
| 453 image_serialization_processor->CreateEnginePictureCache(); |
| 454 params.settings = settings; |
| 455 |
| 456 std::unique_ptr<LayerTreeHostRemoteForLayerTreeTest> layer_tree_host = |
| 457 base::WrapUnique( |
| 458 new LayerTreeHostRemoteForLayerTreeTest(¶ms, test_hooks)); |
| 459 layer_tree_host->Initialize(shared_bitmap_manager, |
| 460 gpu_memory_buffer_manager, task_graph_runner, |
| 461 main_task_runner, impl_task_runner, |
| 462 std::move(image_serialization_processor)); |
| 463 return layer_tree_host; |
| 464 } |
| 465 |
| 466 ~LayerTreeHostRemoteForLayerTreeTest() override = default; |
| 467 |
| 468 std::unique_ptr<LayerTreeHostInProcess> CreateLayerTreeHostInProcess( |
| 469 LayerTreeHostClient* client, |
| 470 SharedBitmapManager* shared_bitmap_manager, |
| 471 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| 472 TaskGraphRunner* task_graph_runner, |
| 473 const LayerTreeSettings& settings, |
| 474 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 475 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) override { |
| 476 return LayerTreeHostForTesting::Create( |
| 477 test_hooks_, CompositorMode::THREADED, client, nullptr, |
| 478 shared_bitmap_manager, gpu_memory_buffer_manager, task_graph_runner, |
| 479 settings, main_task_runner, impl_task_runner); |
| 480 } |
| 481 |
| 482 private: |
| 483 LayerTreeHostRemoteForLayerTreeTest(InitParams* params, TestHooks* test_hooks) |
| 484 : LayerTreeHostRemoteForTesting(params), test_hooks_(test_hooks) {} |
| 485 |
| 486 TestHooks* test_hooks_; |
| 487 }; |
| 488 |
424 class LayerTreeTestCompositorFrameSinkClient | 489 class LayerTreeTestCompositorFrameSinkClient |
425 : public TestCompositorFrameSinkClient { | 490 : public TestCompositorFrameSinkClient { |
426 public: | 491 public: |
427 explicit LayerTreeTestCompositorFrameSinkClient(TestHooks* hooks) | 492 explicit LayerTreeTestCompositorFrameSinkClient(TestHooks* hooks) |
428 : hooks_(hooks) {} | 493 : hooks_(hooks) {} |
429 | 494 |
430 // TestCompositorFrameSinkClient implementation. | 495 // TestCompositorFrameSinkClient implementation. |
431 void DisplayReceivedCompositorFrame(const CompositorFrame& frame) override { | 496 void DisplayReceivedCompositorFrame(const CompositorFrame& frame) override { |
432 hooks_->DisplayReceivedCompositorFrameOnThread(frame); | 497 hooks_->DisplayReceivedCompositorFrameOnThread(frame); |
433 } | 498 } |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 } | 652 } |
588 | 653 |
589 void LayerTreeTest::WillBeginTest() { | 654 void LayerTreeTest::WillBeginTest() { |
590 SetVisibleOnLayerTreeHost(true); | 655 SetVisibleOnLayerTreeHost(true); |
591 } | 656 } |
592 | 657 |
593 void LayerTreeTest::DoBeginTest() { | 658 void LayerTreeTest::DoBeginTest() { |
594 client_ = LayerTreeHostClientForTesting::Create(this); | 659 client_ = LayerTreeHostClientForTesting::Create(this); |
595 | 660 |
596 DCHECK(!impl_thread_ || impl_thread_->task_runner().get()); | 661 DCHECK(!impl_thread_ || impl_thread_->task_runner().get()); |
597 layer_tree_host_ = LayerTreeHostForTesting::Create( | 662 |
598 this, mode_, client_.get(), shared_bitmap_manager_.get(), | 663 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner = |
599 gpu_memory_buffer_manager_.get(), task_graph_runner_.get(), settings_, | 664 base::ThreadTaskRunnerHandle::Get(); |
600 base::ThreadTaskRunnerHandle::Get(), | 665 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner = |
601 impl_thread_ ? impl_thread_->task_runner() : nullptr); | 666 impl_thread_ ? impl_thread_->task_runner() : nullptr; |
| 667 if (IsRemoteTest()) { |
| 668 std::unique_ptr<LayerTreeHostRemoteForLayerTreeTest> |
| 669 layer_tree_host_remote = LayerTreeHostRemoteForLayerTreeTest::Create( |
| 670 this, client_.get(), &settings_, shared_bitmap_manager_.get(), |
| 671 gpu_memory_buffer_manager_.get(), task_graph_runner_.get(), |
| 672 main_task_runner, impl_task_runner); |
| 673 layer_tree_host_in_process_ = |
| 674 layer_tree_host_remote->layer_tree_host_in_process(); |
| 675 layer_tree_host_ = std::move(layer_tree_host_remote); |
| 676 } else { |
| 677 std::unique_ptr<LayerTreeHostForTesting> layer_tree_host_for_testing = |
| 678 LayerTreeHostForTesting::Create( |
| 679 this, mode_, client_.get(), client_.get(), |
| 680 shared_bitmap_manager_.get(), gpu_memory_buffer_manager_.get(), |
| 681 task_graph_runner_.get(), settings_, main_task_runner, |
| 682 impl_task_runner); |
| 683 layer_tree_host_in_process_ = layer_tree_host_for_testing.get(); |
| 684 layer_tree_host_ = std::move(layer_tree_host_for_testing); |
| 685 } |
602 | 686 |
603 ASSERT_TRUE(layer_tree_host_); | 687 ASSERT_TRUE(layer_tree_host_); |
604 | 688 |
605 main_task_runner_ = | 689 main_task_runner_ = |
606 layer_tree_host_->GetTaskRunnerProvider()->MainThreadTaskRunner(); | 690 layer_tree_host_->GetTaskRunnerProvider()->MainThreadTaskRunner(); |
607 impl_task_runner_ = | 691 impl_task_runner_ = |
608 layer_tree_host_->GetTaskRunnerProvider()->ImplThreadTaskRunner(); | 692 layer_tree_host_->GetTaskRunnerProvider()->ImplThreadTaskRunner(); |
609 if (!impl_task_runner_) { | 693 if (!impl_task_runner_) { |
610 // For tests, if there's no impl thread, make things easier by just giving | 694 // For tests, if there's no impl thread, make things easier by just giving |
611 // the main thread task runner. | 695 // the main thread task runner. |
(...skipping 11 matching lines...) Expand all Loading... |
623 beginning_ = true; | 707 beginning_ = true; |
624 SetupTree(); | 708 SetupTree(); |
625 WillBeginTest(); | 709 WillBeginTest(); |
626 BeginTest(); | 710 BeginTest(); |
627 beginning_ = false; | 711 beginning_ = false; |
628 if (end_when_begin_returns_) | 712 if (end_when_begin_returns_) |
629 RealEndTest(); | 713 RealEndTest(); |
630 | 714 |
631 // Allow commits to happen once BeginTest() has had a chance to post tasks | 715 // Allow commits to happen once BeginTest() has had a chance to post tasks |
632 // so that those tasks will happen before the first commit. | 716 // so that those tasks will happen before the first commit. |
633 if (layer_tree_host_) { | 717 if (layer_tree_host_in_process_) { |
634 static_cast<LayerTreeHostForTesting*>(layer_tree_host_.get()) | 718 static_cast<LayerTreeHostForTesting*>(layer_tree_host_in_process_) |
635 ->set_test_started(true); | 719 ->set_test_started(true); |
636 } | 720 } |
637 } | 721 } |
638 | 722 |
639 void LayerTreeTest::SetupTree() { | 723 void LayerTreeTest::SetupTree() { |
640 if (!layer_tree()->root_layer()) { | 724 if (!layer_tree()->root_layer()) { |
641 scoped_refptr<Layer> root_layer = Layer::Create(); | 725 scoped_refptr<Layer> root_layer = Layer::Create(); |
642 root_layer->SetBounds(gfx::Size(1, 1)); | 726 root_layer->SetBounds(gfx::Size(1, 1)); |
643 layer_tree()->SetRootLayer(root_layer); | 727 layer_tree()->SetRootLayer(root_layer); |
644 } | 728 } |
645 | 729 |
646 gfx::Size root_bounds = layer_tree()->root_layer()->bounds(); | 730 gfx::Size root_bounds = layer_tree()->root_layer()->bounds(); |
647 gfx::Size device_root_bounds = | 731 gfx::Size device_root_bounds = |
648 gfx::ScaleToCeiledSize(root_bounds, layer_tree()->device_scale_factor()); | 732 gfx::ScaleToCeiledSize(root_bounds, layer_tree()->device_scale_factor()); |
649 layer_tree()->SetViewportSize(device_root_bounds); | 733 layer_tree()->SetViewportSize(device_root_bounds); |
650 layer_tree()->root_layer()->SetIsDrawable(true); | 734 layer_tree()->root_layer()->SetIsDrawable(true); |
651 } | 735 } |
652 | 736 |
653 void LayerTreeTest::Timeout() { | 737 void LayerTreeTest::Timeout() { |
654 timed_out_ = true; | 738 timed_out_ = true; |
655 EndTest(); | 739 EndTest(); |
656 } | 740 } |
657 | 741 |
658 void LayerTreeTest::RealEndTest() { | 742 void LayerTreeTest::RealEndTest() { |
659 // TODO(mithro): Make this method only end when not inside an impl frame. | 743 // TODO(mithro): Make this method only end when not inside an impl frame. |
660 bool main_frame_will_happen; | 744 bool main_frame_will_happen = layer_tree_host_in_process_ |
661 main_frame_will_happen = | 745 ? layer_tree_host_in_process_->proxy() |
662 layer_tree_host_ ? proxy()->MainFrameWillHappenForTesting() : false; | 746 ->MainFrameWillHappenForTesting() |
| 747 : false; |
663 | 748 |
664 if (main_frame_will_happen && !timed_out_) { | 749 if (main_frame_will_happen && !timed_out_) { |
665 main_task_runner_->PostTask( | 750 main_task_runner_->PostTask( |
666 FROM_HERE, | 751 FROM_HERE, |
667 base::Bind(&LayerTreeTest::RealEndTest, main_thread_weak_ptr_)); | 752 base::Bind(&LayerTreeTest::RealEndTest, main_thread_weak_ptr_)); |
668 return; | 753 return; |
669 } | 754 } |
670 | 755 |
671 base::MessageLoop::current()->QuitWhenIdle(); | 756 base::MessageLoop::current()->QuitWhenIdle(); |
672 } | 757 } |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
813 std::unique_ptr<OutputSurface> LayerTreeTest::CreateDisplayOutputSurface( | 898 std::unique_ptr<OutputSurface> LayerTreeTest::CreateDisplayOutputSurface( |
814 scoped_refptr<ContextProvider> compositor_context_provider) { | 899 scoped_refptr<ContextProvider> compositor_context_provider) { |
815 // By default the Display shares a context with the LayerTreeHostImpl. | 900 // By default the Display shares a context with the LayerTreeHostImpl. |
816 return FakeOutputSurface::Create3d(std::move(compositor_context_provider)); | 901 return FakeOutputSurface::Create3d(std::move(compositor_context_provider)); |
817 } | 902 } |
818 | 903 |
819 void LayerTreeTest::DestroyLayerTreeHost() { | 904 void LayerTreeTest::DestroyLayerTreeHost() { |
820 if (layer_tree_host_ && layer_tree_host_->GetLayerTree()->root_layer()) | 905 if (layer_tree_host_ && layer_tree_host_->GetLayerTree()->root_layer()) |
821 layer_tree_host_->GetLayerTree()->root_layer()->SetLayerTreeHost(NULL); | 906 layer_tree_host_->GetLayerTree()->root_layer()->SetLayerTreeHost(NULL); |
822 layer_tree_host_ = nullptr; | 907 layer_tree_host_ = nullptr; |
| 908 layer_tree_host_in_process_ = nullptr; |
823 } | 909 } |
824 | 910 |
825 TaskRunnerProvider* LayerTreeTest::task_runner_provider() const { | 911 TaskRunnerProvider* LayerTreeTest::task_runner_provider() const { |
826 LayerTreeHost* host = layer_tree_host_.get(); | 912 LayerTreeHost* host = layer_tree_host_.get(); |
827 | 913 |
828 // If this fails, the test has ended and there is no task runners to find | 914 // If this fails, the test has ended and there is no task runners to find |
829 // anymore. | 915 // anymore. |
830 DCHECK(host); | 916 DCHECK(host); |
831 | 917 |
832 return host->GetTaskRunnerProvider(); | 918 return host->GetTaskRunnerProvider(); |
833 } | 919 } |
834 | 920 |
835 LayerTreeHost* LayerTreeTest::layer_tree_host() { | 921 LayerTreeHost* LayerTreeTest::layer_tree_host() { |
836 DCHECK(task_runner_provider()->IsMainThread() || | 922 DCHECK(task_runner_provider()->IsMainThread() || |
837 task_runner_provider()->IsMainThreadBlocked()); | 923 task_runner_provider()->IsMainThreadBlocked()); |
838 return layer_tree_host_.get(); | 924 return layer_tree_host_.get(); |
839 } | 925 } |
840 | 926 |
841 LayerTreeHostInProcess* LayerTreeTest::layer_tree_host_in_process() { | 927 LayerTreeHostInProcess* LayerTreeTest::layer_tree_host_in_process() { |
842 DCHECK(task_runner_provider()->IsMainThread() || | 928 DCHECK(task_runner_provider()->IsMainThread() || |
843 task_runner_provider()->IsMainThreadBlocked()); | 929 task_runner_provider()->IsMainThreadBlocked()); |
844 DCHECK(!IsRemoteTest()); | 930 DCHECK(!IsRemoteTest()); |
845 return layer_tree_host_.get(); | 931 return layer_tree_host_in_process_; |
846 } | 932 } |
| 933 |
| 934 Proxy* LayerTreeTest::proxy() { |
| 935 return layer_tree_host_in_process() ? layer_tree_host_in_process()->proxy() |
| 936 : NULL; |
| 937 } |
| 938 |
847 } // namespace cc | 939 } // namespace cc |
OLD | NEW |