| Index: ipc/attachment_broker_privileged_win.cc | 
| diff --git a/ipc/attachment_broker_privileged_win.cc b/ipc/attachment_broker_privileged_win.cc | 
| index 52918a30b4771b9a2ca5d3c989ed64dce61061b2..965f3b45dffe7970f2d048ad9d1dcf40254771aa 100644 | 
| --- a/ipc/attachment_broker_privileged_win.cc | 
| +++ b/ipc/attachment_broker_privileged_win.cc | 
| @@ -39,11 +39,11 @@ bool AttachmentBrokerPrivilegedWin::SendAttachmentToProcess( | 
|  | 
| bool AttachmentBrokerPrivilegedWin::OnMessageReceived(const Message& msg) { | 
| bool handled = true; | 
| -  IPC_BEGIN_MESSAGE_MAP(AttachmentBrokerPrivilegedWin, msg) | 
| -    IPC_MESSAGE_HANDLER(AttachmentBrokerMsg_DuplicateWinHandle, | 
| -                        OnDuplicateWinHandle) | 
| +  switch (msg.type()) { | 
| +    IPC_MESSAGE_HANDLER_GENERIC(AttachmentBrokerMsg_DuplicateWinHandle, | 
| +                                OnDuplicateWinHandle(msg)) | 
| IPC_MESSAGE_UNHANDLED(handled = false) | 
| -  IPC_END_MESSAGE_MAP() | 
| +  } | 
| return handled; | 
| } | 
|  | 
| @@ -62,13 +62,18 @@ void AttachmentBrokerPrivilegedWin::DeregisterCommunicationChannel( | 
| } | 
|  | 
| void AttachmentBrokerPrivilegedWin::OnDuplicateWinHandle( | 
| -    const HandleWireFormat& wire_format, | 
| -    base::ProcessId source_pid) { | 
| +    const IPC::Message& message) { | 
| +  AttachmentBrokerMsg_DuplicateWinHandle::Param param; | 
| +  if (!AttachmentBrokerMsg_DuplicateWinHandle::Read(&message, ¶m)) | 
| +    return; | 
| +  IPC::internal::HandleAttachmentWin::WireFormat wire_format = | 
| +      base::get<0>(param); | 
| + | 
| if (wire_format.destination_process == base::kNullProcessId) | 
| return; | 
|  | 
| HandleWireFormat new_wire_format = | 
| -      DuplicateWinHandle(wire_format, source_pid); | 
| +      DuplicateWinHandle(wire_format, message.get_sender_pid()); | 
| RouteDuplicatedHandle(new_wire_format); | 
| } | 
|  | 
|  |