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

Side by Side Diff: content/browser/compositor/reflector_impl_unittest.cc

Issue 900133002: Revert of Make Reflector Use Main Thread MessageLoop when in SingleThread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@turnitoff
Patch Set: Created 5 years, 10 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 | « content/browser/compositor/reflector_impl.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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "base/run_loop.h" 6 #include "base/run_loop.h"
7 #include "base/single_thread_task_runner.h" 7 #include "base/single_thread_task_runner.h"
8 #include "cc/test/fake_output_surface_client.h" 8 #include "cc/test/fake_output_surface_client.h"
9 #include "cc/test/test_context_provider.h" 9 #include "cc/test/test_context_provider.h"
10 #include "cc/test/test_web_graphics_context_3d.h" 10 #include "cc/test/test_web_graphics_context_3d.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 cc::TestWebGraphicsContext3D::Create().Pass()); 87 cc::TestWebGraphicsContext3D::Create().Pass());
88 output_surface_ = 88 output_surface_ =
89 scoped_ptr<TestOutputSurface>( 89 scoped_ptr<TestOutputSurface>(
90 new TestOutputSurface(context_provider_, 1, &surface_map_, 90 new TestOutputSurface(context_provider_, 1, &surface_map_,
91 compositor_->vsync_manager())).Pass(); 91 compositor_->vsync_manager())).Pass();
92 CHECK(output_surface_->BindToClient(&output_surface_client_)); 92 CHECK(output_surface_->BindToClient(&output_surface_client_));
93 93
94 mirroring_layer_.reset(new ui::Layer()); 94 mirroring_layer_.reset(new ui::Layer());
95 gfx::Size size = output_surface_->SurfaceSize(); 95 gfx::Size size = output_surface_->SurfaceSize();
96 mirroring_layer_->SetBounds(gfx::Rect(size.width(), size.height())); 96 mirroring_layer_->SetBounds(gfx::Rect(size.width(), size.height()));
97 }
98 97
99 void SetUpReflector(bool threaded) {
100 int32 surface_id = 1; 98 int32 surface_id = 1;
101 99 reflector_ = new ReflectorImpl(compositor_.get(), mirroring_layer_.get(),
102 if (threaded) { 100 &surface_map_, proxy_.get(), surface_id);
103 reflector_ = new ReflectorImpl(compositor_.get(), mirroring_layer_.get(),
104 &surface_map_, proxy_.get(), surface_id);
105 } else {
106 reflector_ = new ReflectorImpl(compositor_.get(), mirroring_layer_.get(),
107 &surface_map_, NULL, surface_id);
108 }
109 } 101 }
110 102
111 void TearDown() override { 103 void TearDown() override {
112 cc::TextureMailbox mailbox; 104 cc::TextureMailbox mailbox;
113 scoped_ptr<cc::SingleReleaseCallback> release; 105 scoped_ptr<cc::SingleReleaseCallback> release;
114 if (mirroring_layer_->PrepareTextureMailbox(&mailbox, &release, false)) { 106 if (mirroring_layer_->PrepareTextureMailbox(&mailbox, &release, false)) {
115 release->Run(0, false); 107 release->Run(0, false);
116 } 108 }
117 compositor_.reset(); 109 compositor_.reset();
118 ui::TerminateContextFactoryForTests(); 110 ui::TerminateContextFactoryForTests();
(...skipping 15 matching lines...) Expand all
134 scoped_ptr<base::MessageLoop> message_loop_; 126 scoped_ptr<base::MessageLoop> message_loop_;
135 scoped_refptr<base::MessageLoopProxy> proxy_; 127 scoped_refptr<base::MessageLoopProxy> proxy_;
136 scoped_ptr<ui::Compositor> compositor_; 128 scoped_ptr<ui::Compositor> compositor_;
137 scoped_ptr<ui::Layer> mirroring_layer_; 129 scoped_ptr<ui::Layer> mirroring_layer_;
138 scoped_refptr<ReflectorImpl> reflector_; 130 scoped_refptr<ReflectorImpl> reflector_;
139 scoped_ptr<TestOutputSurface> output_surface_; 131 scoped_ptr<TestOutputSurface> output_surface_;
140 }; 132 };
141 133
142 namespace { 134 namespace {
143 TEST_F(ReflectorImplTest, CheckNormalOutputSurface) { 135 TEST_F(ReflectorImplTest, CheckNormalOutputSurface) {
144 bool threaded = true;
145 SetUpReflector(threaded);
146 output_surface_->SetFlip(false); 136 output_surface_->SetFlip(false);
147 Init(); 137 Init();
148 UpdateTexture(); 138 UpdateTexture();
149 EXPECT_TRUE(mirroring_layer_->TextureFlipped()); 139 EXPECT_TRUE(mirroring_layer_->TextureFlipped());
150 EXPECT_EQ(SkRegion(SkIRect::MakeXYWH( 140 EXPECT_EQ(SkRegion(SkIRect::MakeXYWH(
151 0, output_surface_->SurfaceSize().height() - kSubRect.height(), 141 0, output_surface_->SurfaceSize().height() - kSubRect.height(),
152 kSubRect.width(), kSubRect.height())), 142 kSubRect.width(), kSubRect.height())),
153 mirroring_layer_->damaged_region()); 143 mirroring_layer_->damaged_region());
154 } 144 }
155 145
156 TEST_F(ReflectorImplTest, CheckInvertedOutputSurface) { 146 TEST_F(ReflectorImplTest, CheckInvertedOutputSurface) {
157 bool threaded = true;
158 SetUpReflector(threaded);
159 output_surface_->SetFlip(true); 147 output_surface_->SetFlip(true);
160 Init(); 148 Init();
161 UpdateTexture(); 149 UpdateTexture();
162 EXPECT_FALSE(mirroring_layer_->TextureFlipped());
163 EXPECT_EQ(SkRegion(kSkSubRect), mirroring_layer_->damaged_region());
164 }
165
166 TEST_F(ReflectorImplTest, CheckNormalOutputSurface_SingleThread) {
167 bool threaded = false;
168 SetUpReflector(threaded);
169 output_surface_->SetFlip(false);
170 Init();
171 UpdateTexture();
172 EXPECT_TRUE(mirroring_layer_->TextureFlipped());
173 EXPECT_EQ(SkRegion(SkIRect::MakeXYWH(
174 0, output_surface_->SurfaceSize().height() - kSubRect.height(),
175 kSubRect.width(), kSubRect.height())),
176 mirroring_layer_->damaged_region());
177 }
178
179 TEST_F(ReflectorImplTest, CheckInvertedOutputSurface_SingleThread) {
180 bool threaded = false;
181 SetUpReflector(threaded);
182 output_surface_->SetFlip(true);
183 Init();
184 UpdateTexture();
185 EXPECT_FALSE(mirroring_layer_->TextureFlipped()); 150 EXPECT_FALSE(mirroring_layer_->TextureFlipped());
186 EXPECT_EQ(SkRegion(kSkSubRect), mirroring_layer_->damaged_region()); 151 EXPECT_EQ(SkRegion(kSkSubRect), mirroring_layer_->damaged_region());
187 } 152 }
188 153
189 } // namespace 154 } // namespace
190 } // namespace content 155 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/compositor/reflector_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698