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

Side by Side Diff: content/renderer/pepper/plugin_delegate.h

Issue 20165002: Move webkit/plugins/ppapi to content/renderer/pepper. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: more more clang fun Created 7 years, 4 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 #ifndef WEBKIT_PLUGINS_PPAPI_PLUGIN_DELEGATE_H_ 5 #ifndef CONTENT_RENDERER_PEPPER_PLUGIN_DELEGATE_H_
6 #define WEBKIT_PLUGINS_PPAPI_PLUGIN_DELEGATE_H_ 6 #define CONTENT_RENDERER_PEPPER_PLUGIN_DELEGATE_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "base/memory/shared_memory.h" 13 #include "base/memory/shared_memory.h"
14 #include "base/message_loop/message_loop_proxy.h" 14 #include "base/message_loop/message_loop_proxy.h"
15 #include "base/platform_file.h" 15 #include "base/platform_file.h"
16 #include "base/process.h" 16 #include "base/process.h"
17 #include "base/sync_socket.h" 17 #include "base/sync_socket.h"
18 #include "base/time/time.h" 18 #include "base/time/time.h"
19 #include "content/common/content_export.h"
19 #include "ipc/ipc_platform_file.h" 20 #include "ipc/ipc_platform_file.h"
20 #include "media/video/capture/video_capture.h" 21 #include "media/video/capture/video_capture.h"
21 #include "media/video/video_decode_accelerator.h" 22 #include "media/video/video_decode_accelerator.h"
22 #include "ppapi/c/dev/pp_video_dev.h" 23 #include "ppapi/c/dev/pp_video_dev.h"
23 #include "ppapi/c/dev/ppb_device_ref_dev.h" 24 #include "ppapi/c/dev/ppb_device_ref_dev.h"
24 #include "ppapi/c/pp_completion_callback.h" 25 #include "ppapi/c/pp_completion_callback.h"
25 #include "ppapi/c/pp_errors.h" 26 #include "ppapi/c/pp_errors.h"
26 #include "ppapi/c/pp_file_info.h" 27 #include "ppapi/c/pp_file_info.h"
27 #include "ppapi/c/pp_instance.h" 28 #include "ppapi/c/pp_instance.h"
28 #include "ppapi/c/pp_resource.h" 29 #include "ppapi/c/pp_resource.h"
29 #include "ppapi/c/pp_stdint.h" 30 #include "ppapi/c/pp_stdint.h"
30 #include "ppapi/c/ppb_tcp_socket.h" 31 #include "ppapi/c/ppb_tcp_socket.h"
31 #include "ppapi/c/private/ppb_flash.h" 32 #include "ppapi/c/private/ppb_flash.h"
32 #include "ppapi/c/private/ppb_tcp_socket_private.h" 33 #include "ppapi/c/private/ppb_tcp_socket_private.h"
33 #include "ppapi/c/private/ppb_udp_socket_private.h" 34 #include "ppapi/c/private/ppb_udp_socket_private.h"
34 #include "ppapi/shared_impl/dir_contents.h" 35 #include "ppapi/shared_impl/dir_contents.h"
35 #include "ui/gfx/size.h" 36 #include "ui/gfx/size.h"
36 #include "url/gurl.h" 37 #include "url/gurl.h"
37 #include "webkit/common/fileapi/file_system_types.h" 38 #include "webkit/common/fileapi/file_system_types.h"
38 #include "webkit/common/quota/quota_types.h" 39 #include "webkit/common/quota/quota_types.h"
39 #include "webkit/plugins/webkit_plugins_export.h"
40 40
41 class GURL; 41 class GURL;
42 class SkBitmap; 42 class SkBitmap;
43 class SkCanvas; 43 class SkCanvas;
44 class TransportDIB; 44 class TransportDIB;
45 struct PP_NetAddress_Private; 45 struct PP_NetAddress_Private;
46 46
47 namespace IPC { 47 namespace IPC {
48 struct ChannelHandle; 48 struct ChannelHandle;
49 } 49 }
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 class PluginModule; 115 class PluginModule;
116 class PPB_Broker_Impl; 116 class PPB_Broker_Impl;
117 class PPB_Flash_Menu_Impl; 117 class PPB_Flash_Menu_Impl;
118 class PPB_ImageData_Impl; 118 class PPB_ImageData_Impl;
119 class PPB_TCPSocket_Private_Impl; 119 class PPB_TCPSocket_Private_Impl;
120 120
121 // Virtual interface that the browser implements to implement features for 121 // Virtual interface that the browser implements to implement features for
122 // PPAPI plugins. 122 // PPAPI plugins.
123 class PluginDelegate { 123 class PluginDelegate {
124 public: 124 public:
125 // This interface is used for the PluginModule to tell the code in charge of
126 // re-using modules which modules currently exist.
127 //
128 // It is different than the other interfaces, which are scoped to the
129 // lifetime of the plugin instance. The implementor of this interface must
130 // outlive all plugin modules, and is in practice a singleton
131 // (PepperPluginRegistry). This requirement means we can't do the obvious
132 // thing and just have a PluginDelegate call for this purpose (when the
133 // module is being deleted, we know there are no more PluginInstances that
134 // have PluginDelegates).
135 class ModuleLifetime {
136 public:
137 // Notification that the given plugin object is no longer usable. It either
138 // indicates the module was deleted, or that it has crashed.
139 //
140 // This can be called from the module's destructor, so you should not
141 // dereference the given pointer.
142 virtual void PluginModuleDead(PluginModule* dead_module) = 0;
143 };
144
145 // This class is implemented by the PluginDelegate implementation and is 125 // This class is implemented by the PluginDelegate implementation and is
146 // designed to manage the lifetime and communication with the proxy's 126 // designed to manage the lifetime and communication with the proxy's
147 // HostDispatcher for out-of-process PPAPI plugins. 127 // HostDispatcher for out-of-process PPAPI plugins.
148 // 128 //
149 // The point of this is to avoid having a relationship from the PPAPI plugin 129 // The point of this is to avoid having a relationship from the PPAPI plugin
150 // implementation to the ppapi proxy code. Otherwise, things like the IPC 130 // implementation to the ppapi proxy code. Otherwise, things like the IPC
151 // system will be dependencies of the webkit directory, which we don't want. 131 // system will be dependencies of the webkit directory, which we don't want.
152 // 132 //
153 // The PluginModule will scope the lifetime of this object to its own 133 // The PluginModule will scope the lifetime of this object to its own
154 // lifetime, so the implementation can use this to manage the HostDispatcher 134 // lifetime, so the implementation can use this to manage the HostDispatcher
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 166
187 // Returns the platform-specific shared memory handle of the data backing 167 // Returns the platform-specific shared memory handle of the data backing
188 // this image. This is used by PPAPI proxying to send the image to the 168 // this image. This is used by PPAPI proxying to send the image to the
189 // out-of-process plugin. On success, the size in bytes will be placed into 169 // out-of-process plugin. On success, the size in bytes will be placed into
190 // |*bytes_count|. Returns 0 on failure. 170 // |*bytes_count|. Returns 0 on failure.
191 virtual intptr_t GetSharedMemoryHandle(uint32* byte_count) const = 0; 171 virtual intptr_t GetSharedMemoryHandle(uint32* byte_count) const = 0;
192 172
193 virtual TransportDIB* GetTransportDIB() const = 0; 173 virtual TransportDIB* GetTransportDIB() const = 0;
194 }; 174 };
195 175
196 class WEBKIT_PLUGINS_EXPORT PlatformGraphics2D { 176 class CONTENT_EXPORT PlatformGraphics2D {
197 public: 177 public:
198 virtual ~PlatformGraphics2D() {} 178 virtual ~PlatformGraphics2D() {}
199 179
200 virtual bool ReadImageData(PP_Resource image, const PP_Point* top_left) = 0; 180 virtual bool ReadImageData(PP_Resource image, const PP_Point* top_left) = 0;
201 181
202 // Assciates this device with the given plugin instance. You can pass NULL 182 // Assciates this device with the given plugin instance. You can pass NULL
203 // to clear the existing device. Returns true on success. In this case, a 183 // to clear the existing device. Returns true on success. In this case, a
204 // repaint of the page will also be scheduled. Failure means that the device 184 // repaint of the page will also be scheduled. Failure means that the device
205 // is already bound to a different instance, and nothing will happen. 185 // is already bound to a different instance, and nothing will happen.
206 virtual bool BindToInstance(PluginInstanceImpl* new_instance) = 0; 186 virtual bool BindToInstance(PluginInstanceImpl* new_instance) = 0;
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 const base::FilePath& path, 682 const base::FilePath& path,
703 ::ppapi::PpapiPermissions permissions, 683 ::ppapi::PpapiPermissions permissions,
704 const IPC::ChannelHandle& channel_handle, 684 const IPC::ChannelHandle& channel_handle,
705 base::ProcessId plugin_pid, 685 base::ProcessId plugin_pid,
706 int plugin_child_id) = 0; 686 int plugin_child_id) = 0;
707 }; 687 };
708 688
709 } // namespace ppapi 689 } // namespace ppapi
710 } // namespace webkit 690 } // namespace webkit
711 691
712 #endif // WEBKIT_PLUGINS_PPAPI_PLUGIN_DELEGATE_H_ 692 #endif // CONTENT_RENDERER_PEPPER_PLUGIN_DELEGATE_H_
OLDNEW
« no previous file with comments | « content/renderer/pepper/pepper_video_source_host.cc ('k') | content/renderer/pepper/plugin_module.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698