diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-07 16:53:06 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-07 16:53:06 +0000 |
commit | e0ba93971402fee8e7b7cb1cbd2259a37d338760 (patch) | |
tree | 4af1d741d0b1b89f27f4c9225d4df6568ffd6b85 /ppapi/proxy | |
parent | 8b21080ae97787dfe73068014bce3c9e0343eb36 (diff) | |
download | chromium_src-e0ba93971402fee8e7b7cb1cbd2259a37d338760.zip chromium_src-e0ba93971402fee8e7b7cb1cbd2259a37d338760.tar.gz chromium_src-e0ba93971402fee8e7b7cb1cbd2259a37d338760.tar.bz2 |
Make webkit/glue/plugins no longer depend on ppapi/proxy directly. This causes
things that use webkit but otherwise don't need IPC to include the IPC
directory.
This patch moves the set-up of the proxy into the renderer. I also did a lot
of clean-up of the initialization and it seems much nicer now.
BUG=63684
TEST=manual PPAPI proxy testing
Review URL: http://codereview.chromium.org/5592005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68482 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy')
-rw-r--r-- | ppapi/proxy/host_dispatcher.cc | 12 | ||||
-rw-r--r-- | ppapi/proxy/host_dispatcher.h | 5 |
2 files changed, 15 insertions, 2 deletions
diff --git a/ppapi/proxy/host_dispatcher.cc b/ppapi/proxy/host_dispatcher.cc index fd9801c..6e7a1f4 100644 --- a/ppapi/proxy/host_dispatcher.cc +++ b/ppapi/proxy/host_dispatcher.cc @@ -7,6 +7,7 @@ #include <map> #include "base/logging.h" +#include "ppapi/c/dev/ppb_var_deprecated.h" #include "ppapi/proxy/host_var_serialization_rules.h" #include "ppapi/proxy/ppapi_messages.h" @@ -21,10 +22,13 @@ InstanceToDispatcherMap* g_instance_to_dispatcher = NULL; } // namespace HostDispatcher::HostDispatcher(base::ProcessHandle remote_process_handle, - const PPB_Var_Deprecated* var_interface, PP_Module module, GetInterfaceFunc local_get_interface) : Dispatcher(remote_process_handle, local_get_interface) { + set_pp_module(module); + const PPB_Var_Deprecated* var_interface = + static_cast<const PPB_Var_Deprecated*>( + local_get_interface(PPB_VAR_DEPRECATED_INTERFACE)); SetSerializationRules(new HostVarSerializationRules(var_interface, module)); } @@ -33,6 +37,12 @@ HostDispatcher::~HostDispatcher() { Send(new PpapiMsg_Shutdown()); } +bool HostDispatcher::InitializeModule() { + bool init_result = false; + Send(new PpapiMsg_InitializeModule(pp_module(), &init_result)); + return init_result; +} + // static HostDispatcher* HostDispatcher::GetForInstance(PP_Instance instance) { if (!g_instance_to_dispatcher) diff --git a/ppapi/proxy/host_dispatcher.h b/ppapi/proxy/host_dispatcher.h index f968652..f5b91b4 100644 --- a/ppapi/proxy/host_dispatcher.h +++ b/ppapi/proxy/host_dispatcher.h @@ -38,11 +38,14 @@ class HostDispatcher : public Dispatcher { // // You must call Dispatcher::InitWithChannel after the constructor. HostDispatcher(base::ProcessHandle host_process_handle, - const PPB_Var_Deprecated* var_interface, PP_Module module, GetInterfaceFunc local_get_interface); ~HostDispatcher(); + // Calls the plugin's PPP_InitializeModule function and returns true if + // the call succeeded. + bool InitializeModule(); + // The host side maintains a mapping from PP_Instance to Dispatcher so // that we can send the messages to the right channel. static HostDispatcher* GetForInstance(PP_Instance instance); |