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..0ce7abb4579fed93e2566dc530b751cf9746ede2 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,19 @@ 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_); |
+ DCHECK(io_task_runner_->BelongsToCurrentThread()); |
+ if (!channel_) |
+ return; |
+ |
+ Channel::AssociatedInterfaceSupport* support = |
+ channel_->GetAssociatedInterfaceSupport(); |
+ support->GetGenericRemoteAssociatedInterface(interface_name, |
+ std::move(handle)); |
+} |
+ |
} // namespace IPC |