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); |
} |