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

Unified Diff: content/renderer/pepper/pepper_plugin_delegate_impl.h

Issue 11414180: Add a gyp flag to allow removing dependency on ppapi. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed Jay's comments and rebase Created 8 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/pepper/pepper_plugin_delegate_impl.h
diff --git a/content/renderer/pepper/pepper_plugin_delegate_impl.h b/content/renderer/pepper/pepper_plugin_delegate_impl.h
index ee2e780b9fa2bf0491d437242fe9a7c2c07ec6a5..4fa594dc7f8558fc57fcaa7440350d526a4454ab 100644
--- a/content/renderer/pepper/pepper_plugin_delegate_impl.h
+++ b/content/renderer/pepper/pepper_plugin_delegate_impl.h
@@ -20,6 +20,7 @@
#include "content/public/renderer/render_view_observer.h"
#include "content/renderer/mouse_lock_dispatcher.h"
#include "content/renderer/pepper/pepper_parent_context_provider.h"
+#include "content/renderer/plugin_delegate_helper.h"
#include "ppapi/shared_impl/private/ppb_host_resolver_shared.h"
#include "ppapi/shared_impl/private/ppb_tcp_server_socket_shared.h"
#include "ppapi/shared_impl/private/tcp_socket_private_impl.h"
@@ -28,12 +29,6 @@
#include "webkit/plugins/ppapi/plugin_delegate.h"
class FilePath;
-class TransportDIB;
-
-namespace gfx {
-class Point;
-class Rect;
-}
namespace IPC {
struct ChannelHandle;
@@ -45,10 +40,6 @@ class PPB_X509Certificate_Fields;
class PpapiPermissions;
}
-namespace ui {
-class Range;
-}
-
namespace webkit {
struct WebPluginInfo;
namespace ppapi {
@@ -59,20 +50,18 @@ class PluginModule;
namespace WebKit {
class WebGamepads;
-class WebMouseEvent;
struct WebCompositionUnderline;
}
namespace content {
-
class GamepadSharedMemoryReader;
class PepperBrokerImpl;
class PepperDeviceEnumerationEventHandler;
-class PepperPluginDelegateImpl;
class RenderViewImpl;
class PepperPluginDelegateImpl
: public webkit::ppapi::PluginDelegate,
+ public PluginDelegateHelper,
public base::SupportsWeakPtr<PepperPluginDelegateImpl>,
public PepperParentContextProvider,
public RenderViewObserver {
@@ -82,20 +71,6 @@ class PepperPluginDelegateImpl
RenderViewImpl* render_view() { return render_view_; }
- // Attempts to create a PPAPI plugin for the given filepath. On success, it
- // will return the newly-created module.
- //
- // There are two reasons for failure. The first is that the plugin isn't
- // a PPAPI plugin. In this case, |*pepper_plugin_was_registered| will be set
- // to false and the caller may want to fall back on creating an NPAPI plugin.
- // the second is that the plugin failed to initialize. In this case,
- // |*pepper_plugin_was_registered| will be set to true and the caller should
- // not fall back on any other plugin types.
- CONTENT_EXPORT scoped_refptr<webkit::ppapi::PluginModule>
- CreatePepperPluginModule(
- const webkit::WebPluginInfo& webplugin_info,
- bool* pepper_plugin_was_registered);
-
// Sets up the renderer host and out-of-process proxy for an external plugin
// module. Returns the renderer host, or NULL if it couldn't be created.
RendererPpapiHost* CreateExternalPluginModule(
@@ -105,63 +80,74 @@ class PepperPluginDelegateImpl
const IPC::ChannelHandle& channel_handle,
int plugin_child_id);
- // Called by RenderView to tell us about painting events, these two functions
- // just correspond to the WillInitiatePaint, DidInitiatePaint and
- // DidFlushPaint hooks in RenderView.
- void ViewWillInitiatePaint();
- void ViewInitiatedPaint();
- void ViewFlushedPaint();
+ // Removes broker from pending_connect_broker_ if present. Returns true if so.
+ bool StopWaitingForBrokerConnection(PepperBrokerImpl* broker);
+
+ CONTENT_EXPORT int GetRoutingID() const;
+
+ typedef base::Callback<void (int /* request_id */,
+ bool /* succeeded */,
+ const std::string& /* label */)>
+ OpenDeviceCallback;
- // Called by RenderView to implement the corresponding function in its base
- // class RenderWidget (see that for more).
- webkit::ppapi::PluginInstance* GetBitmapForOptimizedPluginPaint(
+ // Opens the specified device. The request ID passed into the callback will be
+ // the same as the return value. If successful, the label passed into the
+ // callback identifies a audio/video steam, which can be used to call
+ // CloseDevice() and GetSesssionID().
+ int OpenDevice(PP_DeviceType_Dev type,
+ const std::string& device_id,
+ const OpenDeviceCallback& callback);
+ void CloseDevice(const std::string& label);
+ // Gets audio/video session ID given a label.
+ int GetSessionID(PP_DeviceType_Dev type, const std::string& label);
+
+ private:
+ // PluginDelegateHelper implementation.
+ virtual WebKit::WebPlugin* CreatePepperWebPlugin(
+ const webkit::WebPluginInfo& webplugin_info,
+ const WebKit::WebPluginParams& params) OVERRIDE;
+ virtual void ViewWillInitiatePaint() OVERRIDE;
+ virtual void ViewInitiatedPaint() OVERRIDE;
+ virtual void ViewFlushedPaint() OVERRIDE;
+
brettw 2012/11/30 23:18:12 When implementing a base class, don't use blank li
nilesh 2012/12/01 00:41:35 Done.
+ virtual webkit::ppapi::PluginInstance* GetBitmapForOptimizedPluginPaint(
const gfx::Rect& paint_bounds,
TransportDIB** dib,
gfx::Rect* location,
gfx::Rect* clip,
- float* scale_factor);
-
- // Called by RenderView when ViewMsg_AsyncOpenFile_ACK.
- void OnAsyncFileOpened(base::PlatformFileError error_code,
- base::PlatformFile file,
- int message_id);
+ float* scale_factor) OVERRIDE;
- // Called by RenderView when ViewMsg_PpapiBrokerChannelCreated.
- void OnPpapiBrokerChannelCreated(int request_id,
- const IPC::ChannelHandle& handle);
+ virtual void OnAsyncFileOpened(base::PlatformFileError error_code,
+ base::PlatformFile file,
+ int message_id) OVERRIDE;
- // Removes broker from pending_connect_broker_ if present. Returns true if so.
- bool StopWaitingForBrokerConnection(PepperBrokerImpl* broker);
+ virtual void OnPpapiBrokerChannelCreated(
+ int request_id,
+ const IPC::ChannelHandle& handle) OVERRIDE;
- // Called when we know whether permission to access the PPAPI broker was
- // granted.
- void OnPpapiBrokerPermissionResult(int request_id, bool result);
+ virtual void OnPpapiBrokerPermissionResult(int request_id,
+ bool result) OVERRIDE;
- // Notification that the render view has been focused or defocused. This
- // notifies all of the plugins.
- void OnSetFocus(bool has_focus);
+ virtual void OnSetFocus(bool has_focus) OVERRIDE;
- // Notification that the page visibility has changed. The default is visible.
- void PageVisibilityChanged(bool is_visible);
+ virtual void PageVisibilityChanged(bool is_visible) OVERRIDE;
- // IME status.
- bool IsPluginFocused() const;
- gfx::Rect GetCaretBounds() const;
- ui::TextInputType GetTextInputType() const;
- bool IsPluginAcceptingCompositionEvents() const;
- bool CanComposeInline() const;
- void GetSurroundingText(string16* text, ui::Range* range) const;
+ virtual bool IsPluginFocused() const OVERRIDE;
+ virtual gfx::Rect GetCaretBounds() const OVERRIDE;
+ virtual ui::TextInputType GetTextInputType() const OVERRIDE;
+ virtual bool IsPluginAcceptingCompositionEvents() const OVERRIDE;
+ virtual bool CanComposeInline() const OVERRIDE;
+ virtual void GetSurroundingText(string16* text,
+ ui::Range* range) const OVERRIDE;
- // IME events.
- void OnImeSetComposition(
+ virtual void OnImeSetComposition(
const string16& text,
const std::vector<WebKit::WebCompositionUnderline>& underlines,
int selection_start,
- int selection_end);
- void OnImeConfirmComposition(const string16& text);
+ int selection_end) OVERRIDE;
+ virtual void OnImeConfirmComposition(const string16& text) OVERRIDE;
- // Notification that a mouse event has arrived at the render view.
- void WillHandleMouseEvent();
+ virtual void WillHandleMouseEvent() OVERRIDE;
// PluginDelegate implementation.
virtual void PluginFocusChanged(webkit::ppapi::PluginInstance* instance,
@@ -441,25 +427,20 @@ class PepperPluginDelegateImpl
const std::string& canonical_name,
const std::vector<PP_NetAddress_Private>& net_address_list);
- CONTENT_EXPORT int GetRoutingID() const;
-
- typedef base::Callback<void (int /* request_id */,
- bool /* succeeded */,
- const std::string& /* label */)>
- OpenDeviceCallback;
-
- // Opens the specified device. The request ID passed into the callback will be
- // the same as the return value. If successful, the label passed into the
- // callback identifies a audio/video steam, which can be used to call
- // CloseDevice() and GetSesssionID().
- int OpenDevice(PP_DeviceType_Dev type,
- const std::string& device_id,
- const OpenDeviceCallback& callback);
- void CloseDevice(const std::string& label);
- // Gets audio/video session ID given a label.
- int GetSessionID(PP_DeviceType_Dev type, const std::string& label);
+ // Attempts to create a PPAPI plugin for the given filepath. On success, it
+ // will return the newly-created module.
+ //
+ // There are two reasons for failure. The first is that the plugin isn't
+ // a PPAPI plugin. In this case, |*pepper_plugin_was_registered| will be set
+ // to false and the caller may want to fall back on creating an NPAPI plugin.
+ // the second is that the plugin failed to initialize. In this case,
+ // |*pepper_plugin_was_registered| will be set to true and the caller should
+ // not fall back on any other plugin types.
+ CONTENT_EXPORT scoped_refptr<webkit::ppapi::PluginModule>
brettw 2012/11/30 23:18:12 Is this CONTENT_EXPORT needed? Now that this is a
nilesh 2012/12/01 00:41:35 Done.
+ CreatePepperPluginModule(
+ const webkit::WebPluginInfo& webplugin_info,
+ bool* pepper_plugin_was_registered);
- private:
// Asynchronously attempts to create a PPAPI broker for the given plugin.
scoped_refptr<PepperBrokerImpl> CreateBroker(
webkit::ppapi::PluginModule* plugin_module);

Powered by Google App Engine
This is Rietveld 408576698