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

Side by Side Diff: content/renderer/pepper/pepper_plugin_delegate_impl.cc

Issue 9609008: Implemented Browser Plugin (NOT FOR REVIEW) (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Updated according to creis@'s comments Created 8 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/renderer/pepper/pepper_plugin_delegate_impl.h" 5 #include "content/renderer/pepper/pepper_plugin_delegate_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <cstddef> 8 #include <cstddef>
9 #include <map> 9 #include <map>
10 #include <queue> 10 #include <queue>
(...skipping 16 matching lines...) Expand all
27 #include "content/common/pepper_file_messages.h" 27 #include "content/common/pepper_file_messages.h"
28 #include "content/common/pepper_plugin_registry.h" 28 #include "content/common/pepper_plugin_registry.h"
29 #include "content/common/pepper_messages.h" 29 #include "content/common/pepper_messages.h"
30 #include "content/common/quota_dispatcher.h" 30 #include "content/common/quota_dispatcher.h"
31 #include "content/common/view_messages.h" 31 #include "content/common/view_messages.h"
32 #include "content/public/common/content_switches.h" 32 #include "content/public/common/content_switches.h"
33 #include "content/public/common/context_menu_params.h" 33 #include "content/public/common/context_menu_params.h"
34 #include "content/public/common/media_stream_request.h" 34 #include "content/public/common/media_stream_request.h"
35 #include "content/public/common/referrer.h" 35 #include "content/public/common/referrer.h"
36 #include "content/public/renderer/content_renderer_client.h" 36 #include "content/public/renderer/content_renderer_client.h"
37 #include "content/renderer/browser_plugin/browser_plugin_constants.h"
38 #include "content/renderer/browser_plugin/browser_plugin_registry.h"
37 #include "content/renderer/gamepad_shared_memory_reader.h" 39 #include "content/renderer/gamepad_shared_memory_reader.h"
38 #include "content/renderer/media/audio_hardware.h" 40 #include "content/renderer/media/audio_hardware.h"
39 #include "content/renderer/media/media_stream_dispatcher.h" 41 #include "content/renderer/media/media_stream_dispatcher.h"
40 #include "content/renderer/media/pepper_platform_video_decoder_impl.h" 42 #include "content/renderer/media/pepper_platform_video_decoder_impl.h"
41 #include "content/renderer/p2p/p2p_transport_impl.h" 43 #include "content/renderer/p2p/p2p_transport_impl.h"
42 #include "content/renderer/p2p/socket_dispatcher.h" 44 #include "content/renderer/p2p/socket_dispatcher.h"
43 #include "content/renderer/pepper/pepper_broker_impl.h" 45 #include "content/renderer/pepper/pepper_broker_impl.h"
44 #include "content/renderer/pepper/pepper_device_enumeration_event_handler.h" 46 #include "content/renderer/pepper/pepper_device_enumeration_event_handler.h"
45 #include "content/renderer/pepper/pepper_hung_plugin_filter.h" 47 #include "content/renderer/pepper/pepper_hung_plugin_filter.h"
46 #include "content/renderer/pepper/pepper_platform_audio_input_impl.h" 48 #include "content/renderer/pepper/pepper_platform_audio_input_impl.h"
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 channel_handle, 260 channel_handle,
259 module->pp_module(), 261 module->pp_module(),
260 webkit::ppapi::PluginModule::GetLocalGetInterfaceFunc(), 262 webkit::ppapi::PluginModule::GetLocalGetInterfaceFunc(),
261 GetPreferences(), 263 GetPreferences(),
262 hung_filter.get())) 264 hung_filter.get()))
263 return scoped_refptr<webkit::ppapi::PluginModule>(); 265 return scoped_refptr<webkit::ppapi::PluginModule>();
264 module->InitAsProxied(dispatcher.release()); 266 module->InitAsProxied(dispatcher.release());
265 return module; 267 return module;
266 } 268 }
267 269
270 scoped_refptr<webkit::ppapi::PluginModule>
271 PepperPluginDelegateImpl::CreateBrowserPluginModule(
272 const IPC::ChannelHandle& channel_handle,
273 int guest_process_id) {
274 BrowserPluginRegistry* registry =
275 RenderThreadImpl::current()->browser_plugin_registry();
276 scoped_refptr<webkit::ppapi::PluginModule> module =
277 registry->GetModule(guest_process_id);
278 if (module)
279 return module;
280
281 scoped_refptr<PepperHungPluginFilter> hung_filter(
282 new PepperHungPluginFilter(FilePath(kBrowserPluginPath),
283 render_view_->routing_id(),
284 guest_process_id));
285 // Create a new HostDispatcher for the proxying, and hook it to a new
286 // PluginModule.
287 module = new webkit::ppapi::PluginModule(kBrowserPluginName,
288 FilePath(kBrowserPluginPath),
289 registry);
290 RenderThreadImpl::current()->browser_plugin_registry()->AddModule(
291 guest_process_id, module);
292 scoped_ptr<HostDispatcherWrapper> dispatcher(new HostDispatcherWrapper);
293 if (!dispatcher->Init(
294 channel_handle,
295 module->pp_module(),
296 webkit::ppapi::PluginModule::GetLocalGetInterfaceFunc(),
297 GetPreferences(),
298 hung_filter.get()))
299 return scoped_refptr<webkit::ppapi::PluginModule>();
300 module->InitAsProxied(dispatcher.release());
301 return module;
302 }
303
268 scoped_refptr<PepperBrokerImpl> PepperPluginDelegateImpl::CreateBroker( 304 scoped_refptr<PepperBrokerImpl> PepperPluginDelegateImpl::CreateBroker(
269 webkit::ppapi::PluginModule* plugin_module) { 305 webkit::ppapi::PluginModule* plugin_module) {
270 DCHECK(plugin_module); 306 DCHECK(plugin_module);
271 DCHECK(!plugin_module->GetBroker()); 307 DCHECK(!plugin_module->GetBroker());
272 308
273 // The broker path is the same as the plugin. 309 // The broker path is the same as the plugin.
274 const FilePath& broker_path = plugin_module->path(); 310 const FilePath& broker_path = plugin_module->path();
275 311
276 scoped_refptr<PepperBrokerImpl> broker = 312 scoped_refptr<PepperBrokerImpl> broker =
277 new PepperBrokerImpl(plugin_module, this); 313 new PepperBrokerImpl(plugin_module, this);
(...skipping 1349 matching lines...) Expand 10 before | Expand all | Expand 10 after
1627 mouse_lock_instances_.erase(it); 1663 mouse_lock_instances_.erase(it);
1628 } 1664 }
1629 } 1665 }
1630 1666
1631 webkit_glue::ClipboardClient* 1667 webkit_glue::ClipboardClient*
1632 PepperPluginDelegateImpl::CreateClipboardClient() const { 1668 PepperPluginDelegateImpl::CreateClipboardClient() const {
1633 return new RendererClipboardClient; 1669 return new RendererClipboardClient;
1634 } 1670 }
1635 1671
1636 } // namespace content 1672 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/pepper/pepper_plugin_delegate_impl.h ('k') | content/renderer/render_thread_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698