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

Side by Side Diff: content/browser/renderer_host/offscreen_canvas_provider_impl_unittest.cc

Issue 2932893002: BrowserMainLoop owns FrameSinkManagerHost (Closed)
Patch Set: Added a comment that works everywhere Created 3 years, 6 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "content/browser/renderer_host/offscreen_canvas_provider_impl.h" 5 #include "content/browser/renderer_host/offscreen_canvas_provider_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 void DeleteOffscreenCanvasProviderImpl() { provider_.reset(); } 140 void DeleteOffscreenCanvasProviderImpl() { provider_.reset(); }
141 141
142 void RunUntilIdle() { base::RunLoop().RunUntilIdle(); } 142 void RunUntilIdle() { base::RunLoop().RunUntilIdle(); }
143 143
144 protected: 144 protected:
145 void SetUp() override { 145 void SetUp() override {
146 #if !defined(OS_ANDROID) 146 #if !defined(OS_ANDROID)
147 ImageTransportFactory::InitializeForUnitTests( 147 ImageTransportFactory::InitializeForUnitTests(
148 std::unique_ptr<ImageTransportFactory>( 148 std::unique_ptr<ImageTransportFactory>(
149 new NoTransportImageTransportFactory)); 149 new NoTransportImageTransportFactory));
150 ImageTransportFactory::GetInstance()
151 ->GetContextFactoryPrivate()
152 ->GetFrameSinkManagerHost()
153 ->ConnectToFrameSinkManager();
154 #endif 150 #endif
155 provider_ = 151 frame_sink_manager_host_ = base::MakeUnique<viz::FrameSinkManagerHost>();
156 base::MakeUnique<OffscreenCanvasProviderImpl>(kRendererClientId); 152 frame_sink_manager_host_->ConnectToFrameSinkManager();
153 provider_ = base::MakeUnique<OffscreenCanvasProviderImpl>(
154 frame_sink_manager_host_.get(), kRendererClientId);
157 } 155 }
158 void TearDown() override { 156 void TearDown() override {
159 provider_.reset(); 157 provider_.reset();
158 frame_sink_manager_host_.reset();
160 #if !defined(OS_ANDROID) 159 #if !defined(OS_ANDROID)
161 ImageTransportFactory::Terminate(); 160 ImageTransportFactory::Terminate();
162 #endif 161 #endif
163 } 162 }
164 163
165 private: 164 private:
166 base::MessageLoop message_loop_; 165 base::MessageLoop message_loop_;
166 std::unique_ptr<viz::FrameSinkManagerHost> frame_sink_manager_host_;
167 std::unique_ptr<OffscreenCanvasProviderImpl> provider_; 167 std::unique_ptr<OffscreenCanvasProviderImpl> provider_;
168 }; 168 };
169 169
170 // Mimics the workflow of OffscreenCanvas.commit() on renderer process. 170 // Mimics the workflow of OffscreenCanvas.commit() on renderer process.
171 TEST_F(OffscreenCanvasProviderImplTest, 171 TEST_F(OffscreenCanvasProviderImplTest,
172 SingleHTMLCanvasElementTransferToOffscreen) { 172 SingleHTMLCanvasElementTransferToOffscreen) {
173 // Mimic connection from the renderer main thread to browser. 173 // Mimic connection from the renderer main thread to browser.
174 StubOffscreenCanvasSurfaceClient surface_client; 174 StubOffscreenCanvasSurfaceClient surface_client;
175 blink::mojom::OffscreenCanvasSurfacePtr surface; 175 blink::mojom::OffscreenCanvasSurfacePtr surface;
176 provider()->CreateOffscreenCanvasSurface(kFrameSinkParent, kFrameSinkA, 176 provider()->CreateOffscreenCanvasSurface(kFrameSinkParent, kFrameSinkA,
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 344
345 // Mimic closing second connection from the renderer. 345 // Mimic closing second connection from the renderer.
346 surface_b.reset(); 346 surface_b.reset();
347 347
348 RunUntilIdle(); 348 RunUntilIdle();
349 349
350 EXPECT_THAT(GetAllCanvases(), IsEmpty()); 350 EXPECT_THAT(GetAllCanvases(), IsEmpty());
351 } 351 }
352 352
353 } // namespace content 353 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698