Index: ipc/ipc_sync_message_filter.cc |
diff --git a/ipc/ipc_sync_message_filter.cc b/ipc/ipc_sync_message_filter.cc |
index b399833186f0a8099d6f7601079aacefb9b82589..77c6a3a0c77ddff52615b35096fa2a5a104e2151 100644 |
--- a/ipc/ipc_sync_message_filter.cc |
+++ b/ipc/ipc_sync_message_filter.cc |
@@ -172,6 +172,11 @@ void SyncMessageFilter::OnFilterAdded(Channel* channel) { |
{ |
base::AutoLock auto_lock(lock_); |
channel_ = channel; |
+ Channel::AssociatedInterfaceSupport* support = |
+ channel_->GetAssociatedInterfaceSupport(); |
+ if (support) |
+ channel_associated_group_ = *support->GetAssociatedGroup(); |
+ |
io_task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
shutdown_watcher_.StartWatching( |
shutdown_event_, |
@@ -270,4 +275,18 @@ void SyncMessageFilter::OnIOMessageLoopDestroyed() { |
shutdown_mojo_event_.Signal(); |
} |
+void SyncMessageFilter::GetGenericRemoteAssociatedInterface( |
+ const std::string& interface_name, |
+ mojo::ScopedInterfaceEndpointHandle handle) { |
+ base::AutoLock auto_lock(lock_); |
+ DCHECK(io_task_runner_ && io_task_runner_->BelongsToCurrentThread()); |
+ if (!channel_) |
+ return; |
+ |
+ Channel::AssociatedInterfaceSupport* support = |
+ channel_->GetAssociatedInterfaceSupport(); |
+ support->GetGenericRemoteAssociatedInterface( |
+ interface_name, std::move(handle)); |
+} |
+ |
} // namespace IPC |