summaryrefslogtreecommitdiffstats
path: root/ppapi/shared_impl/var_tracker.h
diff options
context:
space:
mode:
authordmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 21:22:31 +0000
committerdmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-15 21:22:31 +0000
commit8cc26a4c78767feaf47fa94af34471d63e3596e5 (patch)
tree24399869b26449df2a6a838796941c984106f4b2 /ppapi/shared_impl/var_tracker.h
parentb40a1f1acb4d3fa0c56a3706dd47a2ca8d471834 (diff)
downloadchromium_src-8cc26a4c78767feaf47fa94af34471d63e3596e5.zip
chromium_src-8cc26a4c78767feaf47fa94af34471d63e3596e5.tar.gz
chromium_src-8cc26a4c78767feaf47fa94af34471d63e3596e5.tar.bz2
Implement in-process PPB_VarArrayBuffer_Dev.
+tony TBR for webkit/glue/webkit_glue.gypi BUG=103435 TEST=N/A TBR=tony Review URL: http://codereview.chromium.org/8930010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114700 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/shared_impl/var_tracker.h')
-rw-r--r--ppapi/shared_impl/var_tracker.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/ppapi/shared_impl/var_tracker.h b/ppapi/shared_impl/var_tracker.h
index f91c209..a2debe0 100644
--- a/ppapi/shared_impl/var_tracker.h
+++ b/ppapi/shared_impl/var_tracker.h
@@ -8,11 +8,13 @@
#include "base/basictypes.h"
#include "base/hash_tables.h"
#include "base/memory/ref_counted.h"
+#include "ppapi/c/pp_module.h"
#include "ppapi/c/pp_var.h"
#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
+class ArrayBufferVar;
class Var;
// Tracks non-POD (refcounted) var objects held by a plugin.
@@ -54,6 +56,10 @@ class PPAPI_SHARED_EXPORT VarTracker {
bool ReleaseVar(int32 var_id);
bool ReleaseVar(const PP_Var& var);
+ // Create a new array buffer of size |size_in_bytes|. Return a PP_Var that
+ // that references it and has an initial reference-count of 1.
+ PP_Var MakeArrayBufferPPVar(uint32 size_in_bytes);
+
protected:
struct VarInfo {
VarInfo();
@@ -126,6 +132,12 @@ class PPAPI_SHARED_EXPORT VarTracker {
// Last assigned var ID.
int32 last_var_id_;
+ private:
+ // Create and return a new ArrayBufferVar size_in_bytes bytes long. This is
+ // implemented by the Host and Plugin tracker separately, so that it can be
+ // a real WebKit ArrayBuffer on the host side.
+ virtual ArrayBufferVar* CreateArrayBuffer(uint32 size_in_bytes) = 0;
+
DISALLOW_COPY_AND_ASSIGN(VarTracker);
};