Index: ipc/ipc_channel_mojo.cc |
diff --git a/ipc/ipc_channel_mojo.cc b/ipc/ipc_channel_mojo.cc |
index d0129e3fe0833596ac3b576886f6d3e4ca54fd8f..ab376f4bdc46a697d939694e7fcfe81993bcbfa5 100644 |
--- a/ipc/ipc_channel_mojo.cc |
+++ b/ipc/ipc_channel_mojo.cc |
@@ -479,8 +479,14 @@ void ChannelMojo::AddGenericAssociatedInterface( |
void ChannelMojo::GetGenericRemoteAssociatedInterface( |
const std::string& name, |
mojo::ScopedInterfaceEndpointHandle handle) { |
- if (message_reader_) |
+ if (message_reader_) { |
message_reader_->GetRemoteInterface(name, std::move(handle)); |
+ } else { |
+ // Attach the associated interface to a disconnected pipe, so that the |
+ // associated interface pointer can be used to make calls (which are |
+ // dropped). |
+ mojo::GetIsolatedInterface(std::move(handle)); |
+ } |
} |
} // namespace IPC |