Commit 3dc5fdfb authored by erikchen's avatar erikchen Committed by Commit bot

Allow Mach shm to be passed to NaCl.

BUG=547246

Review URL: https://codereview.chromium.org/1460133002

Cr-Commit-Position: refs/heads/master@{#361148}
parent 344528fe
...@@ -227,6 +227,26 @@ class NaClDescWrapper { ...@@ -227,6 +227,26 @@ class NaClDescWrapper {
DISALLOW_COPY_AND_ASSIGN(NaClDescWrapper); DISALLOW_COPY_AND_ASSIGN(NaClDescWrapper);
}; };
scoped_ptr<NaClDescWrapper> MakeShmNaClDesc(
const base::SharedMemoryHandle& handle,
size_t size) {
#if defined(OS_MACOSX)
if (handle.GetType() == base::SharedMemoryHandle::MACH) {
return scoped_ptr<NaClDescWrapper>(new NaClDescWrapper(
NaClDescImcShmMachMake(handle.GetMemoryObject(), size)));
}
CHECK_EQ(base::SharedMemoryHandle::POSIX, handle.GetType());
#endif
return scoped_ptr<NaClDescWrapper>(new NaClDescWrapper(NaClDescImcShmMake(
#if defined(OS_WIN)
handle.GetHandle(),
#else
base::SharedMemory::GetFdFromSharedMemoryHandle(handle),
#endif
size)));
}
} // namespace } // namespace
class NaClIPCAdapter::RewrittenMessage class NaClIPCAdapter::RewrittenMessage
...@@ -541,15 +561,8 @@ bool NaClIPCAdapter::RewriteMessage(const IPC::Message& msg, uint32_t type) { ...@@ -541,15 +561,8 @@ bool NaClIPCAdapter::RewriteMessage(const IPC::Message& msg, uint32_t type) {
scoped_ptr<NaClDescWrapper> nacl_desc; scoped_ptr<NaClDescWrapper> nacl_desc;
switch (iter->type()) { switch (iter->type()) {
case ppapi::proxy::SerializedHandle::SHARED_MEMORY: { case ppapi::proxy::SerializedHandle::SHARED_MEMORY: {
const base::SharedMemoryHandle& shm_handle = iter->shmem(); nacl_desc =
uint32_t size = iter->size(); MakeShmNaClDesc(iter->shmem(), static_cast<size_t>(iter->size()));
nacl_desc.reset(new NaClDescWrapper(NaClDescImcShmMake(
#if defined(OS_WIN)
shm_handle.GetHandle(),
#else
base::SharedMemory::GetFdFromSharedMemoryHandle(shm_handle),
#endif
static_cast<size_t>(size))));
break; break;
} }
case ppapi::proxy::SerializedHandle::SOCKET: { case ppapi::proxy::SerializedHandle::SOCKET: {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment