summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/plugin_var_tracker.cc
diff options
context:
space:
mode:
authorteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-19 20:42:33 +0000
committerteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-19 20:42:33 +0000
commit30e1cb75b8fa46b67cfc7faa146eacdca5e90241 (patch)
tree2b6b293673d938f49843aa6b76143ca7d5950315 /ppapi/proxy/plugin_var_tracker.cc
parentae5df4b22be0cfee27c09c6a1e4721eb0935eab2 (diff)
downloadchromium_src-30e1cb75b8fa46b67cfc7faa146eacdca5e90241.zip
chromium_src-30e1cb75b8fa46b67cfc7faa146eacdca5e90241.tar.gz
chromium_src-30e1cb75b8fa46b67cfc7faa146eacdca5e90241.tar.bz2
Pepper: Use shared memory for ArrayBufferVar.
This change improves performance for sending ArrayBufferVars between the plugin and the host. It copies the data from the var into a shared memory region and sends the shared memory handle over IPC. This required defining a new message for plugins to request the host to create shared memory. BUG= Review URL: https://chromiumcodereview.appspot.com/11827059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189089 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/plugin_var_tracker.cc')
-rw-r--r--ppapi/proxy/plugin_var_tracker.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/ppapi/proxy/plugin_var_tracker.cc b/ppapi/proxy/plugin_var_tracker.cc
index 384eb3ec..cff8fa1 100644
--- a/ppapi/proxy/plugin_var_tracker.cc
+++ b/ppapi/proxy/plugin_var_tracker.cc
@@ -194,6 +194,12 @@ ArrayBufferVar* PluginVarTracker::CreateArrayBuffer(uint32 size_in_bytes) {
return new PluginArrayBufferVar(size_in_bytes);
}
+ArrayBufferVar* PluginVarTracker::CreateShmArrayBuffer(
+ uint32 size_in_bytes,
+ base::SharedMemoryHandle handle) {
+ return new PluginArrayBufferVar(size_in_bytes, handle);
+}
+
void PluginVarTracker::PluginImplementedObjectCreated(
PP_Instance instance,
const PP_Var& created_var,
@@ -369,5 +375,21 @@ scoped_refptr<ProxyObjectVar> PluginVarTracker::FindOrMakePluginVarFromHostVar(
return scoped_refptr<ProxyObjectVar>(ret->second.var->AsProxyObjectVar());
}
+int PluginVarTracker::TrackSharedMemoryHandle(PP_Instance instance,
+ base::SharedMemoryHandle handle,
+ uint32 size_in_bytes) {
+ NOTREACHED();
+ return -1;
+}
+
+bool PluginVarTracker::StopTrackingSharedMemoryHandle(
+ int id,
+ PP_Instance instance,
+ base::SharedMemoryHandle* handle,
+ uint32* size_in_bytes) {
+ NOTREACHED();
+ return false;
+}
+
} // namesace proxy
} // namespace ppapi