Index: ipc/ipc_channel_mojo.cc |
diff --git a/ipc/ipc_channel_mojo.cc b/ipc/ipc_channel_mojo.cc |
index 22efa3a335f6a9594eda2dccad69497dc8579b80..b7f7a4f35dbc13b2e7d3a5abbd8c5a66a0edccab 100644 |
--- a/ipc/ipc_channel_mojo.cc |
+++ b/ipc/ipc_channel_mojo.cc |
@@ -294,6 +294,25 @@ void ChannelMojo::Close() { |
reader.reset(); |
} |
+mojo::AssociatedGroup* ChannelMojo::GetAssociatedGroup() { |
+ DCHECK(bootstrap_); |
+ return bootstrap_->GetAssociatedGroup(); |
+} |
+ |
+void ChannelMojo::AddGenericAssociatedInterface( |
+ const std::string& name, |
+ const GenericAssociatedInterfaceFactory& factory) { |
+ auto result = associated_interfaces_.insert({ name, factory }); |
+ DCHECK(result.second); |
+} |
+ |
+void ChannelMojo::GetGenericRemoteAssociatedInterface( |
+ const std::string& name, |
+ mojo::ScopedInterfaceEndpointHandle handle) { |
+ DCHECK(message_reader_); |
+ message_reader_->GetRemoteInterface(name, std::move(handle)); |
+} |
+ |
// MojoBootstrap::Delegate implementation |
void ChannelMojo::OnPipesAvailable( |
mojom::ChannelAssociatedPtrInfo send_channel, |
@@ -307,6 +326,14 @@ void ChannelMojo::OnBootstrapError() { |
listener_->OnChannelError(); |
} |
+void ChannelMojo::OnAssociatedInterfaceRequest( |
+ const std::string& name, |
+ mojo::ScopedInterfaceEndpointHandle handle) { |
+ auto iter = associated_interfaces_.find(name); |
+ if (iter != associated_interfaces_.end()) |
+ iter->second.Run(std::move(handle)); |
+} |
+ |
void ChannelMojo::InitMessageReader(mojom::ChannelAssociatedPtrInfo sender, |
mojom::ChannelAssociatedRequest receiver, |
base::ProcessId peer_pid) { |