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

Side by Side Diff: cc/trees/layer_tree_host_unittest_context.cc

Issue 1020803002: Don't let unittests access LTH from the impl thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added a comment. Created 5 years, 9 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/trees/layer_tree_host_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "cc/layers/content_layer.h" 8 #include "cc/layers/content_layer.h"
9 #include "cc/layers/delegated_frame_provider.h" 9 #include "cc/layers/delegated_frame_provider.h"
10 #include "cc/layers/delegated_frame_resource_collection.h" 10 #include "cc/layers/delegated_frame_resource_collection.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 return FakeOutputSurface::Create3d(context3d.Pass()); 103 return FakeOutputSurface::Create3d(context3d.Pass());
104 } 104 }
105 105
106 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, 106 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
107 LayerTreeHostImpl::FrameData* frame, 107 LayerTreeHostImpl::FrameData* frame,
108 DrawResult draw_result) override { 108 DrawResult draw_result) override {
109 if (draw_result == DRAW_ABORTED_MISSING_HIGH_RES_CONTENT) { 109 if (draw_result == DRAW_ABORTED_MISSING_HIGH_RES_CONTENT) {
110 // Only valid for single-threaded impl-side painting, which activates 110 // Only valid for single-threaded impl-side painting, which activates
111 // immediately and will try to draw again when content has finished. 111 // immediately and will try to draw again when content has finished.
112 DCHECK(!host_impl->proxy()->HasImplThread()); 112 DCHECK(!host_impl->proxy()->HasImplThread());
113 DCHECK(layer_tree_host()->settings().impl_side_painting); 113 DCHECK(host_impl->settings().impl_side_painting);
114 return draw_result; 114 return draw_result;
115 } 115 }
116 EXPECT_EQ(DRAW_SUCCESS, draw_result); 116 EXPECT_EQ(DRAW_SUCCESS, draw_result);
117 if (!times_to_lose_during_draw_) 117 if (!times_to_lose_during_draw_)
118 return draw_result; 118 return draw_result;
119 119
120 --times_to_lose_during_draw_; 120 --times_to_lose_during_draw_;
121 LoseContext(); 121 LoseContext();
122 122
123 times_to_fail_create_ = times_to_fail_recreate_; 123 times_to_fail_create_ = times_to_fail_recreate_;
(...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { 876 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override {
877 LayerTreeHostContextTest::DidActivateTreeOnThread(host_impl); 877 LayerTreeHostContextTest::DidActivateTreeOnThread(host_impl);
878 878
879 FakePictureLayerImpl* root_picture = NULL; 879 FakePictureLayerImpl* root_picture = NULL;
880 FakePictureLayerImpl* child_picture = NULL; 880 FakePictureLayerImpl* child_picture = NULL;
881 FakePictureLayerImpl* grandchild_picture = NULL; 881 FakePictureLayerImpl* grandchild_picture = NULL;
882 FakeContentLayerImpl* root_content = NULL; 882 FakeContentLayerImpl* root_content = NULL;
883 FakeContentLayerImpl* child_content = NULL; 883 FakeContentLayerImpl* child_content = NULL;
884 FakeContentLayerImpl* grandchild_content = NULL; 884 FakeContentLayerImpl* grandchild_content = NULL;
885 885
886 if (layer_tree_host()->settings().impl_side_painting) { 886 if (host_impl->settings().impl_side_painting) {
887 root_picture = static_cast<FakePictureLayerImpl*>( 887 root_picture = static_cast<FakePictureLayerImpl*>(
888 host_impl->active_tree()->root_layer()); 888 host_impl->active_tree()->root_layer());
889 child_picture = 889 child_picture =
890 static_cast<FakePictureLayerImpl*>(root_picture->children()[0]); 890 static_cast<FakePictureLayerImpl*>(root_picture->children()[0]);
891 grandchild_picture = 891 grandchild_picture =
892 static_cast<FakePictureLayerImpl*>(child_picture->children()[0]); 892 static_cast<FakePictureLayerImpl*>(child_picture->children()[0]);
893 893
894 } else { 894 } else {
895 root_content = static_cast<FakeContentLayerImpl*>( 895 root_content = static_cast<FakeContentLayerImpl*>(
896 host_impl->active_tree()->root_layer()); 896 host_impl->active_tree()->root_layer());
897 child_content = 897 child_content =
898 static_cast<FakeContentLayerImpl*>(root_content->children()[0]); 898 static_cast<FakeContentLayerImpl*>(root_content->children()[0]);
899 grandchild_content = 899 grandchild_content =
900 static_cast<FakeContentLayerImpl*>(child_content->children()[0]); 900 static_cast<FakeContentLayerImpl*>(child_content->children()[0]);
901 } 901 }
902 902
903 ++num_commits_; 903 ++num_commits_;
904 switch (num_commits_) { 904 switch (num_commits_) {
905 case 1: 905 case 1:
906 if (layer_tree_host()->settings().impl_side_painting) { 906 if (host_impl->settings().impl_side_painting) {
907 EXPECT_EQ(0u, root_picture->release_resources_count()); 907 EXPECT_EQ(0u, root_picture->release_resources_count());
908 EXPECT_EQ(0u, child_picture->release_resources_count()); 908 EXPECT_EQ(0u, child_picture->release_resources_count());
909 EXPECT_EQ(0u, grandchild_picture->release_resources_count()); 909 EXPECT_EQ(0u, grandchild_picture->release_resources_count());
910 } else { 910 } else {
911 EXPECT_EQ(0u, root_content->lost_output_surface_count()); 911 EXPECT_EQ(0u, root_content->lost_output_surface_count());
912 EXPECT_EQ(0u, child_content->lost_output_surface_count()); 912 EXPECT_EQ(0u, child_content->lost_output_surface_count());
913 EXPECT_EQ(0u, grandchild_content->lost_output_surface_count()); 913 EXPECT_EQ(0u, grandchild_content->lost_output_surface_count());
914 } 914 }
915 915
916 // Lose the context and struggle to recreate it. 916 // Lose the context and struggle to recreate it.
917 LoseContext(); 917 LoseContext();
918 times_to_fail_create_ = 1; 918 times_to_fail_create_ = 1;
919 break; 919 break;
920 case 2: 920 case 2:
921 if (layer_tree_host()->settings().impl_side_painting) { 921 if (host_impl->settings().impl_side_painting) {
922 EXPECT_TRUE(root_picture->release_resources_count()); 922 EXPECT_TRUE(root_picture->release_resources_count());
923 EXPECT_TRUE(child_picture->release_resources_count()); 923 EXPECT_TRUE(child_picture->release_resources_count());
924 EXPECT_TRUE(grandchild_picture->release_resources_count()); 924 EXPECT_TRUE(grandchild_picture->release_resources_count());
925 } else { 925 } else {
926 EXPECT_TRUE(root_content->lost_output_surface_count()); 926 EXPECT_TRUE(root_content->lost_output_surface_count());
927 EXPECT_TRUE(child_content->lost_output_surface_count()); 927 EXPECT_TRUE(child_content->lost_output_surface_count());
928 EXPECT_TRUE(grandchild_content->lost_output_surface_count()); 928 EXPECT_TRUE(grandchild_content->lost_output_surface_count());
929 } 929 }
930 930
931 EndTest(); 931 EndTest();
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
1320 } 1320 }
1321 }; 1321 };
1322 1322
1323 class UIResourceLostTestSimple : public UIResourceLostTest { 1323 class UIResourceLostTestSimple : public UIResourceLostTest {
1324 public: 1324 public:
1325 // This is called when the commit is complete and the new layer tree has been 1325 // This is called when the commit is complete and the new layer tree has been
1326 // activated. 1326 // activated.
1327 virtual void StepCompleteOnImplThread(LayerTreeHostImpl* impl) = 0; 1327 virtual void StepCompleteOnImplThread(LayerTreeHostImpl* impl) = 0;
1328 1328
1329 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override { 1329 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
1330 if (!layer_tree_host()->settings().impl_side_painting) { 1330 if (!impl->settings().impl_side_painting) {
1331 StepCompleteOnImplThread(impl); 1331 StepCompleteOnImplThread(impl);
1332 PostStepCompleteToMainThread(); 1332 PostStepCompleteToMainThread();
1333 ++time_step_; 1333 ++time_step_;
1334 } 1334 }
1335 } 1335 }
1336 1336
1337 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override { 1337 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override {
1338 if (layer_tree_host()->settings().impl_side_painting) { 1338 if (impl->settings().impl_side_painting) {
1339 StepCompleteOnImplThread(impl); 1339 StepCompleteOnImplThread(impl);
1340 PostStepCompleteToMainThread(); 1340 PostStepCompleteToMainThread();
1341 ++time_step_; 1341 ++time_step_;
1342 } 1342 }
1343 } 1343 }
1344 }; 1344 };
1345 1345
1346 // Losing context after an UI resource has been created. 1346 // Losing context after an UI resource has been created.
1347 class UIResourceLostAfterCommit : public UIResourceLostTestSimple { 1347 class UIResourceLostAfterCommit : public UIResourceLostTestSimple {
1348 public: 1348 public:
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
1792 void AfterTest() override {} 1792 void AfterTest() override {}
1793 1793
1794 bool deferred_; 1794 bool deferred_;
1795 }; 1795 };
1796 1796
1797 SINGLE_AND_MULTI_THREAD_TEST_F( 1797 SINGLE_AND_MULTI_THREAD_TEST_F(
1798 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame); 1798 LayerTreeHostContextTestLoseAfterSendingBeginMainFrame);
1799 1799
1800 } // namespace 1800 } // namespace
1801 } // namespace cc 1801 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698