| Index: content/renderer/media/media_stream_video_track.cc | 
| diff --git a/content/renderer/media/media_stream_video_track.cc b/content/renderer/media/media_stream_video_track.cc | 
| index 80d202b08463cab68bd672af966fe3d2e3f06a62..4d3e3da6083a9723556a5211ae963b650c364800 100644 | 
| --- a/content/renderer/media/media_stream_video_track.cc | 
| +++ b/content/renderer/media/media_stream_video_track.cc | 
| @@ -57,10 +57,7 @@ MediaStreamVideoTrack::MediaStreamVideoTrack( | 
|  | 
| MediaStreamVideoTrack::~MediaStreamVideoTrack() { | 
| DCHECK(sinks_.empty()); | 
| -  // TODO(perkj): source can be NULL if this is actually a remote video track. | 
| -  // Remove as soon as we only have one implementation of video tracks. | 
| -  if (source_) | 
| -    source_->RemoveTrack(this); | 
| +  StopTrack(); | 
| } | 
|  | 
| void MediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink) { | 
| @@ -102,6 +99,14 @@ void MediaStreamVideoTrack::SetEnabled(bool enabled) { | 
| } | 
| } | 
|  | 
| +void MediaStreamVideoTrack::StopTrack() { | 
| +  DCHECK(thread_checker_.CalledOnValidThread()); | 
| +  if (source_) { | 
| +    source_->RemoveTrack(this); | 
| +    source_ = NULL; | 
| +  } | 
| +} | 
| + | 
| void MediaStreamVideoTrack::OnVideoFrame( | 
| const scoped_refptr<media::VideoFrame>& frame) { | 
| DCHECK(thread_checker_.CalledOnValidThread()); | 
|  |