| Index: webkit/plugins/ppapi/resource_tracker.h
|
| diff --git a/webkit/plugins/ppapi/resource_tracker.h b/webkit/plugins/ppapi/resource_tracker.h
|
| index 79de8be58163f38e92ddc9c8ad9dc5bfc2acf6c8..221a8f9bf944d6e8840de6eb806e6105a871f0e0 100644
|
| --- a/webkit/plugins/ppapi/resource_tracker.h
|
| +++ b/webkit/plugins/ppapi/resource_tracker.h
|
| @@ -45,8 +45,8 @@ class ResourceTrackerTest;
|
| class ResourceTracker : public ::ppapi::TrackerBase,
|
| public ::ppapi::ResourceTracker {
|
| public:
|
| - // Returns the pointer to the singleton object.
|
| - static ResourceTracker* Get();
|
| + ResourceTracker();
|
| + virtual ~ResourceTracker();
|
|
|
| // PP_Resources --------------------------------------------------------------
|
|
|
| @@ -54,8 +54,6 @@ class ResourceTracker : public ::ppapi::TrackerBase,
|
| virtual ::ppapi::FunctionGroupBase* GetFunctionAPI(
|
| PP_Instance pp_instance,
|
| ::ppapi::proxy::InterfaceID id) OVERRIDE;
|
| - virtual ::ppapi::VarTracker* GetVarTracker() OVERRIDE;
|
| - virtual ::ppapi::ResourceTracker* GetResourceTracker() OVERRIDE;
|
| virtual PP_Module GetModuleForInstance(PP_Instance instance) OVERRIDE;
|
|
|
| // ppapi::ResourceTracker overrides.
|
| @@ -119,46 +117,11 @@ class ResourceTracker : public ::ppapi::TrackerBase,
|
| // Per-instance data we track.
|
| struct InstanceData;
|
|
|
| - // Prohibit creation other then by the Singleton class.
|
| - ResourceTracker();
|
| - virtual ~ResourceTracker();
|
| -
|
| // Force frees all vars and resources associated with the given instance.
|
| // If delete_instance is true, the instance tracking information will also
|
| // be deleted.
|
| void CleanupInstanceData(PP_Instance instance, bool delete_instance);
|
|
|
| - // Overrides the singleton object. This is used for tests which want to
|
| - // specify their own tracker (otherwise, you can get cross-talk between
|
| - // tests since the data will live into the subsequent tests).
|
| - static void SetSingletonOverride(ResourceTracker* tracker);
|
| - static void ClearSingletonOverride();
|
| -
|
| - // The lazy-initialized global instance of this object. This is created in
|
| - // ::Get() if there is no singleton_override_ specified.
|
| - //
|
| - // It would be nice to use LazyInstance for this since it manages the
|
| - // creation properly, and also cleans up on shutdown. However, the shutdown
|
| - // cleanup causes problems in some cases.
|
| - //
|
| - // For example, say the browser crashes or is killed. The renderer then
|
| - // decides to exit. Normally resources are bound to an instance and are
|
| - // cleaned up when WebKit deletes the instance (when you go to a different
|
| - // page or close that view). In this case, WebKit doesn't clean up. If the
|
| - // ResourceTracker was cleaned up by the AtExitManager (which would be the
|
| - // case with LazyInstance/Singleton) then we'd try to call up to the renderer
|
| - // layer via the delegate, which may be in a random state of shutdown.
|
| - //
|
| - // So effectively our rule is: any resources still around at shutdown are
|
| - // associated with leaked plugins in WebKit, so it's also OK to leak those
|
| - // resources from here (avoiding the shutdown race).
|
| - static ResourceTracker* global_tracker_;
|
| -
|
| - // See SetSingletonOverride above.
|
| - static ResourceTracker* singleton_override_;
|
| -
|
| - ::ppapi::VarTracker var_tracker_;
|
| -
|
| // Like ResourceAndRefCount but for vars, which are associated with modules.
|
| typedef std::pair<scoped_refptr< ::ppapi::Var>, size_t> VarAndRefCount;
|
| typedef base::hash_map<int32, VarAndRefCount> VarMap;
|
|
|