| Index: remoting/protocol/channel_dispatcher_base.cc
 | 
| diff --git a/remoting/protocol/channel_dispatcher_base.cc b/remoting/protocol/channel_dispatcher_base.cc
 | 
| index 274c0d5a58dffc4c1695bfca77cfc85dac32b888..97f3be5e4857ae9076d177b159acdea79b33658d 100644
 | 
| --- a/remoting/protocol/channel_dispatcher_base.cc
 | 
| +++ b/remoting/protocol/channel_dispatcher_base.cc
 | 
| @@ -31,15 +31,29 @@ void ChannelDispatcherBase::Init(MessageChannelFactory* channel_factory,
 | 
|        &ChannelDispatcherBase::OnChannelReady, base::Unretained(this)));
 | 
|  }
 | 
|  
 | 
| +void ChannelDispatcherBase::Init(std::unique_ptr<MessagePipe> message_pipe,
 | 
| +                                 EventHandler* event_handler) {
 | 
| +  event_handler_ = event_handler;
 | 
| +  OnChannelReady(std::move(message_pipe));
 | 
| +}
 | 
| +
 | 
|  void ChannelDispatcherBase::OnChannelReady(
 | 
|      std::unique_ptr<MessagePipe> message_pipe) {
 | 
|    channel_factory_ = nullptr;
 | 
|    message_pipe_ = std::move(message_pipe);
 | 
| -  message_pipe_->StartReceiving(base::Bind(
 | 
| -      &ChannelDispatcherBase::OnIncomingMessage, base::Unretained(this)));
 | 
| +  message_pipe_->Start(this);
 | 
|  
 | 
|    event_handler_->OnChannelInitialized(this);
 | 
|  }
 | 
|  
 | 
| +void ChannelDispatcherBase::OnMessageReceived(
 | 
| +    std::unique_ptr<CompoundBuffer> message) {
 | 
| +  OnIncomingMessage(std::move(message));
 | 
| +}
 | 
| +
 | 
| +void ChannelDispatcherBase::OnMessagePipeClosed() {
 | 
| +  event_handler_->OnChannelClosed(this);
 | 
| +}
 | 
| +
 | 
|  }  // namespace protocol
 | 
|  }  // namespace remoting
 | 
| 
 |