OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/plugin_service.h" | 5 #include "content/browser/plugin_service.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "chrome/browser/ui/browser.h" | 10 #include "chrome/browser/ui/browser.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 ASSERT_EQ(kNPAPITestPluginMimeType, info.mime_types[0].mime_type); | 68 ASSERT_EQ(kNPAPITestPluginMimeType, info.mime_types[0].mime_type); |
69 set_plugin_info_called_ = true; | 69 set_plugin_info_called_ = true; |
70 } | 70 } |
71 | 71 |
72 MOCK_METHOD0(OnError, void()); | 72 MOCK_METHOD0(OnError, void()); |
73 | 73 |
74 // Listener implementation. | 74 // Listener implementation. |
75 MOCK_METHOD1(OnMessageReceived, bool(const IPC::Message& message)); | 75 MOCK_METHOD1(OnMessageReceived, bool(const IPC::Message& message)); |
76 void OnChannelConnected(int32 peer_pid) OVERRIDE { | 76 void OnChannelConnected(int32 peer_pid) OVERRIDE { |
77 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 77 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
78 new MessageLoop::QuitTask()); | 78 MessageLoop::QuitClosure()); |
79 } | 79 } |
80 MOCK_METHOD0(OnChannelError, void()); | 80 MOCK_METHOD0(OnChannelError, void()); |
81 MOCK_METHOD0(OnChannelDenied, void()); | 81 MOCK_METHOD0(OnChannelDenied, void()); |
82 MOCK_METHOD0(OnChannelListenError, void()); | 82 MOCK_METHOD0(OnChannelListenError, void()); |
83 | 83 |
84 private: | 84 private: |
85 const content::ResourceContext& context_; | 85 const content::ResourceContext& context_; |
86 IPC::Channel* channel_; | 86 IPC::Channel* channel_; |
87 bool set_plugin_info_called_; | 87 bool set_plugin_info_called_; |
88 DISALLOW_COPY_AND_ASSIGN(MockPluginProcessHostClient); | 88 DISALLOW_COPY_AND_ASSIGN(MockPluginProcessHostClient); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 const content::ResourceContext& context_; | 145 const content::ResourceContext& context_; |
146 bool get_resource_context_called_; | 146 bool get_resource_context_called_; |
147 | 147 |
148 DISALLOW_COPY_AND_ASSIGN(MockCanceledPluginServiceClient); | 148 DISALLOW_COPY_AND_ASSIGN(MockCanceledPluginServiceClient); |
149 }; | 149 }; |
150 | 150 |
151 void DoNothing() {} | 151 void DoNothing() {} |
152 | 152 |
153 void QuitUIMessageLoopFromIOThread() { | 153 void QuitUIMessageLoopFromIOThread() { |
154 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 154 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
155 new MessageLoop::QuitTask()); | 155 MessageLoop::QuitClosure()); |
156 } | 156 } |
157 | 157 |
158 void OpenChannelAndThenCancel(PluginProcessHost::Client* client) { | 158 void OpenChannelAndThenCancel(PluginProcessHost::Client* client) { |
159 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 159 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
160 // Start opening the channel | 160 // Start opening the channel |
161 PluginService::GetInstance()->OpenChannelToNpapiPlugin( | 161 PluginService::GetInstance()->OpenChannelToNpapiPlugin( |
162 0, 0, GURL(), GURL(), kNPAPITestPluginMimeType, client); | 162 0, 0, GURL(), GURL(), kNPAPITestPluginMimeType, client); |
163 // Immediately cancel it. This is guaranteed to work since PluginService needs | 163 // Immediately cancel it. This is guaranteed to work since PluginService needs |
164 // to consult its filter on the FILE thread. | 164 // to consult its filter on the FILE thread. |
165 PluginService::GetInstance()->CancelOpenChannelToNpapiPlugin(client); | 165 PluginService::GetInstance()->CancelOpenChannelToNpapiPlugin(client); |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
273 virtual void OnFoundPluginProcessHost(PluginProcessHost* host) OVERRIDE { | 273 virtual void OnFoundPluginProcessHost(PluginProcessHost* host) OVERRIDE { |
274 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 274 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
275 set_on_found_plugin_process_host_called(); | 275 set_on_found_plugin_process_host_called(); |
276 set_host(host); | 276 set_host(host); |
277 } | 277 } |
278 | 278 |
279 virtual void OnSentPluginChannelRequest() OVERRIDE { | 279 virtual void OnSentPluginChannelRequest() OVERRIDE { |
280 on_sent_plugin_channel_request_called_ = true; | 280 on_sent_plugin_channel_request_called_ = true; |
281 host()->CancelSentRequest(this); | 281 host()->CancelSentRequest(this); |
282 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 282 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
283 new MessageLoop::QuitTask()); | 283 MessageLoop::QuitClosure()); |
284 } | 284 } |
285 | 285 |
286 bool on_sent_plugin_channel_request_called() const { | 286 bool on_sent_plugin_channel_request_called() const { |
287 return on_sent_plugin_channel_request_called_; | 287 return on_sent_plugin_channel_request_called_; |
288 } | 288 } |
289 | 289 |
290 private: | 290 private: |
291 bool on_sent_plugin_channel_request_called_; | 291 bool on_sent_plugin_channel_request_called_; |
292 | 292 |
293 DISALLOW_COPY_AND_ASSIGN(MockCanceledAfterSentPluginProcessHostClient); | 293 DISALLOW_COPY_AND_ASSIGN(MockCanceledAfterSentPluginProcessHostClient); |
294 }; | 294 }; |
295 | 295 |
296 // Should not attempt to open a channel, since it should be canceled early on. | 296 // Should not attempt to open a channel, since it should be canceled early on. |
297 IN_PROC_BROWSER_TEST_F( | 297 IN_PROC_BROWSER_TEST_F( |
298 PluginServiceTest, CancelAfterSentOpenChannelToPluginProcessHost) { | 298 PluginServiceTest, CancelAfterSentOpenChannelToPluginProcessHost) { |
299 ::testing::StrictMock<MockCanceledAfterSentPluginProcessHostClient> | 299 ::testing::StrictMock<MockCanceledAfterSentPluginProcessHostClient> |
300 mock_client(browser()->profile()->GetResourceContext()); | 300 mock_client(browser()->profile()->GetResourceContext()); |
301 BrowserThread::PostTask( | 301 BrowserThread::PostTask( |
302 BrowserThread::IO, FROM_HERE, | 302 BrowserThread::IO, FROM_HERE, |
303 base::Bind(&OpenChannel, &mock_client)); | 303 base::Bind(&OpenChannel, &mock_client)); |
304 ui_test_utils::RunMessageLoop(); | 304 ui_test_utils::RunMessageLoop(); |
305 EXPECT_TRUE(mock_client.get_resource_context_called()); | 305 EXPECT_TRUE(mock_client.get_resource_context_called()); |
306 EXPECT_TRUE(mock_client.set_plugin_info_called()); | 306 EXPECT_TRUE(mock_client.set_plugin_info_called()); |
307 EXPECT_TRUE(mock_client.on_found_plugin_process_host_called()); | 307 EXPECT_TRUE(mock_client.on_found_plugin_process_host_called()); |
308 EXPECT_TRUE(mock_client.on_sent_plugin_channel_request_called()); | 308 EXPECT_TRUE(mock_client.on_sent_plugin_channel_request_called()); |
309 } | 309 } |
310 | 310 |
311 } // namespace | 311 } // namespace |
OLD | NEW |