Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |