Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: cc/test/layer_tree_test.cc

Issue 2193293004: cc: Make LayerTreeTests use a DelegatingRenderer and Display. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: display-layertreetest: withperftestsfix Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/test/layer_tree_test.h ('k') | cc/test/test_context_provider.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
(...skipping 10 matching lines...) Expand all
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_external_begin_frame_source.h" 26 #include "cc/test/fake_external_begin_frame_source.h"
27 #include "cc/test/fake_image_serialization_processor.h" 27 #include "cc/test/fake_image_serialization_processor.h"
28 #include "cc/test/fake_layer_tree_host_client.h" 28 #include "cc/test/fake_layer_tree_host_client.h"
29 #include "cc/test/fake_output_surface.h" 29 #include "cc/test/fake_output_surface.h"
30 #include "cc/test/test_context_provider.h" 30 #include "cc/test/test_context_provider.h"
31 #include "cc/test/test_gpu_memory_buffer_manager.h" 31 #include "cc/test/test_delegating_output_surface.h"
32 #include "cc/test/test_shared_bitmap_manager.h" 32 #include "cc/test/test_shared_bitmap_manager.h"
33 #include "cc/test/test_task_graph_runner.h"
34 #include "cc/trees/layer_tree_host_client.h" 33 #include "cc/trees/layer_tree_host_client.h"
35 #include "cc/trees/layer_tree_host_impl.h" 34 #include "cc/trees/layer_tree_host_impl.h"
36 #include "cc/trees/layer_tree_host_single_thread_client.h" 35 #include "cc/trees/layer_tree_host_single_thread_client.h"
37 #include "cc/trees/layer_tree_impl.h" 36 #include "cc/trees/layer_tree_impl.h"
38 #include "cc/trees/proxy_impl.h" 37 #include "cc/trees/proxy_impl.h"
39 #include "cc/trees/proxy_main.h" 38 #include "cc/trees/proxy_main.h"
40 #include "cc/trees/remote_channel_impl.h" 39 #include "cc/trees/remote_channel_impl.h"
41 #include "cc/trees/single_thread_proxy.h" 40 #include "cc/trees/single_thread_proxy.h"
42 #include "cc/trees/threaded_channel.h" 41 #include "cc/trees/threaded_channel.h"
43 #include "testing/gmock/include/gmock/gmock.h" 42 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 DrawResult PrepareToDraw(FrameData* frame) override { 175 DrawResult PrepareToDraw(FrameData* frame) override {
177 DrawResult draw_result = LayerTreeHostImpl::PrepareToDraw(frame); 176 DrawResult draw_result = LayerTreeHostImpl::PrepareToDraw(frame);
178 return test_hooks_->PrepareToDrawOnThread(this, frame, draw_result); 177 return test_hooks_->PrepareToDrawOnThread(this, frame, draw_result);
179 } 178 }
180 179
181 void DrawLayers(FrameData* frame) override { 180 void DrawLayers(FrameData* frame) override {
182 LayerTreeHostImpl::DrawLayers(frame); 181 LayerTreeHostImpl::DrawLayers(frame);
183 test_hooks_->DrawLayersOnThread(this); 182 test_hooks_->DrawLayersOnThread(this);
184 } 183 }
185 184
186 void DidSwapBuffersComplete() override {
187 LayerTreeHostImpl::DidSwapBuffersComplete();
188 test_hooks_->SwapBuffersCompleteOnThread();
189 }
190
191 void ReclaimResources(const ReturnedResourceArray& resources) override {
192 LayerTreeHostImpl::ReclaimResources(resources);
193 }
194
195 void NotifyReadyToActivate() override { 185 void NotifyReadyToActivate() override {
196 if (block_notify_ready_to_activate_for_testing_) { 186 if (block_notify_ready_to_activate_for_testing_) {
197 notify_ready_to_activate_was_blocked_ = true; 187 notify_ready_to_activate_was_blocked_ = true;
198 } else { 188 } else {
199 LayerTreeHostImpl::NotifyReadyToActivate(); 189 LayerTreeHostImpl::NotifyReadyToActivate();
200 test_hooks_->NotifyReadyToActivateOnThread(this); 190 test_hooks_->NotifyReadyToActivateOnThread(this);
201 } 191 }
202 } 192 }
203 193
204 void NotifyReadyToDraw() override { 194 void NotifyReadyToDraw() override {
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 LayerTreeHost::InitParams* params, 424 LayerTreeHost::InitParams* params,
435 CompositorMode mode) 425 CompositorMode mode)
436 : LayerTreeHost(params, mode), 426 : LayerTreeHost(params, mode),
437 test_hooks_(test_hooks), 427 test_hooks_(test_hooks),
438 test_started_(false) {} 428 test_started_(false) {}
439 429
440 TestHooks* test_hooks_; 430 TestHooks* test_hooks_;
441 bool test_started_; 431 bool test_started_;
442 }; 432 };
443 433
434 class LayerTreeTestDelegatingOutputSurfaceClient
435 : public TestDelegatingOutputSurfaceClient {
436 public:
437 explicit LayerTreeTestDelegatingOutputSurfaceClient(TestHooks* hooks)
438 : hooks_(hooks) {}
439
440 // TestDelegatingOutputSurfaceClient implementation.
441 void DisplayReceivedCompositorFrame(const CompositorFrame& frame) override {
442 hooks_->DisplayReceivedCompositorFrameOnThread(frame);
443 }
444 void DisplayWillDrawAndSwap(bool will_draw_and_swap,
445 const RenderPassList& render_passes) override {
446 hooks_->DisplayWillDrawAndSwapOnThread(will_draw_and_swap, render_passes);
447 }
448 void DisplayDidDrawAndSwap() override {
449 hooks_->DisplayDidDrawAndSwapOnThread();
450 }
451
452 private:
453 TestHooks* hooks_;
454 };
455
444 LayerTreeTest::LayerTreeTest() 456 LayerTreeTest::LayerTreeTest()
445 : external_begin_frame_source_(nullptr), 457 : remote_proto_channel_bridge_(this),
446 remote_proto_channel_bridge_(this),
447 image_serialization_processor_( 458 image_serialization_processor_(
448 base::WrapUnique(new FakeImageSerializationProcessor)), 459 base::WrapUnique(new FakeImageSerializationProcessor)),
449 beginning_(false), 460 delegating_output_surface_client_(
450 end_when_begin_returns_(false), 461 new LayerTreeTestDelegatingOutputSurfaceClient(this)),
451 timed_out_(false),
452 scheduled_(false),
453 started_(false),
454 ended_(false),
455 delegating_renderer_(false),
456 timeout_seconds_(0),
457 weak_factory_(this) { 462 weak_factory_(this) {
458 main_thread_weak_ptr_ = weak_factory_.GetWeakPtr(); 463 main_thread_weak_ptr_ = weak_factory_.GetWeakPtr();
459 464
460 // Tests should timeout quickly unless --cc-layer-tree-test-no-timeout was 465 // Tests should timeout quickly unless --cc-layer-tree-test-no-timeout was
461 // specified (for running in a debugger). 466 // specified (for running in a debugger).
462 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 467 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
463 if (!command_line->HasSwitch(switches::kCCLayerTreeTestNoTimeout)) 468 if (!command_line->HasSwitch(switches::kCCLayerTreeTestNoTimeout))
464 timeout_seconds_ = 5; 469 timeout_seconds_ = 5;
465 if (command_line->HasSwitch(switches::kCCLayerTreeTestLongTimeout)) 470 if (command_line->HasSwitch(switches::kCCLayerTreeTestLongTimeout))
466 timeout_seconds_ = 5 * 60; 471 timeout_seconds_ = 5 * 60;
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 main_thread_weak_ptr_)); 598 main_thread_weak_ptr_));
594 } 599 }
595 600
596 void LayerTreeTest::PostNextCommitWaitsForActivationToMainThread() { 601 void LayerTreeTest::PostNextCommitWaitsForActivationToMainThread() {
597 main_task_runner_->PostTask( 602 main_task_runner_->PostTask(
598 FROM_HERE, 603 FROM_HERE,
599 base::Bind(&LayerTreeTest::DispatchNextCommitWaitsForActivation, 604 base::Bind(&LayerTreeTest::DispatchNextCommitWaitsForActivation,
600 main_thread_weak_ptr_)); 605 main_thread_weak_ptr_));
601 } 606 }
602 607
603 void LayerTreeTest::SetOutputSurfaceOnLayerTreeHost(
604 std::unique_ptr<OutputSurface> output_surface) {
605 if (IsRemoteTest()) {
606 DCHECK(remote_client_layer_tree_host_);
607 remote_client_layer_tree_host_->SetOutputSurface(std::move(output_surface));
608 } else {
609 layer_tree_host_->SetOutputSurface(std::move(output_surface));
610 }
611 }
612
613 std::unique_ptr<OutputSurface> 608 std::unique_ptr<OutputSurface>
614 LayerTreeTest::ReleaseOutputSurfaceOnLayerTreeHost() { 609 LayerTreeTest::ReleaseOutputSurfaceOnLayerTreeHost() {
615 if (IsRemoteTest()) { 610 if (IsRemoteTest()) {
616 DCHECK(remote_client_layer_tree_host_); 611 DCHECK(remote_client_layer_tree_host_);
617 return remote_client_layer_tree_host_->ReleaseOutputSurface(); 612 return remote_client_layer_tree_host_->ReleaseOutputSurface();
618 } 613 }
619 return layer_tree_host_->ReleaseOutputSurface(); 614 return layer_tree_host_->ReleaseOutputSurface();
620 } 615 }
621 616
622 void LayerTreeTest::SetVisibleOnLayerTreeHost(bool visible) { 617 void LayerTreeTest::SetVisibleOnLayerTreeHost(bool visible) {
623 layer_tree_host_->SetVisible(visible); 618 layer_tree_host_->SetVisible(visible);
624 619
625 if (IsRemoteTest()) { 620 if (IsRemoteTest()) {
626 DCHECK(remote_client_layer_tree_host_); 621 DCHECK(remote_client_layer_tree_host_);
627 remote_client_layer_tree_host_->SetVisible(visible); 622 remote_client_layer_tree_host_->SetVisible(visible);
628 } 623 }
629 } 624 }
630 625
631 void LayerTreeTest::WillBeginTest() { 626 void LayerTreeTest::WillBeginTest() {
632 SetVisibleOnLayerTreeHost(true); 627 SetVisibleOnLayerTreeHost(true);
633 } 628 }
634 629
635 void LayerTreeTest::DoBeginTest() { 630 void LayerTreeTest::DoBeginTest() {
636 client_ = LayerTreeHostClientForTesting::Create(this); 631 client_ = LayerTreeHostClientForTesting::Create(this);
637 632
638 std::unique_ptr<FakeExternalBeginFrameSource> external_begin_frame_source;
639 if (settings_.use_external_begin_frame_source) {
640 DCHECK(!IsRemoteTest());
641 external_begin_frame_source.reset(new FakeExternalBeginFrameSource(
642 settings_.renderer_settings.refresh_rate, true));
643 external_begin_frame_source_ = external_begin_frame_source.get();
644 }
645
646 DCHECK(!impl_thread_ || impl_thread_->task_runner().get()); 633 DCHECK(!impl_thread_ || impl_thread_->task_runner().get());
647 634
648 if (IsRemoteTest()) { 635 if (IsRemoteTest()) {
649 DCHECK(impl_thread_); 636 DCHECK(impl_thread_);
650 layer_tree_host_ = LayerTreeHostForTesting::Create( 637 layer_tree_host_ = LayerTreeHostForTesting::Create(
651 this, mode_, client_.get(), &remote_proto_channel_bridge_.channel_main, 638 this, mode_, client_.get(), &remote_proto_channel_bridge_.channel_main,
652 nullptr, nullptr, task_graph_runner_.get(), settings_, 639 nullptr, nullptr, task_graph_runner_.get(), settings_,
653 base::ThreadTaskRunnerHandle::Get(), nullptr, 640 base::ThreadTaskRunnerHandle::Get(), nullptr, nullptr,
654 std::move(external_begin_frame_source),
655 image_serialization_processor_.get()); 641 image_serialization_processor_.get());
656 DCHECK(remote_proto_channel_bridge_.channel_main.HasReceiver()); 642 DCHECK(remote_proto_channel_bridge_.channel_main.HasReceiver());
657 } else { 643 } else {
658 layer_tree_host_ = LayerTreeHostForTesting::Create( 644 layer_tree_host_ = LayerTreeHostForTesting::Create(
659 this, mode_, client_.get(), nullptr, shared_bitmap_manager_.get(), 645 this, mode_, client_.get(), nullptr, shared_bitmap_manager_.get(),
660 gpu_memory_buffer_manager_.get(), task_graph_runner_.get(), settings_, 646 gpu_memory_buffer_manager_.get(), task_graph_runner_.get(), settings_,
661 base::ThreadTaskRunnerHandle::Get(), 647 base::ThreadTaskRunnerHandle::Get(),
662 impl_thread_ ? impl_thread_->task_runner() : NULL, 648 impl_thread_ ? impl_thread_->task_runner() : nullptr, nullptr,
663 std::move(external_begin_frame_source),
664 image_serialization_processor_.get()); 649 image_serialization_processor_.get());
665 } 650 }
666 651
667 ASSERT_TRUE(layer_tree_host_); 652 ASSERT_TRUE(layer_tree_host_);
668 653
669 main_task_runner_ = 654 main_task_runner_ =
670 layer_tree_host_->task_runner_provider()->MainThreadTaskRunner(); 655 layer_tree_host_->task_runner_provider()->MainThreadTaskRunner();
671 impl_task_runner_ = 656 impl_task_runner_ =
672 layer_tree_host_->task_runner_provider()->ImplThreadTaskRunner(); 657 layer_tree_host_->task_runner_provider()->ImplThreadTaskRunner();
673 if (!impl_task_runner_) { 658 if (!impl_task_runner_) {
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 delegating_renderer_ = delegating_renderer; 806 delegating_renderer_ = delegating_renderer;
822 807
823 // Spend less time waiting for BeginFrame because the output is 808 // Spend less time waiting for BeginFrame because the output is
824 // mocked out. 809 // mocked out.
825 settings_.renderer_settings.refresh_rate = 200.0; 810 settings_.renderer_settings.refresh_rate = 200.0;
826 settings_.background_animation_rate = 200.0; 811 settings_.background_animation_rate = 200.0;
827 settings_.verify_clip_tree_calculations = true; 812 settings_.verify_clip_tree_calculations = true;
828 settings_.verify_transform_tree_calculations = true; 813 settings_.verify_transform_tree_calculations = true;
829 settings_.renderer_settings.buffer_to_texture_target_map = 814 settings_.renderer_settings.buffer_to_texture_target_map =
830 DefaultBufferToTextureTargetMapForTesting(); 815 DefaultBufferToTextureTargetMapForTesting();
816 // The TestDelegatingOutputSurface will provide a BeginFrameSource.
817 settings_.use_output_surface_begin_frame_source = true;
831 InitializeSettings(&settings_); 818 InitializeSettings(&settings_);
819 DCHECK(settings_.use_output_surface_begin_frame_source);
820 DCHECK(!settings_.use_external_begin_frame_source);
832 821
833 base::ThreadTaskRunnerHandle::Get()->PostTask( 822 base::ThreadTaskRunnerHandle::Get()->PostTask(
834 FROM_HERE, 823 FROM_HERE,
835 base::Bind(&LayerTreeTest::DoBeginTest, base::Unretained(this))); 824 base::Bind(&LayerTreeTest::DoBeginTest, base::Unretained(this)));
836 825
837 base::RunLoop().Run(); 826 base::RunLoop().Run();
838 DestroyLayerTreeHost(); 827 DestroyLayerTreeHost();
839 828
840 timeout_.Cancel(); 829 timeout_.Cancel();
841 830
842 ASSERT_FALSE(layer_tree_host_.get()); 831 ASSERT_FALSE(layer_tree_host_.get());
843 client_ = nullptr; 832 client_ = nullptr;
844 if (timed_out_) { 833 if (timed_out_) {
845 FAIL() << "Test timed out"; 834 FAIL() << "Test timed out";
846 return; 835 return;
847 } 836 }
848 AfterTest(); 837 AfterTest();
849 } 838 }
850 839
851 void LayerTreeTest::RequestNewOutputSurface() { 840 void LayerTreeTest::RequestNewOutputSurface() {
852 if (settings_.use_external_begin_frame_source && 841 scoped_refptr<TestContextProvider> shared_context_provider =
853 settings_.wait_for_beginframe_interval) { 842 TestContextProvider::Create();
854 DCHECK(external_begin_frame_source_); 843 scoped_refptr<TestContextProvider> worker_context_provider =
844 TestContextProvider::CreateWorker();
845
846 auto delegating_output_surface = CreateDelegatingOutputSurface(
847 std::move(shared_context_provider), std::move(worker_context_provider));
848 delegating_output_surface->SetClient(delegating_output_surface_client_.get());
849
850 if (IsRemoteTest()) {
851 DCHECK(remote_client_layer_tree_host_);
852 remote_client_layer_tree_host_->SetOutputSurface(
853 std::move(delegating_output_surface));
854 } else {
855 layer_tree_host_->SetOutputSurface(std::move(delegating_output_surface));
855 } 856 }
856 SetOutputSurfaceOnLayerTreeHost(CreateOutputSurface());
857 } 857 }
858 858
859 std::unique_ptr<OutputSurface> LayerTreeTest::CreateOutputSurface() { 859 std::unique_ptr<TestDelegatingOutputSurface>
860 if (delegating_renderer_) 860 LayerTreeTest::CreateDelegatingOutputSurface(
861 return FakeOutputSurface::CreateDelegating3d(); 861 scoped_refptr<ContextProvider> compositor_context_provider,
862 scoped_refptr<ContextProvider> worker_context_provider) {
863 bool synchronous_composite =
864 !HasImplThread() &&
865 !layer_tree_host()->settings().single_thread_proxy_scheduler;
866 // Disable reclaim resources by default to act like the Display lives
867 // out-of-process.
868 bool force_disable_reclaim_resources = true;
869 return base::MakeUnique<TestDelegatingOutputSurface>(
870 compositor_context_provider, std::move(worker_context_provider),
871 CreateDisplayOutputSurface(compositor_context_provider),
872 shared_bitmap_manager(), gpu_memory_buffer_manager(),
873 layer_tree_host()->settings().renderer_settings, ImplThreadTaskRunner(),
874 synchronous_composite, force_disable_reclaim_resources);
875 }
862 876
863 // Make a worker context in a non-delegating OutputSurface. This is an 877 std::unique_ptr<OutputSurface> LayerTreeTest::CreateDisplayOutputSurface(
864 // exceptional situation for these tests as they put a non-delegating 878 scoped_refptr<ContextProvider> compositor_context_provider) {
865 // OutputSurface into the LayerTreeHost. 879 // By default the Display shares a context with the LayerTreeHostImpl.
866 return FakeOutputSurface::Create3d(TestContextProvider::Create(), 880 return FakeOutputSurface::Create3d(std::move(compositor_context_provider));
867 TestContextProvider::CreateWorker());
868 } 881 }
869 882
870 void LayerTreeTest::DestroyLayerTreeHost() { 883 void LayerTreeTest::DestroyLayerTreeHost() {
871 if (layer_tree_host_ && layer_tree_host_->root_layer()) 884 if (layer_tree_host_ && layer_tree_host_->root_layer())
872 layer_tree_host_->root_layer()->SetLayerTreeHost(NULL); 885 layer_tree_host_->root_layer()->SetLayerTreeHost(NULL);
873 layer_tree_host_ = nullptr; 886 layer_tree_host_ = nullptr;
874 887
875 DCHECK(!remote_proto_channel_bridge_.channel_main.HasReceiver()); 888 DCHECK(!remote_proto_channel_bridge_.channel_main.HasReceiver());
876 889
877 // Destroying the LayerTreeHost should destroy the remote client 890 // Destroying the LayerTreeHost should destroy the remote client
(...skipping 24 matching lines...) Expand all
902 remote_client_layer_tree_host_ = LayerTreeHostForTesting::Create( 915 remote_client_layer_tree_host_ = LayerTreeHostForTesting::Create(
903 this, mode_, client_.get(), &remote_proto_channel_bridge_.channel_impl, 916 this, mode_, client_.get(), &remote_proto_channel_bridge_.channel_impl,
904 nullptr, nullptr, task_graph_runner_.get(), settings, 917 nullptr, nullptr, task_graph_runner_.get(), settings,
905 base::ThreadTaskRunnerHandle::Get(), impl_thread_->task_runner(), nullptr, 918 base::ThreadTaskRunnerHandle::Get(), impl_thread_->task_runner(), nullptr,
906 image_serialization_processor_.get()); 919 image_serialization_processor_.get());
907 920
908 DCHECK(remote_proto_channel_bridge_.channel_impl.HasReceiver()); 921 DCHECK(remote_proto_channel_bridge_.channel_impl.HasReceiver());
909 DCHECK(task_runner_provider()->HasImplThread()); 922 DCHECK(task_runner_provider()->HasImplThread());
910 } 923 }
911 924
912 TaskGraphRunner* LayerTreeTest::task_graph_runner() const {
913 return task_graph_runner_.get();
914 }
915
916 TaskRunnerProvider* LayerTreeTest::task_runner_provider() const { 925 TaskRunnerProvider* LayerTreeTest::task_runner_provider() const {
917 // All LayerTreeTests can use the task runner provider to access the impl 926 // All LayerTreeTests can use the task runner provider to access the impl
918 // thread. In the remote mode, the impl thread of the compositor lives on 927 // thread. In the remote mode, the impl thread of the compositor lives on
919 // the client, so return the task runner provider owned by the remote client 928 // the client, so return the task runner provider owned by the remote client
920 // LayerTreeHost. 929 // LayerTreeHost.
921 LayerTreeHost* host = IsRemoteTest() ? remote_client_layer_tree_host_.get() 930 LayerTreeHost* host = IsRemoteTest() ? remote_client_layer_tree_host_.get()
922 : layer_tree_host_.get(); 931 : layer_tree_host_.get();
923 932
924 // If this fails, the test has ended and there is no task runners to find 933 // If this fails, the test has ended and there is no task runners to find
925 // anymore. 934 // anymore.
926 DCHECK(host); 935 DCHECK(host);
927 936
928 return host->task_runner_provider(); 937 return host->task_runner_provider();
929 } 938 }
930 939
931 LayerTreeHost* LayerTreeTest::layer_tree_host() { 940 LayerTreeHost* LayerTreeTest::layer_tree_host() {
932 DCHECK(task_runner_provider()->IsMainThread() || 941 DCHECK(task_runner_provider()->IsMainThread() ||
933 task_runner_provider()->IsMainThreadBlocked()); 942 task_runner_provider()->IsMainThreadBlocked());
934 return layer_tree_host_.get(); 943 return layer_tree_host_.get();
935 } 944 }
936 945
937 LayerTreeHost* LayerTreeTest::remote_client_layer_tree_host() { 946 LayerTreeHost* LayerTreeTest::remote_client_layer_tree_host() {
938 DCHECK(IsRemoteTest()); 947 DCHECK(IsRemoteTest());
939 DCHECK(task_runner_provider()->IsMainThread() || 948 DCHECK(task_runner_provider()->IsMainThread() ||
940 task_runner_provider()->IsMainThreadBlocked()); 949 task_runner_provider()->IsMainThreadBlocked());
941 return remote_client_layer_tree_host_.get(); 950 return remote_client_layer_tree_host_.get();
942 } 951 }
943 952
944 } // namespace cc 953 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_test.h ('k') | cc/test/test_context_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698