diff options
author | lionel.g.landwerlin <lionel.g.landwerlin@intel.com> | 2015-03-06 07:43:46 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-06 15:44:39 +0000 |
commit | 58344bb00df4201fd99734ae77b037351eba70ca (patch) | |
tree | b1621378418b19c9de305b8ce2961cd05f32ed2c /content | |
parent | f4e514de66bc88423b42ccbde1b7f25a5d46b2d9 (diff) | |
download | chromium_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.cc | 22 | ||||
-rw-r--r-- | content/common/pepper_file_util.h | 9 | ||||
-rw-r--r-- | content/renderer/pepper/audio_helper.cc | 20 | ||||
-rw-r--r-- | content/renderer/pepper/host_array_buffer_var.cc | 9 | ||||
-rw-r--r-- | content/renderer/pepper/pepper_audio_input_host.cc | 14 | ||||
-rw-r--r-- | content/renderer/pepper/pepper_media_stream_track_host_base.cc | 9 | ||||
-rw-r--r-- | content/renderer/pepper/pepper_video_decoder_host.cc | 10 | ||||
-rw-r--r-- | content/renderer/pepper/pepper_video_encoder_host.cc | 18 | ||||
-rw-r--r-- | content/renderer/pepper/ppb_buffer_impl.cc | 10 | ||||
-rw-r--r-- | content/renderer/pepper/ppb_image_data_impl.cc | 18 |
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; } |