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

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

Issue 2932893002: BrowserMainLoop owns FrameSinkManagerHost (Closed)
Patch Set: Fix offscreen canvas unit tests 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>();
danakj 2017/06/09 22:43:37 Please destroy things in TearDown that are created
Fady Samuel 2017/06/09 22:52:39 Done.
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();
160 #if !defined(OS_ANDROID) 158 #if !defined(OS_ANDROID)
161 ImageTransportFactory::Terminate(); 159 ImageTransportFactory::Terminate();
162 #endif 160 #endif
163 } 161 }
164 162
165 private: 163 private:
166 base::MessageLoop message_loop_; 164 base::MessageLoop message_loop_;
165 std::unique_ptr<viz::FrameSinkManagerHost> frame_sink_manager_host_;
167 std::unique_ptr<OffscreenCanvasProviderImpl> provider_; 166 std::unique_ptr<OffscreenCanvasProviderImpl> provider_;
168 }; 167 };
169 168
170 // Mimics the workflow of OffscreenCanvas.commit() on renderer process. 169 // Mimics the workflow of OffscreenCanvas.commit() on renderer process.
171 TEST_F(OffscreenCanvasProviderImplTest, 170 TEST_F(OffscreenCanvasProviderImplTest,
172 SingleHTMLCanvasElementTransferToOffscreen) { 171 SingleHTMLCanvasElementTransferToOffscreen) {
173 // Mimic connection from the renderer main thread to browser. 172 // Mimic connection from the renderer main thread to browser.
174 StubOffscreenCanvasSurfaceClient surface_client; 173 StubOffscreenCanvasSurfaceClient surface_client;
175 blink::mojom::OffscreenCanvasSurfacePtr surface; 174 blink::mojom::OffscreenCanvasSurfacePtr surface;
176 provider()->CreateOffscreenCanvasSurface(kFrameSinkParent, kFrameSinkA, 175 provider()->CreateOffscreenCanvasSurface(kFrameSinkParent, kFrameSinkA,
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 343
345 // Mimic closing second connection from the renderer. 344 // Mimic closing second connection from the renderer.
346 surface_b.reset(); 345 surface_b.reset();
347 346
348 RunUntilIdle(); 347 RunUntilIdle();
349 348
350 EXPECT_THAT(GetAllCanvases(), IsEmpty()); 349 EXPECT_THAT(GetAllCanvases(), IsEmpty());
351 } 350 }
352 351
353 } // namespace content 352 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698