| Index: ppapi/proxy/serialized_structs.h
|
| diff --git a/ppapi/proxy/serialized_structs.h b/ppapi/proxy/serialized_structs.h
|
| index d27b52cded123a2f4a337e581039d8c1889681a8..def852fe14b3b943233474e873fee62736de0b4d 100644
|
| --- a/ppapi/proxy/serialized_structs.h
|
| +++ b/ppapi/proxy/serialized_structs.h
|
| @@ -85,7 +85,7 @@ struct PPBURLLoader_UpdateProgress_Params {
|
| // them in NaClIPCAdapter for use in NaCl.
|
| class PPAPI_PROXY_EXPORT SerializedHandle {
|
| public:
|
| - enum Type { INVALID, SHARED_MEMORY, SOCKET, CHANNEL_HANDLE };
|
| + enum Type { INVALID, SHARED_MEMORY, SOCKET, CHANNEL_HANDLE, FILE };
|
| struct Header {
|
| Header() : type(INVALID), size(0) {}
|
| Header(Type type_arg, uint32_t size_arg)
|
| @@ -102,7 +102,7 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
|
| // Create a shared memory handle.
|
| SerializedHandle(const base::SharedMemoryHandle& handle, uint32_t size);
|
|
|
| - // Create a socket or channel handle.
|
| + // Create a socket, channel or file handle.
|
| SerializedHandle(const Type type,
|
| const IPC::PlatformFileForTransit& descriptor);
|
|
|
| @@ -110,6 +110,7 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
|
| bool is_shmem() const { return type_ == SHARED_MEMORY; }
|
| bool is_socket() const { return type_ == SOCKET; }
|
| bool is_channel_handle() const { return type_ == CHANNEL_HANDLE; }
|
| + bool is_file() const { return type_ == FILE; }
|
| const base::SharedMemoryHandle& shmem() const {
|
| DCHECK(is_shmem());
|
| return shm_handle_;
|
| @@ -119,7 +120,7 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
|
| return size_;
|
| }
|
| const IPC::PlatformFileForTransit& descriptor() const {
|
| - DCHECK(is_socket() || is_channel_handle());
|
| + DCHECK(is_socket() || is_channel_handle() || is_file());
|
| return descriptor_;
|
| }
|
| void set_shmem(const base::SharedMemoryHandle& handle, uint32_t size) {
|
| @@ -143,6 +144,13 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
|
| shm_handle_ = base::SharedMemory::NULLHandle();
|
| size_ = 0;
|
| }
|
| + void set_file_handle(const IPC::PlatformFileForTransit& descriptor) {
|
| + type_ = FILE;
|
| +
|
| + descriptor_ = descriptor;
|
| + shm_handle_ = base::SharedMemory::NULLHandle();
|
| + size_ = 0;
|
| + }
|
| void set_null_shmem() {
|
| set_shmem(base::SharedMemory::NULLHandle(), 0);
|
| }
|
| @@ -152,6 +160,9 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
|
| void set_null_channel_handle() {
|
| set_channel_handle(IPC::InvalidPlatformFileForTransit());
|
| }
|
| + void set_null_file_handle() {
|
| + set_file_handle(IPC::InvalidPlatformFileForTransit());
|
| + }
|
| bool IsHandleValid() const;
|
|
|
| Header header() const {
|
|
|