| Index: ppapi/proxy/resource_message_params.cc
|
| diff --git a/ppapi/proxy/resource_message_params.cc b/ppapi/proxy/resource_message_params.cc
|
| index 5c70e49d98ea9799f6e3ba2cb80d601b841e9075..6d3fa02f465236e903b54445ca1c8700cce15aa2 100644
|
| --- a/ppapi/proxy/resource_message_params.cc
|
| +++ b/ppapi/proxy/resource_message_params.cc
|
| @@ -27,12 +27,51 @@ ResourceMessageParams::~ResourceMessageParams() {
|
| void ResourceMessageParams::Serialize(IPC::Message* msg) const {
|
| IPC::ParamTraits<PP_Resource>::Write(msg, pp_resource_);
|
| IPC::ParamTraits<int32_t>::Write(msg, sequence_);
|
| + IPC::ParamTraits<std::vector<SerializedHandle> >::Write(msg, handles_);
|
| }
|
|
|
| bool ResourceMessageParams::Deserialize(const IPC::Message* msg,
|
| PickleIterator* iter) {
|
| return IPC::ParamTraits<PP_Resource>::Read(msg, iter, &pp_resource_) &&
|
| - IPC::ParamTraits<int32_t>::Read(msg, iter, &sequence_);
|
| + IPC::ParamTraits<int32_t>::Read(msg, iter, &sequence_) &&
|
| + IPC::ParamTraits<std::vector<SerializedHandle> >::Read(
|
| + msg, iter, &handles_);
|
| +}
|
| +
|
| +const SerializedHandle* ResourceMessageParams::GetHandleOfTypeAtIndex(
|
| + size_t index,
|
| + SerializedHandle::Type type) const {
|
| + if (handles_.size() <= index)
|
| + return NULL;
|
| + if (handles_[index].type() != type)
|
| + return NULL;
|
| + return &handles_[index];
|
| +}
|
| +
|
| +bool ResourceMessageParams::GetSharedMemoryHandleAtIndex(
|
| + size_t index,
|
| + base::SharedMemoryHandle* handle) const {
|
| + const SerializedHandle* serialized = GetHandleOfTypeAtIndex(
|
| + index, SerializedHandle::SHARED_MEMORY);
|
| + if (!serialized)
|
| + return false;
|
| + *handle = serialized->shmem();
|
| + return true;
|
| +}
|
| +
|
| +bool ResourceMessageParams::GetSocketHandleAtIndex(
|
| + size_t index,
|
| + IPC::PlatformFileForTransit* handle) const {
|
| + const SerializedHandle* serialized = GetHandleOfTypeAtIndex(
|
| + index, SerializedHandle::SOCKET);
|
| + if (!serialized)
|
| + return false;
|
| + *handle = serialized->descriptor();
|
| + return true;
|
| +}
|
| +
|
| +void ResourceMessageParams::AppendHandle(const SerializedHandle& handle) {
|
| + handles_.push_back(handle);
|
| }
|
|
|
| ResourceMessageCallParams::ResourceMessageCallParams()
|
|
|