| Index: webrtc/pc/channel.cc
 | 
| diff --git a/webrtc/pc/channel.cc b/webrtc/pc/channel.cc
 | 
| index 8e916f12793802f245313b3c088050b128961cdc..1b31836db3b01314ca387a592525ae847a1c6d95 100644
 | 
| --- a/webrtc/pc/channel.cc
 | 
| +++ b/webrtc/pc/channel.cc
 | 
| @@ -19,6 +19,7 @@
 | 
|  #include "webrtc/base/copyonwritebuffer.h"
 | 
|  #include "webrtc/base/dscp.h"
 | 
|  #include "webrtc/base/logging.h"
 | 
| +#include "webrtc/base/networkroute.h"
 | 
|  #include "webrtc/base/trace_event.h"
 | 
|  #include "webrtc/media/base/mediaconstants.h"
 | 
|  #include "webrtc/media/base/rtputils.h"
 | 
| @@ -346,6 +347,8 @@ void BaseChannel::ConnectToTransportChannel(TransportChannel* tc) {
 | 
|    tc->SignalReadPacket.connect(this, &BaseChannel::OnChannelRead);
 | 
|    tc->SignalReadyToSend.connect(this, &BaseChannel::OnReadyToSend);
 | 
|    tc->SignalDtlsState.connect(this, &BaseChannel::OnDtlsState);
 | 
| +  tc->SignalBestConnectionChanged.connect(
 | 
| +      this, &BaseChannel::OnBestConnectionChanged);
 | 
|  }
 | 
|  
 | 
|  void BaseChannel::DisconnectFromTransportChannel(TransportChannel* tc) {
 | 
| @@ -504,6 +507,19 @@ void BaseChannel::OnDtlsState(TransportChannel* channel,
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +void BaseChannel::OnBestConnectionChanged(TransportChannel* channel,
 | 
| +                                          Connection* best_connection) {
 | 
| +  ASSERT(channel == transport_channel_ || channel == rtcp_transport_channel_);
 | 
| +  NetworkRoute network_route;
 | 
| +  if (best_connection) {
 | 
| +    network_route =
 | 
| +        NetworkRoute(best_connection->local_candidate().network_id(),
 | 
| +                     best_connection->remote_candidate().network_id());
 | 
| +  }
 | 
| +  media_channel()->OnNetworkRouteChanged(channel->transport_name(),
 | 
| +                                         network_route);
 | 
| +}
 | 
| +
 | 
|  void BaseChannel::SetReadyToSend(bool rtcp, bool ready) {
 | 
|    if (rtcp) {
 | 
|      rtcp_ready_to_send_ = ready;
 | 
| 
 |