summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorlionel.g.landwerlin <lionel.g.landwerlin@intel.com>2015-03-06 07:43:46 -0800
committerCommit bot <commit-bot@chromium.org>2015-03-06 15:44:39 +0000
commit58344bb00df4201fd99734ae77b037351eba70ca (patch)
treeb1621378418b19c9de305b8ce2961cd05f32ed2c /content
parentf4e514de66bc88423b42ccbde1b7f25a5d46b2d9 (diff)
downloadchromium_src-58344bb00df4201fd99734ae77b037351eba70ca.zip
chromium_src-58344bb00df4201fd99734ae77b037351eba70ca.tar.gz
chromium_src-58344bb00df4201fd99734ae77b037351eba70ca.tar.bz2
content: pepper: factorize file descriptor access
BUG=none TEST=try bots Review URL: https://codereview.chromium.org/981463004 Cr-Commit-Position: refs/heads/master@{#319449}
Diffstat (limited to 'content')
-rw-r--r--content/common/pepper_file_util.cc22
-rw-r--r--content/common/pepper_file_util.h9
-rw-r--r--content/renderer/pepper/audio_helper.cc20
-rw-r--r--content/renderer/pepper/host_array_buffer_var.cc9
-rw-r--r--content/renderer/pepper/pepper_audio_input_host.cc14
-rw-r--r--content/renderer/pepper/pepper_media_stream_track_host_base.cc9
-rw-r--r--content/renderer/pepper/pepper_video_decoder_host.cc10
-rw-r--r--content/renderer/pepper/pepper_video_encoder_host.cc18
-rw-r--r--content/renderer/pepper/ppb_buffer_impl.cc10
-rw-r--r--content/renderer/pepper/ppb_image_data_impl.cc18
10 files changed, 58 insertions, 81 deletions
diff --git a/content/common/pepper_file_util.cc b/content/common/pepper_file_util.cc
index fea5ef2..be253c1 100644
--- a/content/common/pepper_file_util.cc
+++ b/content/common/pepper_file_util.cc
@@ -20,4 +20,26 @@ storage::FileSystemType PepperFileSystemTypeToFileSystemType(
}
}
+base::PlatformFile PlatformFileFromSharedMemoryHandle(
+ const base::SharedMemoryHandle& shm_handle) {
+#if defined(OS_WIN)
+ return shm_handle;
+#elif defined(OS_POSIX)
+ return shm_handle.fd;
+#else
+#error Platform not supported.
+#endif
+}
+
+int IntegerFromSyncSocketHandle(
+ const base::SyncSocket::Handle& socket_handle) {
+#if defined(OS_WIN)
+ return reinterpret_cast<int>(socket_handle);
+#elif defined(OS_POSIX)
+ return socket_handle;
+#else
+#error Platform not supported.
+#endif
+}
+
} // namespace content
diff --git a/content/common/pepper_file_util.h b/content/common/pepper_file_util.h
index aab9c1d..b276cfa 100644
--- a/content/common/pepper_file_util.h
+++ b/content/common/pepper_file_util.h
@@ -5,6 +5,9 @@
#ifndef CONTENT_COMMON_PEPPER_FILE_UTIL_H_
#define CONTENT_COMMON_PEPPER_FILE_UTIL_H_
+#include "base/files/file.h"
+#include "base/memory/shared_memory.h"
+#include "base/sync_socket.h"
#include "ppapi/c/pp_file_info.h"
#include "storage/common/fileapi/file_system_types.h"
@@ -17,6 +20,12 @@ namespace content {
storage::FileSystemType PepperFileSystemTypeToFileSystemType(
PP_FileSystemType type);
+base::PlatformFile PlatformFileFromSharedMemoryHandle(
+ const base::SharedMemoryHandle& shm_handle);
+
+int IntegerFromSyncSocketHandle(
+ const base::SyncSocket::Handle& socket_handle);
+
} // namespace content
#endif // CONTENT_COMMON_PEPPER_FILE_UTIL_H_
diff --git a/content/renderer/pepper/audio_helper.cc b/content/renderer/pepper/audio_helper.cc
index ad6e8f8..a9a9568 100644
--- a/content/renderer/pepper/audio_helper.cc
+++ b/content/renderer/pepper/audio_helper.cc
@@ -5,6 +5,7 @@
#include "content/renderer/pepper/audio_helper.h"
#include "base/logging.h"
+#include "content/common/pepper_file_util.h"
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
@@ -20,13 +21,8 @@ AudioHelper::~AudioHelper() {}
int32_t AudioHelper::GetSyncSocketImpl(int* sync_socket) {
if (socket_for_create_callback_) {
-#if defined(OS_POSIX)
- *sync_socket = socket_for_create_callback_->handle();
-#elif defined(OS_WIN)
- *sync_socket = reinterpret_cast<int>(socket_for_create_callback_->handle());
-#else
-#error "Platform not supported."
-#endif
+ *sync_socket = IntegerFromSyncSocketHandle(
+ socket_for_create_callback_->handle());
return PP_OK;
}
return PP_ERROR_FAILED;
@@ -34,14 +30,8 @@ int32_t AudioHelper::GetSyncSocketImpl(int* sync_socket) {
int32_t AudioHelper::GetSharedMemoryImpl(int* shm_handle, uint32_t* shm_size) {
if (shared_memory_for_create_callback_) {
-#if defined(OS_POSIX)
- *shm_handle = shared_memory_for_create_callback_->handle().fd;
-#elif defined(OS_WIN)
- *shm_handle =
- reinterpret_cast<int>(shared_memory_for_create_callback_->handle());
-#else
-#error "Platform not supported."
-#endif
+ *shm_handle = reinterpret_cast<int>(PlatformFileFromSharedMemoryHandle(
+ shared_memory_for_create_callback_->handle()));
*shm_size = shared_memory_size_for_create_callback_;
return PP_OK;
}
diff --git a/content/renderer/pepper/host_array_buffer_var.cc b/content/renderer/pepper/host_array_buffer_var.cc
index ad8e97b..ad9e5e6 100644
--- a/content/renderer/pepper/host_array_buffer_var.cc
+++ b/content/renderer/pepper/host_array_buffer_var.cc
@@ -11,6 +11,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/shared_memory.h"
#include "base/process/process_handle.h"
+#include "content/common/pepper_file_util.h"
#include "content/common/sandbox_util.h"
#include "content/renderer/pepper/host_globals.h"
#include "content/renderer/pepper/plugin_module.h"
@@ -80,13 +81,7 @@ bool HostArrayBufferVar::CopyToNewShmem(
}
base::PlatformFile platform_file =
-#if defined(OS_WIN)
- shm->handle();
-#elif defined(OS_POSIX)
- shm->handle().fd;
-#else
-#error Not implemented.
-#endif
+ PlatformFileFromSharedMemoryHandle(shm->handle());
*plugin_shm_handle = BrokerGetFileHandleForProcess(platform_file, p, false);
*host_shm_handle_id = -1;
diff --git a/content/renderer/pepper/pepper_audio_input_host.cc b/content/renderer/pepper/pepper_audio_input_host.cc
index 0da9cd1..e96e7ea 100644
--- a/content/renderer/pepper/pepper_audio_input_host.cc
+++ b/content/renderer/pepper/pepper_audio_input_host.cc
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "build/build_config.h"
+#include "content/common/pepper_file_util.h"
#include "content/renderer/pepper/pepper_media_device_manager.h"
#include "content/renderer/pepper/pepper_platform_audio_input.h"
#include "content/renderer/pepper/pepper_plugin_instance_impl.h"
@@ -26,17 +27,6 @@ base::PlatformFile ConvertSyncSocketHandle(const base::SyncSocket& socket) {
return socket.handle();
}
-base::PlatformFile ConvertSharedMemoryHandle(
- const base::SharedMemory& shared_memory) {
-#if defined(OS_POSIX)
- return shared_memory.handle().fd;
-#elif defined(OS_WIN)
- return shared_memory.handle();
-#else
-#error "Platform not supported."
-#endif
-}
-
} // namespace
PepperAudioInputHost::PepperAudioInputHost(RendererPpapiHostImpl* host,
@@ -183,7 +173,7 @@ int32_t PepperAudioInputHost::GetRemoteHandles(
return PP_ERROR_FAILED;
*remote_shared_memory_handle = renderer_ppapi_host_->ShareHandleWithRemote(
- ConvertSharedMemoryHandle(shared_memory), false);
+ PlatformFileFromSharedMemoryHandle(shared_memory.handle()), false);
if (*remote_shared_memory_handle == IPC::InvalidPlatformFileForTransit())
return PP_ERROR_FAILED;
diff --git a/content/renderer/pepper/pepper_media_stream_track_host_base.cc b/content/renderer/pepper/pepper_media_stream_track_host_base.cc
index c771313..c9a75f6 100644
--- a/content/renderer/pepper/pepper_media_stream_track_host_base.cc
+++ b/content/renderer/pepper/pepper_media_stream_track_host_base.cc
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "base/numerics/safe_math.h"
+#include "content/common/pepper_file_util.h"
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/renderer_ppapi_host.h"
#include "ppapi/c/pp_errors.h"
@@ -63,13 +64,7 @@ bool PepperMediaStreamTrackHostBase::InitBuffers(int32_t number_of_buffers,
}
base::PlatformFile platform_file =
-#if defined(OS_WIN)
- shm_handle;
-#elif defined(OS_POSIX)
- shm_handle.fd;
-#else
-#error Not implemented.
-#endif
+ PlatformFileFromSharedMemoryHandle(shm_handle);
SerializedHandle handle(host_->ShareHandleWithRemote(platform_file, false),
size.ValueOrDie());
bool readonly = (track_type == kRead);
diff --git a/content/renderer/pepper/pepper_video_decoder_host.cc b/content/renderer/pepper/pepper_video_decoder_host.cc
index 5c53de9..4aecd53 100644
--- a/content/renderer/pepper/pepper_video_decoder_host.cc
+++ b/content/renderer/pepper/pepper_video_decoder_host.cc
@@ -7,6 +7,7 @@
#include "base/bind.h"
#include "base/memory/shared_memory.h"
#include "content/common/gpu/client/gpu_channel_host.h"
+#include "content/common/pepper_file_util.h"
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/renderer_ppapi_host.h"
#include "content/renderer/pepper/gfx_conversion.h"
@@ -195,13 +196,8 @@ int32_t PepperVideoDecoderHost::OnHostMsgGetShm(
shm_buffers_[shm_id] = shm.release();
}
-#if defined(OS_WIN)
- base::PlatformFile platform_file = shm_handle;
-#elif defined(OS_POSIX)
- base::PlatformFile platform_file = shm_handle.fd;
-#else
-#error Not implemented.
-#endif
+ base::PlatformFile platform_file =
+ PlatformFileFromSharedMemoryHandle(shm_handle);
SerializedHandle handle(
renderer_ppapi_host_->ShareHandleWithRemote(platform_file, false),
shm_size);
diff --git a/content/renderer/pepper/pepper_video_encoder_host.cc b/content/renderer/pepper/pepper_video_encoder_host.cc
index e476cb6..8a50f0d 100644
--- a/content/renderer/pepper/pepper_video_encoder_host.cc
+++ b/content/renderer/pepper/pepper_video_encoder_host.cc
@@ -7,6 +7,7 @@
#include "base/numerics/safe_math.h"
#include "content/common/gpu/client/command_buffer_proxy_impl.h"
#include "content/common/gpu/client/gpu_video_encode_accelerator_host.h"
+#include "content/common/pepper_file_util.h"
#include "content/public/renderer/renderer_ppapi_host.h"
#include "content/renderer/pepper/gfx_conversion.h"
#include "content/renderer/pepper/host_globals.h"
@@ -32,17 +33,6 @@ namespace {
const uint32_t kDefaultNumberOfBitstreamBuffers = 4;
-base::PlatformFile ConvertSharedMemoryHandle(
- const base::SharedMemory& shared_memory) {
-#if defined(OS_POSIX)
- return shared_memory.handle().fd;
-#elif defined(OS_WIN)
- return shared_memory.handle();
-#else
-#error "Platform not supported."
-#endif
-}
-
int32_t PP_FromMediaEncodeAcceleratorError(
media::VideoEncodeAccelerator::Error error) {
switch (error) {
@@ -391,7 +381,8 @@ void PepperVideoEncoderHost::RequireBitstreamBuffers(
encoder_->UseOutputBitstreamBuffer(shm_buffers_[i]->ToBitstreamBuffer());
handles.push_back(SerializedHandle(
renderer_ppapi_host_->ShareHandleWithRemote(
- ConvertSharedMemoryHandle(*shm_buffers_[i]->shm), false),
+ PlatformFileFromSharedMemoryHandle(shm_buffers_[i]->shm->handle()),
+ false),
output_buffer_size));
}
@@ -592,7 +583,8 @@ void PepperVideoEncoderHost::AllocateVideoFrames() {
DCHECK(get_video_frames_reply_context_.is_valid());
get_video_frames_reply_context_.params.AppendHandle(SerializedHandle(
renderer_ppapi_host_->ShareHandleWithRemote(
- ConvertSharedMemoryHandle(*buffer_manager_.shm()), false),
+ PlatformFileFromSharedMemoryHandle(buffer_manager_.shm()->handle()),
+ false),
total_size));
host()->SendReply(get_video_frames_reply_context_,
diff --git a/content/renderer/pepper/ppb_buffer_impl.cc b/content/renderer/pepper/ppb_buffer_impl.cc
index 4ad4b28..a818fce 100644
--- a/content/renderer/pepper/ppb_buffer_impl.cc
+++ b/content/renderer/pepper/ppb_buffer_impl.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
+#include "content/common/pepper_file_util.h"
#include "content/renderer/render_thread_impl.h"
#include "ppapi/c/dev/ppb_buffer_dev.h"
#include "ppapi/c/pp_bool.h"
@@ -78,13 +79,8 @@ void PPB_Buffer_Impl::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
+ *shm_handle = reinterpret_cast<int>(PlatformFileFromSharedMemoryHandle(
+ shared_memory_->handle()));
return PP_OK;
}
diff --git a/content/renderer/pepper/ppb_image_data_impl.cc b/content/renderer/pepper/ppb_image_data_impl.cc
index 21cf96b..cac25c3 100644
--- a/content/renderer/pepper/ppb_image_data_impl.cc
+++ b/content/renderer/pepper/ppb_image_data_impl.cc
@@ -9,6 +9,7 @@
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
+#include "content/common/pepper_file_util.h"
#include "content/common/view_messages.h"
#include "content/renderer/render_thread_impl.h"
#include "ppapi/c/pp_errors.h"
@@ -189,12 +190,8 @@ void ImageDataPlatformBackend::Unmap() {
int32_t ImageDataPlatformBackend::GetSharedMemory(int* handle,
uint32_t* byte_count) {
*byte_count = dib_->size();
-#if defined(OS_WIN)
- *handle = reinterpret_cast<intptr_t>(dib_->handle());
-#else
- *handle = static_cast<intptr_t>(dib_->handle().fd);
-#endif
-
+ *handle = reinterpret_cast<int>(PlatformFileFromSharedMemoryHandle(
+ dib_->handle()));
return PP_OK;
}
@@ -255,13 +252,8 @@ void ImageDataSimpleBackend::Unmap() {
int32_t ImageDataSimpleBackend::GetSharedMemory(int* handle,
uint32_t* byte_count) {
*byte_count = skia_bitmap_.getSize();
-#if defined(OS_POSIX)
- *handle = shared_memory_->handle().fd;
-#elif defined(OS_WIN)
- *handle = reinterpret_cast<int>(shared_memory_->handle());
-#else
-#error "Platform not supported."
-#endif
+ *handle = reinterpret_cast<int>(PlatformFileFromSharedMemoryHandle(
+ shared_memory_->handle()));
return PP_OK;
}