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

Unified Diff: webkit/plugins/ppapi/ppapi_plugin_instance.h

Issue 6716005: A proposal and implementation for an initial postMessage interface. These in... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: webkit/plugins/ppapi/ppapi_plugin_instance.h
===================================================================
--- webkit/plugins/ppapi/ppapi_plugin_instance.h (revision 78988)
+++ webkit/plugins/ppapi/ppapi_plugin_instance.h (working copy)
@@ -29,9 +29,11 @@
struct PPB_Instance;
struct PPB_Find_Dev;
struct PPB_Fullscreen_Dev;
+struct PPB_Messaging_Dev;
struct PPB_Zoom_Dev;
struct PPP_Find_Dev;
struct PPP_Instance;
+struct PPP_Messaging_Dev;
struct PPP_Pdf;
struct PPP_Selection_Dev;
struct PPP_Zoom_Dev;
@@ -53,6 +55,7 @@
namespace ppapi {
class FullscreenContainer;
+class MessageChannel;
class ObjectVar;
class PluginDelegate;
class PluginModule;
@@ -80,10 +83,12 @@
// exposed to the plugin.
static const PPB_Find_Dev* GetFindInterface();
static const PPB_Fullscreen_Dev* GetFullscreenInterface();
+ static const PPB_Messaging_Dev* GetMessagingInterface();
static const PPB_Zoom_Dev* GetZoomInterface();
PluginDelegate* delegate() const { return delegate_; }
PluginModule* module() const { return module_.get(); }
+ MessageChannel& message_channel() { return *message_channel_; }
WebKit::WebPluginContainer* container() const { return container_; }
@@ -210,6 +215,10 @@
// Implementation of PPB_Flash.
bool NavigateToURL(const char* url, const char* target);
+ // Implementation of PPB_Messaging and PPP_Messaging.
+ void PostMessage(PP_Var message);
+ void HandleMessage(PP_Var message);
+
PluginDelegate::PlatformContext3D* CreateContext3D();
// Tracks all live ObjectVar. This is so we can map between PluginModule +
@@ -230,6 +239,7 @@
private:
bool LoadFindInterface();
+ bool LoadMessagingInterface();
bool LoadPdfInterface();
bool LoadSelectionInterface();
bool LoadZoomInterface();
@@ -315,10 +325,15 @@
// The plugin-provided interfaces.
const PPP_Find_Dev* plugin_find_interface_;
+ const PPP_Messaging_Dev* plugin_messaging_interface_;
const PPP_Pdf* plugin_pdf_interface_;
const PPP_Selection_Dev* plugin_selection_interface_;
const PPP_Zoom_Dev* plugin_zoom_interface_;
+ // A flag to indicate whether we have asked this plugin instance for its
+ // messaging interface, so that we can ask only once.
+ bool checked_for_plugin_messaging_interface_;
+
// This is only valid between a successful PrintBegin call and a PrintEnd
// call.
PP_PrintSettings_Dev current_print_settings_;
@@ -363,6 +378,10 @@
// True if we are in fullscreen mode. Note: it is false during the transition.
bool fullscreen_;
+ // The MessageChannel used to implement bidirectional postMessage for the
+ // instance.
+ scoped_ptr<MessageChannel> message_channel_;
+
// Bitmap for crashed plugin. Lazily initialized, non-owning pointer.
SkBitmap* sad_plugin_;

Powered by Google App Engine
This is Rietveld 408576698