summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/plugin_dispatcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/proxy/plugin_dispatcher.h')
-rw-r--r--ppapi/proxy/plugin_dispatcher.h37
1 files changed, 16 insertions, 21 deletions
diff --git a/ppapi/proxy/plugin_dispatcher.h b/ppapi/proxy/plugin_dispatcher.h
index 924b611..6ce5c14 100644
--- a/ppapi/proxy/plugin_dispatcher.h
+++ b/ppapi/proxy/plugin_dispatcher.h
@@ -9,10 +9,8 @@
#include "base/process.h"
#include "base/scoped_ptr.h"
-#include "ppapi/proxy/callback_tracker.h"
+#include "ppapi/c/pp_instance.h"
#include "ppapi/proxy/dispatcher.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/plugin_var_tracker.h"
class MessageLoop;
@@ -36,30 +34,30 @@ class PluginDispatcher : public Dispatcher {
ShutdownModuleFunc shutdown_module);
~PluginDispatcher();
- // The plugin maintains a global Dispatcher pointer. There is only one since
- // there is only one connection to the browser. Don't call this on the
- // browser side, see GetForInstnace.
+ // Sets/gets the global dispatcher pointer. New code should use the
+ // GetForInstance version below, this is currently here as a stopgap while
+ // the transition is being made.
+ //
+ // TODO(brettw) remove this.
static PluginDispatcher* Get();
static void SetGlobal(PluginDispatcher* dispatcher);
+ // The plugin side maintains a mapping from PP_Instance to Dispatcher so
+ // that we can send the messages to the right channel if there are multiple
+ // renderers sharing the same plugin.
+ static PluginDispatcher* GetForInstance(PP_Instance instance);
+ /* TODO(brettw) enable this when Get() is removed.
+ static void SetForInstance(PP_Instance instance,
+ PluginDispatcher* dispatcher);
+ static void RemoveForInstance(PP_Instance instance);
+ */
+
// Dispatcher overrides.
virtual bool IsPlugin() const;
// IPC::Channel::Listener implementation.
virtual bool OnMessageReceived(const IPC::Message& msg);
- // Returns the resource tracker for the plugin. In the browser process this
- // will return NULL.
- PluginResourceTracker* plugin_resource_tracker() {
- return plugin_resource_tracker_.get();
- }
-
- // Returns the var tracker for the plugin. In the browser process this
- // will return NULL.
- PluginVarTracker* plugin_var_tracker() {
- return plugin_var_tracker_.get();
- }
-
private:
// IPC message handlers.
void OnMsgInitializeModule(PP_Module pp_module, bool* result);
@@ -68,9 +66,6 @@ class PluginDispatcher : public Dispatcher {
InitModuleFunc init_module_;
ShutdownModuleFunc shutdown_module_;
- scoped_ptr<PluginResourceTracker> plugin_resource_tracker_;
- scoped_ptr<PluginVarTracker> plugin_var_tracker_;
-
DISALLOW_COPY_AND_ASSIGN(PluginDispatcher);
};