diff options
author | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-02 22:16:41 +0000 |
---|---|---|
committer | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-02 22:16:41 +0000 |
commit | 4d488032475256413d3aa347407b77f21ca11633 (patch) | |
tree | 68f8768bdaa6daaa6145186b8fd1c371216cb38a /ppapi/thunk | |
parent | b0a15ef06ba2c5d79869033943b6825634c23190 (diff) | |
download | chromium_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.h | 6 | ||||
-rw-r--r-- | ppapi/thunk/ppb_messaging_thunk.cc | 34 |
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 |