summaryrefslogtreecommitdiffstats
path: root/webkit/plugins/ppapi/ppb_buffer_impl.cc
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-10 02:30:00 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-10 02:30:00 +0000
commit32523380fc0111a95540f5a860184d8917270375 (patch)
tree19fad940c6817d50ea5ff68aab42fb504893fa6e /webkit/plugins/ppapi/ppb_buffer_impl.cc
parent2e7617c01514a05eb6c3db651259701131e3b85a (diff)
downloadchromium_src-32523380fc0111a95540f5a860184d8917270375.zip
chromium_src-32523380fc0111a95540f5a860184d8917270375.tar.gz
chromium_src-32523380fc0111a95540f5a860184d8917270375.tar.bz2
Implement out-of-process proxy for PPB_Buffer_Dev.
BUG=85427,85441 TEST=./ninja/ui_tests --gtest_filter=*PPAPITest.Buffer Review URL: http://codereview.chromium.org/7108051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88630 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/plugins/ppapi/ppb_buffer_impl.cc')
-rw-r--r--webkit/plugins/ppapi/ppb_buffer_impl.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/webkit/plugins/ppapi/ppb_buffer_impl.cc b/webkit/plugins/ppapi/ppb_buffer_impl.cc
index 39d3191..5c248d6 100644
--- a/webkit/plugins/ppapi/ppb_buffer_impl.cc
+++ b/webkit/plugins/ppapi/ppb_buffer_impl.cc
@@ -15,6 +15,7 @@
#include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
using ::ppapi::thunk::PPB_Buffer_API;
+using ::ppapi::thunk::PPB_BufferTrusted_API;
namespace webkit {
namespace ppapi {
@@ -45,6 +46,10 @@ PPB_Buffer_API* PPB_Buffer_Impl::AsPPB_Buffer_API() {
return this;
}
+PPB_BufferTrusted_API* PPB_Buffer_Impl::AsPPB_BufferTrusted_API() {
+ return this;
+}
+
bool PPB_Buffer_Impl::Init(uint32_t size) {
if (size == 0 || !instance())
return false;
@@ -75,6 +80,18 @@ void PPB_Buffer_Impl::Unmap() {
shared_memory_->Unmap();
}
+int32_t PPB_Buffer_Impl::GetSharedMemory(int* shm_handle) {
+#if defined(OS_POSIX)
+ *shm_handle = shared_memory_->handle().fd;
+#elif defined(OS_WIN)
+ *shm_handle = reinterpret_cast<int>(
+ shared_memory_->handle());
+#else
+#error "Platform not supported."
+#endif
+ return PP_OK;
+}
+
BufferAutoMapper::BufferAutoMapper(PPB_Buffer_API* api) : api_(api) {
needs_unmap_ = !PP_ToBool(api->IsMapped());
data_ = api->Map();