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

Side by Side Diff: content/browser/frame_host/render_widget_host_view_guest_unittest.cc

Issue 2297933002: blimp: Set up the CompositorDependencies for blimp in Chrome. (Closed)
Patch Set: retry gpu process failures after crbug.com/643282 Created 4 years, 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/frame_host/render_widget_host_view_guest.h" 5 #include "content/browser/frame_host/render_widget_host_view_guest.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 14 matching lines...) Expand all
25 #include "content/public/browser/browser_plugin_guest_delegate.h" 25 #include "content/public/browser/browser_plugin_guest_delegate.h"
26 #include "content/public/browser/render_widget_host_view.h" 26 #include "content/public/browser/render_widget_host_view.h"
27 #include "content/public/test/mock_render_process_host.h" 27 #include "content/public/test/mock_render_process_host.h"
28 #include "content/public/test/test_browser_context.h" 28 #include "content/public/test/test_browser_context.h"
29 #include "content/test/test_render_view_host.h" 29 #include "content/test/test_render_view_host.h"
30 #include "content/test/test_web_contents.h" 30 #include "content/test/test_web_contents.h"
31 #include "testing/gtest/include/gtest/gtest.h" 31 #include "testing/gtest/include/gtest/gtest.h"
32 32
33 #if defined(OS_ANDROID) 33 #if defined(OS_ANDROID)
34 #include "content/browser/renderer_host/context_provider_factory_impl_android.h" 34 #include "content/browser/renderer_host/context_provider_factory_impl_android.h"
35 #include "content/test/mock_gpu_channel_establish_factory.h"
35 #endif 36 #endif
36 37
37 namespace content { 38 namespace content {
38 namespace { 39 namespace {
39 class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate { 40 class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate {
40 public: 41 public:
41 MockRenderWidgetHostDelegate() {} 42 MockRenderWidgetHostDelegate() {}
42 ~MockRenderWidgetHostDelegate() override {} 43 ~MockRenderWidgetHostDelegate() override {}
43 44
44 private: 45 private:
45 // RenderWidgetHostDelegate: 46 // RenderWidgetHostDelegate:
46 void Cut() override {} 47 void Cut() override {}
47 void Copy() override {} 48 void Copy() override {}
48 void Paste() override {} 49 void Paste() override {}
49 void SelectAll() override {} 50 void SelectAll() override {}
50 }; 51 };
51 52
52 class RenderWidgetHostViewGuestTest : public testing::Test { 53 class RenderWidgetHostViewGuestTest : public testing::Test {
53 public: 54 public:
54 RenderWidgetHostViewGuestTest() {} 55 RenderWidgetHostViewGuestTest() {}
55 56
56 void SetUp() override { 57 void SetUp() override {
57 #if !defined(OS_ANDROID) 58 #if !defined(OS_ANDROID)
58 ImageTransportFactory::InitializeForUnitTests( 59 ImageTransportFactory::InitializeForUnitTests(
59 std::unique_ptr<ImageTransportFactory>( 60 std::unique_ptr<ImageTransportFactory>(
60 new NoTransportImageTransportFactory)); 61 new NoTransportImageTransportFactory));
61 #else 62 #else
63 ContextProviderFactoryImpl::Initialize(&gpu_channel_factory_);
62 ui::ContextProviderFactory::SetInstance( 64 ui::ContextProviderFactory::SetInstance(
63 ContextProviderFactoryImpl::GetInstance()); 65 ContextProviderFactoryImpl::GetInstance());
64 #endif 66 #endif
65 browser_context_.reset(new TestBrowserContext); 67 browser_context_.reset(new TestBrowserContext);
66 MockRenderProcessHost* process_host = 68 MockRenderProcessHost* process_host =
67 new MockRenderProcessHost(browser_context_.get()); 69 new MockRenderProcessHost(browser_context_.get());
68 int32_t routing_id = process_host->GetNextRoutingID(); 70 int32_t routing_id = process_host->GetNextRoutingID();
69 widget_host_ = 71 widget_host_ =
70 new RenderWidgetHostImpl(&delegate_, process_host, routing_id, false); 72 new RenderWidgetHostImpl(&delegate_, process_host, routing_id, false);
71 view_ = new RenderWidgetHostViewGuest( 73 view_ = new RenderWidgetHostViewGuest(
72 widget_host_, NULL, 74 widget_host_, NULL,
73 (new TestRenderWidgetHostView(widget_host_))->GetWeakPtr()); 75 (new TestRenderWidgetHostView(widget_host_))->GetWeakPtr());
74 } 76 }
75 77
76 void TearDown() override { 78 void TearDown() override {
77 if (view_) 79 if (view_)
78 view_->Destroy(); 80 view_->Destroy();
79 delete widget_host_; 81 delete widget_host_;
80 82
81 browser_context_.reset(); 83 browser_context_.reset();
82 84
83 message_loop_.task_runner()->DeleteSoon(FROM_HERE, 85 message_loop_.task_runner()->DeleteSoon(FROM_HERE,
84 browser_context_.release()); 86 browser_context_.release());
85 base::RunLoop().RunUntilIdle(); 87 base::RunLoop().RunUntilIdle();
86 #if !defined(OS_ANDROID) 88 #if !defined(OS_ANDROID)
87 ImageTransportFactory::Terminate(); 89 ImageTransportFactory::Terminate();
88 #else 90 #else
89 ui::ContextProviderFactory::SetInstance(nullptr); 91 ui::ContextProviderFactory::SetInstance(nullptr);
92 ContextProviderFactoryImpl::Terminate();
90 #endif 93 #endif
91 } 94 }
92 95
93 protected: 96 protected:
94 base::MessageLoopForUI message_loop_; 97 base::MessageLoopForUI message_loop_;
95 std::unique_ptr<BrowserContext> browser_context_; 98 std::unique_ptr<BrowserContext> browser_context_;
96 MockRenderWidgetHostDelegate delegate_; 99 MockRenderWidgetHostDelegate delegate_;
97 100
98 // Tests should set these to NULL if they've already triggered their 101 // Tests should set these to NULL if they've already triggered their
99 // destruction. 102 // destruction.
100 RenderWidgetHostImpl* widget_host_; 103 RenderWidgetHostImpl* widget_host_;
101 RenderWidgetHostViewGuest* view_; 104 RenderWidgetHostViewGuest* view_;
102 105
106 #if defined(OS_ANDROID)
107 MockGpuChannelEstablishFactory gpu_channel_factory_;
108 #endif
109
103 private: 110 private:
104 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewGuestTest); 111 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewGuestTest);
105 }; 112 };
106 113
107 } // namespace 114 } // namespace
108 115
109 TEST_F(RenderWidgetHostViewGuestTest, VisibilityTest) { 116 TEST_F(RenderWidgetHostViewGuestTest, VisibilityTest) {
110 view_->Show(); 117 view_->Show();
111 ASSERT_TRUE(view_->IsShowing()); 118 ASSERT_TRUE(view_->IsShowing());
112 119
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 : public testing::Test { 166 : public testing::Test {
160 public: 167 public:
161 RenderWidgetHostViewGuestSurfaceTest() 168 RenderWidgetHostViewGuestSurfaceTest()
162 : widget_host_(nullptr), view_(nullptr) {} 169 : widget_host_(nullptr), view_(nullptr) {}
163 170
164 void SetUp() override { 171 void SetUp() override {
165 #if !defined(OS_ANDROID) 172 #if !defined(OS_ANDROID)
166 ImageTransportFactory::InitializeForUnitTests( 173 ImageTransportFactory::InitializeForUnitTests(
167 std::unique_ptr<ImageTransportFactory>( 174 std::unique_ptr<ImageTransportFactory>(
168 new NoTransportImageTransportFactory)); 175 new NoTransportImageTransportFactory));
176 #else
177 ContextProviderFactoryImpl::Initialize(&gpu_channel_factory_);
178 ui::ContextProviderFactory::SetInstance(
179 ContextProviderFactoryImpl::GetInstance());
169 #endif 180 #endif
170 browser_context_.reset(new TestBrowserContext); 181 browser_context_.reset(new TestBrowserContext);
171 MockRenderProcessHost* process_host = 182 MockRenderProcessHost* process_host =
172 new MockRenderProcessHost(browser_context_.get()); 183 new MockRenderProcessHost(browser_context_.get());
173 web_contents_.reset( 184 web_contents_.reset(
174 TestWebContents::Create(browser_context_.get(), nullptr)); 185 TestWebContents::Create(browser_context_.get(), nullptr));
175 // We don't own the BPG, the WebContents does. 186 // We don't own the BPG, the WebContents does.
176 browser_plugin_guest_ = new TestBrowserPluginGuest( 187 browser_plugin_guest_ = new TestBrowserPluginGuest(
177 web_contents_.get(), &browser_plugin_guest_delegate_); 188 web_contents_.get(), &browser_plugin_guest_delegate_);
178 189
179 int32_t routing_id = process_host->GetNextRoutingID(); 190 int32_t routing_id = process_host->GetNextRoutingID();
180 widget_host_ = 191 widget_host_ =
181 new RenderWidgetHostImpl(&delegate_, process_host, routing_id, false); 192 new RenderWidgetHostImpl(&delegate_, process_host, routing_id, false);
182 view_ = new RenderWidgetHostViewGuest( 193 view_ = new RenderWidgetHostViewGuest(
183 widget_host_, browser_plugin_guest_, 194 widget_host_, browser_plugin_guest_,
184 (new TestRenderWidgetHostView(widget_host_))->GetWeakPtr()); 195 (new TestRenderWidgetHostView(widget_host_))->GetWeakPtr());
185 } 196 }
186 197
187 void TearDown() override { 198 void TearDown() override {
188 if (view_) 199 if (view_)
189 view_->Destroy(); 200 view_->Destroy();
190 delete widget_host_; 201 delete widget_host_;
191 202
192 // It's important to make sure that the view finishes destructing before 203 // It's important to make sure that the view finishes destructing before
193 // we hit the destructor for the TestBrowserThreadBundle, so run the message 204 // we hit the destructor for the TestBrowserThreadBundle, so run the message
194 // loop here. 205 // loop here.
195 base::RunLoop().RunUntilIdle(); 206 base::RunLoop().RunUntilIdle();
196 #if !defined(OS_ANDROID) 207 #if !defined(OS_ANDROID)
197 ImageTransportFactory::Terminate(); 208 ImageTransportFactory::Terminate();
209 #else
210 ui::ContextProviderFactory::SetInstance(nullptr);
211 ContextProviderFactoryImpl::Terminate();
198 #endif 212 #endif
199 } 213 }
200 214
201 cc::SurfaceId surface_id() { 215 cc::SurfaceId surface_id() {
202 DCHECK(view_); 216 DCHECK(view_);
203 return static_cast<RenderWidgetHostViewChildFrame*>(view_)->surface_id_; 217 return static_cast<RenderWidgetHostViewChildFrame*>(view_)->surface_id_;
204 } 218 }
205 219
206 protected: 220 protected:
207 TestBrowserThreadBundle thread_bundle_; 221 TestBrowserThreadBundle thread_bundle_;
208 std::unique_ptr<BrowserContext> browser_context_; 222 std::unique_ptr<BrowserContext> browser_context_;
209 MockRenderWidgetHostDelegate delegate_; 223 MockRenderWidgetHostDelegate delegate_;
210 BrowserPluginGuestDelegate browser_plugin_guest_delegate_; 224 BrowserPluginGuestDelegate browser_plugin_guest_delegate_;
211 std::unique_ptr<TestWebContents> web_contents_; 225 std::unique_ptr<TestWebContents> web_contents_;
212 TestBrowserPluginGuest* browser_plugin_guest_; 226 TestBrowserPluginGuest* browser_plugin_guest_;
213 227
228 #if defined(OS_ANDROID)
229 MockGpuChannelEstablishFactory gpu_channel_factory_;
230 #endif
231
214 // Tests should set these to NULL if they've already triggered their 232 // Tests should set these to NULL if they've already triggered their
215 // destruction. 233 // destruction.
216 RenderWidgetHostImpl* widget_host_; 234 RenderWidgetHostImpl* widget_host_;
217 RenderWidgetHostViewGuest* view_; 235 RenderWidgetHostViewGuest* view_;
218 236
219 private: 237 private:
220 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewGuestSurfaceTest); 238 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewGuestSurfaceTest);
221 }; 239 };
222 240
223 namespace { 241 namespace {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 311
294 browser_plugin_guest_->set_attached(false); 312 browser_plugin_guest_->set_attached(false);
295 browser_plugin_guest_->ResetTestData(); 313 browser_plugin_guest_->ResetTestData();
296 314
297 view_->OnSwapCompositorFrame( 315 view_->OnSwapCompositorFrame(
298 0, CreateDelegatedFrame(scale_factor, view_size, view_rect)); 316 0, CreateDelegatedFrame(scale_factor, view_size, view_rect));
299 EXPECT_TRUE(surface_id().is_null()); 317 EXPECT_TRUE(surface_id().is_null());
300 } 318 }
301 319
302 } // namespace content 320 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698