| Index: ipc/ipc_channel_mojo.cc
|
| diff --git a/ipc/ipc_channel_mojo.cc b/ipc/ipc_channel_mojo.cc
|
| index 5d468ab59b5446ef8cac9482bad6a8a375c95952..e71baff895e6892d9dc36d6d0bfc44f1f159b7eb 100644
|
| --- a/ipc/ipc_channel_mojo.cc
|
| +++ b/ipc/ipc_channel_mojo.cc
|
| @@ -126,14 +126,14 @@
|
|
|
| MojoResult WrapAttachmentImpl(MessageAttachment* attachment,
|
| mojom::SerializedHandlePtr* serialized) {
|
| - if (attachment->GetType() == MessageAttachment::Type::MOJO_HANDLE) {
|
| + if (attachment->GetType() == MessageAttachment::TYPE_MOJO_HANDLE) {
|
| *serialized = CreateSerializedHandle(
|
| static_cast<internal::MojoHandleAttachment&>(*attachment).TakeHandle(),
|
| mojom::SerializedHandle::Type::MOJO_HANDLE);
|
| return MOJO_RESULT_OK;
|
| }
|
| #if defined(OS_POSIX)
|
| - if (attachment->GetType() == MessageAttachment::Type::PLATFORM_FILE) {
|
| + if (attachment->GetType() == MessageAttachment::TYPE_PLATFORM_FILE) {
|
| // We dup() the handles in IPC::Message to transmit.
|
| // IPC::MessageAttachmentSet has intricate lifecycle semantics
|
| // of FDs, so just to dup()-and-own them is the safest option.
|
| @@ -150,7 +150,10 @@
|
| }
|
| #endif
|
| #if defined(OS_MACOSX)
|
| - DCHECK_EQ(attachment->GetType(), MessageAttachment::Type::MACH_PORT);
|
| + DCHECK_EQ(attachment->GetType(),
|
| + MessageAttachment::TYPE_BROKERABLE_ATTACHMENT);
|
| + DCHECK_EQ(static_cast<BrokerableAttachment&>(*attachment).GetBrokerableType(),
|
| + BrokerableAttachment::MACH_PORT);
|
| internal::MachPortAttachmentMac& mach_port_attachment =
|
| static_cast<internal::MachPortAttachmentMac&>(*attachment);
|
| MojoResult result = WrapMachPort(mach_port_attachment.get_mach_port(),
|
| @@ -158,7 +161,10 @@
|
| mach_port_attachment.reset_mach_port_ownership();
|
| return result;
|
| #elif defined(OS_WIN)
|
| - DCHECK_EQ(attachment->GetType(), MessageAttachment::Type::WIN_HANDLE);
|
| + DCHECK_EQ(attachment->GetType(),
|
| + MessageAttachment::TYPE_BROKERABLE_ATTACHMENT);
|
| + DCHECK_EQ(static_cast<BrokerableAttachment&>(*attachment).GetBrokerableType(),
|
| + BrokerableAttachment::WIN_HANDLE);
|
| internal::HandleAttachmentWin& handle_attachment =
|
| static_cast<internal::HandleAttachmentWin&>(*attachment);
|
| MojoResult result = WrapPlatformHandle(
|
| @@ -405,9 +411,18 @@
|
| std::vector<mojom::SerializedHandlePtr> output_handles;
|
| MessageAttachmentSet* set = message->attachment_set();
|
|
|
| - for (unsigned i = 0; result == MOJO_RESULT_OK && i < set->size(); ++i) {
|
| - result = WrapAttachment(set->GetAttachmentAt(i).get(), &output_handles);
|
| - }
|
| + for (unsigned i = 0;
|
| + result == MOJO_RESULT_OK && i < set->num_non_brokerable_attachments();
|
| + ++i) {
|
| + result = WrapAttachment(set->GetNonBrokerableAttachmentAt(i).get(),
|
| + &output_handles);
|
| + }
|
| + for (unsigned i = 0;
|
| + result == MOJO_RESULT_OK && i < set->num_brokerable_attachments(); ++i) {
|
| + result = WrapAttachment(set->GetBrokerableAttachmentAt(i).get(),
|
| + &output_handles);
|
| + }
|
| +
|
| set->CommitAllDescriptors();
|
|
|
| if (!output_handles.empty())
|
|
|