Index: ipc/ipc_sync_message_filter.cc |
diff --git a/ipc/ipc_sync_message_filter.cc b/ipc/ipc_sync_message_filter.cc |
index ffccff3d50889271ac0b4c0926b10f62eb9e4ea8..b9737fd29379b6dcfc640e4a764fef1684b16efd 100644 |
--- a/ipc/ipc_sync_message_filter.cc |
+++ b/ipc/ipc_sync_message_filter.cc |
@@ -276,8 +276,13 @@ void SyncMessageFilter::GetGenericRemoteAssociatedInterface( |
mojo::ScopedInterfaceEndpointHandle handle) { |
base::AutoLock auto_lock(lock_); |
DCHECK(io_task_runner_ && io_task_runner_->BelongsToCurrentThread()); |
- if (!channel_) |
+ if (!channel_) { |
+ // 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)); |
return; |
+ } |
Channel::AssociatedInterfaceSupport* support = |
channel_->GetAssociatedInterfaceSupport(); |