| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ppapi/proxy/serialized_handle.h" | 5 #include "ppapi/proxy/serialized_handle.h" |
| 6 | 6 |
| 7 #include "base/files/file.h" | 7 #include "base/files/file.h" |
| 8 #include "base/memory/shared_memory.h" | 8 #include "base/memory/shared_memory.h" |
| 9 #include "base/pickle.h" | 9 #include "base/pickle.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| 11 #include "ipc/ipc_platform_file.h" | 11 #include "ipc/ipc_platform_file.h" |
| 12 | 12 |
| 13 #if defined(OS_NACL) | 13 #if defined(OS_NACL) |
| 14 #include <unistd.h> | 14 #include <unistd.h> |
| 15 #endif | 15 #endif |
| 16 | 16 |
| 17 namespace ppapi { | 17 namespace ppapi { |
| 18 namespace proxy { | 18 namespace proxy { |
| 19 | 19 |
| 20 SerializedHandle::SerializedHandle() | 20 SerializedHandle::SerializedHandle() |
| 21 : type_(INVALID), | 21 : type_(INVALID), |
| 22 shm_handle_(base::SharedMemory::NULLHandle()), | |
| 23 size_(0), | 22 size_(0), |
| 24 descriptor_(IPC::InvalidPlatformFileForTransit()), | 23 descriptor_(IPC::InvalidPlatformFileForTransit()), |
| 25 open_flags_(0), | 24 open_flags_(0), |
| 26 file_io_(0) { | 25 file_io_(0) { |
| 27 } | 26 } |
| 28 | 27 |
| 29 SerializedHandle::SerializedHandle(Type type_param) | 28 SerializedHandle::SerializedHandle(Type type_param) |
| 30 : type_(type_param), | 29 : type_(type_param), |
| 31 shm_handle_(base::SharedMemory::NULLHandle()), | |
| 32 size_(0), | 30 size_(0), |
| 33 descriptor_(IPC::InvalidPlatformFileForTransit()), | 31 descriptor_(IPC::InvalidPlatformFileForTransit()), |
| 34 open_flags_(0), | 32 open_flags_(0), |
| 35 file_io_(0) { | 33 file_io_(0) { |
| 36 } | 34 } |
| 37 | 35 |
| 38 SerializedHandle::SerializedHandle(const base::SharedMemoryHandle& handle, | 36 SerializedHandle::SerializedHandle(const base::SharedMemoryHandle& handle, |
| 39 uint32_t size) | 37 uint32_t size) |
| 40 : type_(SHARED_MEMORY), | 38 : type_(SHARED_MEMORY), |
| 41 shm_handle_(handle), | 39 shm_handle_(handle), |
| 42 size_(size), | 40 size_(size), |
| 43 descriptor_(IPC::InvalidPlatformFileForTransit()), | 41 descriptor_(IPC::InvalidPlatformFileForTransit()), |
| 44 open_flags_(0), | 42 open_flags_(0), |
| 45 file_io_(0) {} | 43 file_io_(0) {} |
| 46 | 44 |
| 47 SerializedHandle::SerializedHandle( | 45 SerializedHandle::SerializedHandle( |
| 48 Type type, | 46 Type type, |
| 49 const IPC::PlatformFileForTransit& socket_descriptor) | 47 const IPC::PlatformFileForTransit& socket_descriptor) |
| 50 : type_(type), | 48 : type_(type), |
| 51 shm_handle_(base::SharedMemory::NULLHandle()), | |
| 52 size_(0), | 49 size_(0), |
| 53 descriptor_(socket_descriptor), | 50 descriptor_(socket_descriptor), |
| 54 open_flags_(0), | 51 open_flags_(0), |
| 55 file_io_(0) { | 52 file_io_(0) { |
| 56 } | 53 } |
| 57 | 54 |
| 58 bool SerializedHandle::IsHandleValid() const { | 55 bool SerializedHandle::IsHandleValid() const { |
| 59 switch (type_) { | 56 switch (type_) { |
| 60 case SHARED_MEMORY: | 57 case SHARED_MEMORY: |
| 61 return base::SharedMemory::IsHandleValid(shm_handle_); | 58 return base::SharedMemory::IsHandleValid(shm_handle_); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 break; | 132 break; |
| 136 // No default so the compiler will warn us if a new type is added. | 133 // No default so the compiler will warn us if a new type is added. |
| 137 } | 134 } |
| 138 if (valid_type) | 135 if (valid_type) |
| 139 hdr->type = Type(type); | 136 hdr->type = Type(type); |
| 140 return valid_type; | 137 return valid_type; |
| 141 } | 138 } |
| 142 | 139 |
| 143 } // namespace proxy | 140 } // namespace proxy |
| 144 } // namespace ppapi | 141 } // namespace ppapi |
| OLD | NEW |