| Index: ppapi/proxy/ppapi_param_traits.cc
|
| diff --git a/ppapi/proxy/ppapi_param_traits.cc b/ppapi/proxy/ppapi_param_traits.cc
|
| index 87ce4fc1ee7fcc01a824c0e09e79689144944f76..bcb2df067e6848db40e229c9dafbe0108b40a77f 100644
|
| --- a/ppapi/proxy/ppapi_param_traits.cc
|
| +++ b/ppapi/proxy/ppapi_param_traits.cc
|
| @@ -312,7 +312,62 @@ void ParamTraits< std::vector<ppapi::PPB_FileRef_CreateInfo> >::Log(
|
| std::string* l) {
|
| }
|
|
|
| -#if !defined(OS_NACL)
|
| +// SerializedHandle ------------------------------------------------------------
|
| +
|
| +// static
|
| +void ParamTraits<ppapi::proxy::SerializedHandle>::Write(Message* m,
|
| + const param_type& p) {
|
| + ppapi::proxy::SerializedHandle::WriteHeader(p.header(), m);
|
| + switch (p.type()) {
|
| + case ppapi::proxy::SerializedHandle::SHARED_MEMORY:
|
| + ParamTraits<base::SharedMemoryHandle>::Write(m, p.shmem());
|
| + break;
|
| + case ppapi::proxy::SerializedHandle::SOCKET:
|
| + ParamTraits<IPC::PlatformFileForTransit>::Write(m, p.descriptor());
|
| + break;
|
| + case ppapi::proxy::SerializedHandle::INVALID:
|
| + break;
|
| + // No default so the compiler will warn on new types.
|
| + }
|
| +}
|
| +
|
| +// static
|
| +bool ParamTraits<ppapi::proxy::SerializedHandle>::Read(const Message* m,
|
| + PickleIterator* iter,
|
| + param_type* r) {
|
| + ppapi::proxy::SerializedHandle::Header header;
|
| + if (!ppapi::proxy::SerializedHandle::ReadHeader(iter, &header))
|
| + return false;
|
| + switch (header.type) {
|
| + case ppapi::proxy::SerializedHandle::SHARED_MEMORY: {
|
| + base::SharedMemoryHandle handle;
|
| + if (ParamTraits<base::SharedMemoryHandle>::Read(m, iter, &handle)) {
|
| + r->set_shmem(handle, header.size);
|
| + return true;
|
| + }
|
| + break;
|
| + }
|
| + case ppapi::proxy::SerializedHandle::SOCKET: {
|
| + IPC::PlatformFileForTransit socket;
|
| + if (ParamTraits<IPC::PlatformFileForTransit>::Read(m, iter, &socket)) {
|
| + r->set_socket(socket);
|
| + return true;
|
| + }
|
| + break;
|
| + }
|
| + case ppapi::proxy::SerializedHandle::INVALID:
|
| + return true;
|
| + // No default so the compiler will warn us if a new type is added.
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +// static
|
| +void ParamTraits<ppapi::proxy::SerializedHandle>::Log(const param_type& p,
|
| + std::string* l) {
|
| +}
|
| +
|
| +#if !defined(OS_NACL) && !defined(NACL_WIN64)
|
| // PPBFlash_DrawGlyphs_Params --------------------------------------------------
|
| // static
|
| void ParamTraits<ppapi::proxy::PPBFlash_DrawGlyphs_Params>::Write(
|
| @@ -507,6 +562,6 @@ bool ParamTraits<ppapi::PPB_X509Certificate_Fields>::Read(const Message* m,
|
| void ParamTraits<ppapi::PPB_X509Certificate_Fields>::Log(const param_type& p,
|
| std::string* l) {
|
| }
|
| -#endif // !defined(OS_NACL)
|
| +#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
|
|
|
| } // namespace IPC
|
|
|