| Index: ipc/ipc_channel_mojo.cc | 
| diff --git a/ipc/ipc_channel_mojo.cc b/ipc/ipc_channel_mojo.cc | 
| index 22efa3a335f6a9594eda2dccad69497dc8579b80..70a12f4f37e07edce6bbf238bd85358f7dc06d47 100644 | 
| --- a/ipc/ipc_channel_mojo.cc | 
| +++ b/ipc/ipc_channel_mojo.cc | 
| @@ -307,6 +307,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) { | 
| @@ -392,6 +400,9 @@ base::ProcessId ChannelMojo::GetSelfPID() const { | 
| return bootstrap_->GetSelfPID(); | 
| } | 
|  | 
| +Channel::AssociatedInterfaceSupport* | 
| +ChannelMojo::GetAssociatedInterfaceSupport() { return this; } | 
| + | 
| void ChannelMojo::OnMessageReceived(const Message& message) { | 
| TRACE_EVENT2("ipc,toplevel", "ChannelMojo::OnMessageReceived", | 
| "class", IPC_MESSAGE_ID_CLASS(message.type()), | 
| @@ -468,4 +479,23 @@ MojoResult ChannelMojo::WriteToMessageAttachmentSet( | 
| return MOJO_RESULT_OK; | 
| } | 
|  | 
| +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)); | 
| +} | 
| + | 
| }  // namespace IPC | 
|  |