Index: webkit/plugins/ppapi/resource_tracker.cc |
=================================================================== |
--- webkit/plugins/ppapi/resource_tracker.cc (revision 106147) |
+++ webkit/plugins/ppapi/resource_tracker.cc (working copy) |
@@ -15,7 +15,6 @@ |
#include "ppapi/shared_impl/id_assignment.h" |
#include "ppapi/shared_impl/tracker_base.h" |
#include "webkit/plugins/ppapi/callbacks.h" |
-#include "webkit/plugins/ppapi/host_globals.h" |
#include "webkit/plugins/ppapi/npobject_var.h" |
#include "webkit/plugins/ppapi/plugin_module.h" |
#include "webkit/plugins/ppapi/ppapi_plugin_instance.h" |
@@ -37,7 +36,7 @@ |
namespace { |
::ppapi::TrackerBase* GetTrackerBase() { |
- return HostGlobals::Get()->host_resource_tracker(); |
+ return ResourceTracker::Get(); |
} |
} // namespace |
@@ -62,6 +61,10 @@ |
function_proxies[::ppapi::proxy::INTERFACE_ID_COUNT]; |
}; |
+// static |
+ResourceTracker* ResourceTracker::global_tracker_ = NULL; |
+ResourceTracker* ResourceTracker::singleton_override_ = NULL; |
+ |
ResourceTracker::ResourceTracker() { |
// Wire up the new shared resource tracker base to use our implementation. |
::ppapi::TrackerBase::Init(&GetTrackerBase); |
@@ -70,6 +73,15 @@ |
ResourceTracker::~ResourceTracker() { |
} |
+// static |
+ResourceTracker* ResourceTracker::Get() { |
+ if (singleton_override_) |
+ return singleton_override_; |
+ if (!global_tracker_) |
+ global_tracker_ = new ResourceTracker; |
+ return global_tracker_; |
+} |
+ |
void ResourceTracker::CleanupInstanceData(PP_Instance instance, |
bool delete_instance) { |
DLOG_IF(ERROR, !CheckIdType(instance, ::ppapi::PP_ID_TYPE_INSTANCE)) |
@@ -142,6 +154,14 @@ |
return proxy.get(); |
} |
+::ppapi::VarTracker* ResourceTracker::GetVarTracker() { |
+ return &var_tracker_; |
+} |
+ |
+::ppapi::ResourceTracker* ResourceTracker::GetResourceTracker() { |
+ return this; |
+} |
+ |
PP_Module ResourceTracker::GetModuleForInstance(PP_Instance instance) { |
PluginInstance* inst = GetInstance(instance); |
if (!inst) |
@@ -289,5 +309,17 @@ |
return found->second; |
} |
+// static |
+void ResourceTracker::SetSingletonOverride(ResourceTracker* tracker) { |
+ DCHECK(!singleton_override_); |
+ singleton_override_ = tracker; |
+} |
+ |
+// static |
+void ResourceTracker::ClearSingletonOverride() { |
+ DCHECK(singleton_override_); |
+ singleton_override_ = NULL; |
+} |
+ |
} // namespace ppapi |
} // namespace webkit |
Property changes on: webkit/plugins/ppapi/resource_tracker.cc |
___________________________________________________________________ |
Added: svn:mergeinfo |
Merged /branches/chrome_webkit_merge_branch/src/webkit/plugins/ppapi/resource_tracker.cc:r3734-4217,4606-5108,5177-5263 |