summaryrefslogtreecommitdiffstats
path: root/ppapi/thunk
diff options
context:
space:
mode:
authordmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-02 22:16:41 +0000
committerdmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-02 22:16:41 +0000
commit4d488032475256413d3aa347407b77f21ca11633 (patch)
tree68f8768bdaa6daaa6145186b8fd1c371216cb38a /ppapi/thunk
parentb0a15ef06ba2c5d79869033943b6825634c23190 (diff)
downloadchromium_src-4d488032475256413d3aa347407b77f21ca11633.zip
chromium_src-4d488032475256413d3aa347407b77f21ca11633.tar.gz
chromium_src-4d488032475256413d3aa347407b77f21ca11633.tar.bz2
PPAPI: Add dev synchronous JS->Plugin messaging API
BUG=367896 Review URL: https://codereview.chromium.org/252023009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274349 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/thunk')
-rw-r--r--ppapi/thunk/ppb_instance_api.h6
-rw-r--r--ppapi/thunk/ppb_messaging_thunk.cc34
2 files changed, 39 insertions, 1 deletions
diff --git a/ppapi/thunk/ppb_instance_api.h b/ppapi/thunk/ppb_instance_api.h
index db73979..39ea9e4 100644
--- a/ppapi/thunk/ppb_instance_api.h
+++ b/ppapi/thunk/ppb_instance_api.h
@@ -30,6 +30,7 @@
struct PP_DecryptedBlockInfo;
struct PP_DecryptedFrameInfo;
+struct PPP_MessageHandler_0_1;
namespace ppapi {
@@ -114,6 +115,11 @@ class PPB_Instance_API {
// Messaging.
virtual void PostMessage(PP_Instance instance, PP_Var message) = 0;
+ virtual int32_t RegisterMessageHandler(PP_Instance instance,
+ void* user_data,
+ const PPP_MessageHandler_0_1* handler,
+ PP_Resource message_loop) = 0;
+ virtual void UnregisterMessageHandler(PP_Instance instance) = 0;
// Mouse cursor.
virtual PP_Bool SetCursor(PP_Instance instance,
diff --git a/ppapi/thunk/ppb_messaging_thunk.cc b/ppapi/thunk/ppb_messaging_thunk.cc
index fb936b8..c351233 100644
--- a/ppapi/thunk/ppb_messaging_thunk.cc
+++ b/ppapi/thunk/ppb_messaging_thunk.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_messaging.idl modified Tue Aug 20 08:13:36 2013.
+// From ppb_messaging.idl modified Thu May 29 15:54:46 2014.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_messaging.h"
@@ -23,15 +23,47 @@ void PostMessage(PP_Instance instance, struct PP_Var message) {
enter.functions()->PostMessage(instance, message);
}
+int32_t RegisterMessageHandler(PP_Instance instance,
+ void* user_data,
+ const struct PPP_MessageHandler_0_1* handler,
+ PP_Resource message_loop) {
+ VLOG(4) << "PPB_Messaging::RegisterMessageHandler()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return enter.retval();
+ return enter.functions()->RegisterMessageHandler(instance,
+ user_data,
+ handler,
+ message_loop);
+}
+
+void UnregisterMessageHandler(PP_Instance instance) {
+ VLOG(4) << "PPB_Messaging::UnregisterMessageHandler()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->UnregisterMessageHandler(instance);
+}
+
const PPB_Messaging_1_0 g_ppb_messaging_thunk_1_0 = {
&PostMessage
};
+const PPB_Messaging_1_1 g_ppb_messaging_thunk_1_1 = {
+ &PostMessage,
+ &RegisterMessageHandler,
+ &UnregisterMessageHandler
+};
+
} // namespace
PPAPI_THUNK_EXPORT const PPB_Messaging_1_0* GetPPB_Messaging_1_0_Thunk() {
return &g_ppb_messaging_thunk_1_0;
}
+PPAPI_THUNK_EXPORT const PPB_Messaging_1_1* GetPPB_Messaging_1_1_Thunk() {
+ return &g_ppb_messaging_thunk_1_1;
+}
+
} // namespace thunk
} // namespace ppapi