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}
diff --git a/content/renderer/pepper/audio_helper.cc b/content/renderer/pepper/audio_helper.cc
index ad6e8f87..a9a9568a 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 @@
 
 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::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 @@
   }
 
   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..e96e7ea3 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 @@
   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 @@
     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 c7713135..c9a75f6f 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 @@
   }
 
   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 @@
     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..8a50f0dc 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 @@
 
 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 @@
     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 @@
   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 4ad4b282..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 @@
 }
 
 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 21cf96b9..cac25c30 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 @@
 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 @@
 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;
 }