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

Unified Diff: ppapi/proxy/plugin_var_tracker.cc

Issue 6334016: Refactor PPAPI proxy resource handling to maintain which host they came from,... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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_var_tracker.h ('k') | ppapi/proxy/plugin_var_tracker_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/proxy/plugin_var_tracker.cc
===================================================================
--- ppapi/proxy/plugin_var_tracker.cc (revision 72840)
+++ ppapi/proxy/plugin_var_tracker.cc (working copy)
@@ -15,6 +15,9 @@
namespace {
+// When non-NULL, this object overrides the VarTrackerSingleton.
+PluginVarTracker* var_tracker_override = NULL;
+
class RefCountedString : public base::RefCounted<RefCountedString> {
public:
RefCountedString() {
@@ -64,7 +67,15 @@
PluginVarTracker::~PluginVarTracker() {
}
+// static
+void PluginVarTracker::SetInstanceForTest(PluginVarTracker* tracker) {
+ var_tracker_override = tracker;
+}
+
+// static
PluginVarTracker* PluginVarTracker::GetInstance() {
+ if (var_tracker_override)
+ return var_tracker_override;
return Singleton<PluginVarTracker>::get();
}
@@ -221,6 +232,24 @@
return ret;
}
+void PluginVarTracker::ReleaseHostObject(Sender* sender,
+ const PP_Var& host_object) {
+ // Convert the host object to a normal var valid in the plugin.
+ DCHECK(host_object.type == PP_VARTYPE_OBJECT);
+ HostVarToPluginVarMap::iterator found = host_var_to_plugin_var_.find(
+ HostVar(sender, host_object.value.as_id));
+ if (found == host_var_to_plugin_var_.end()) {
+ NOTREACHED();
+ return;
+ }
+
+ // Now just release the object like normal.
+ PP_Var plugin_object;
+ plugin_object.type = PP_VARTYPE_OBJECT;
+ plugin_object.value.as_id = found->second;
+ Release(plugin_object);
+}
+
int PluginVarTracker::GetRefCountForObject(const PP_Var& plugin_object) {
PluginVarInfoMap::iterator found = plugin_var_info_.find(
plugin_object.value.as_id);
« no previous file with comments | « ppapi/proxy/plugin_var_tracker.h ('k') | ppapi/proxy/plugin_var_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698