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

Unified Diff: ppapi/proxy/plugin_resource_tracker.h

Issue 8342016: Revert 106142 - Add a new globals object for PPAPI tracking information. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 2 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
« no previous file with comments | « ppapi/proxy/plugin_globals.cc ('k') | ppapi/proxy/plugin_resource_tracker.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/proxy/plugin_resource_tracker.h
===================================================================
--- ppapi/proxy/plugin_resource_tracker.h (revision 106146)
+++ ppapi/proxy/plugin_resource_tracker.h (working copy)
@@ -15,6 +15,7 @@
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/pp_resource.h"
#include "ppapi/c/pp_var.h"
+#include "ppapi/proxy/plugin_var_tracker.h"
#include "ppapi/proxy/ppapi_proxy_export.h"
#include "ppapi/shared_impl/host_resource.h"
#include "ppapi/shared_impl/resource_tracker.h"
@@ -33,9 +34,13 @@
class PPAPI_PROXY_EXPORT PluginResourceTracker : public TrackerBase,
public ResourceTracker {
public:
- PluginResourceTracker();
- virtual ~PluginResourceTracker();
+ // Called by tests that want to specify a specific ResourceTracker. This
+ // allows them to use a unique one each time and avoids singletons sticking
+ // around across tests.
+ static void SetInstanceForTest(PluginResourceTracker* tracker);
+ // Returns the global singleton resource tracker for the plugin.
+ static PluginResourceTracker* GetInstance();
static TrackerBase* GetTrackerBaseInstance();
// Given a host resource, maps it to an existing plugin resource ID if it
@@ -43,9 +48,20 @@
PP_Resource PluginResourceForHostResource(
const HostResource& resource) const;
+ PluginVarTracker& var_tracker() {
+ return var_tracker_test_override_ ? *var_tracker_test_override_
+ : var_tracker_;
+ }
+
+ void set_var_tracker_test_override(PluginVarTracker* t) {
+ var_tracker_test_override_ = t;
+ }
+
// TrackerBase.
virtual FunctionGroupBase* GetFunctionAPI(PP_Instance inst,
InterfaceID id) OVERRIDE;
+ virtual VarTracker* GetVarTracker() OVERRIDE;
+ virtual ResourceTracker* GetResourceTracker() OVERRIDE;
virtual PP_Module GetModuleForInstance(PP_Instance instance) OVERRIDE;
protected:
@@ -54,6 +70,24 @@
virtual void RemoveResource(Resource* object) OVERRIDE;
private:
+ friend struct DefaultSingletonTraits<PluginResourceTracker>;
+ friend class PluginResourceTrackerTest;
+ friend class PluginProxyTestHarness;
+
+ PluginResourceTracker();
+ virtual ~PluginResourceTracker();
+
+ // Use the var_tracker_test_override_ instead if it's non-NULL.
+ //
+ // TODO(brettw) this should be somehow separated out from here. I'm thinking
+ // of some global object that manages PPAPI globals, including separate var
+ // and resource trackers.
+ PluginVarTracker var_tracker_;
+
+ // Non-owning pointer to a var tracker mock used by tests. NULL when no
+ // test implementation is provided.
+ PluginVarTracker* var_tracker_test_override_;
+
// Map of host instance/resource pairs to a plugin resource ID.
typedef std::map<HostResource, PP_Resource> HostResourceMap;
HostResourceMap host_resource_map_;
« no previous file with comments | « ppapi/proxy/plugin_globals.cc ('k') | ppapi/proxy/plugin_resource_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698