| Index: content/renderer/media/media_stream_video_source.cc | 
| diff --git a/content/renderer/media/media_stream_video_source.cc b/content/renderer/media/media_stream_video_source.cc | 
| index 243d361323c6a4116526437ea1462f61cb74fa6d..be6b23b2d9295888ca98a1a86bfefc5b37b38a3f 100644 | 
| --- a/content/renderer/media/media_stream_video_source.cc | 
| +++ b/content/renderer/media/media_stream_video_source.cc | 
| @@ -337,10 +337,13 @@ void MediaStreamVideoSource::AddTrack( | 
| } | 
|  | 
| void MediaStreamVideoSource::RemoveTrack(MediaStreamVideoTrack* video_track) { | 
| +  DCHECK(CalledOnValidThread()); | 
| std::vector<MediaStreamVideoTrack*>::iterator it = | 
| std::find(tracks_.begin(), tracks_.end(), video_track); | 
| DCHECK(it != tracks_.end()); | 
| tracks_.erase(it); | 
| +  if (tracks_.empty()) | 
| +    StopSource(); | 
| } | 
|  | 
| void MediaStreamVideoSource::InitAdapter() { | 
| @@ -367,6 +370,7 @@ webrtc::VideoSourceInterface* MediaStreamVideoSource::GetAdapter() { | 
| } | 
|  | 
| void MediaStreamVideoSource::DoStopSource() { | 
| +  DCHECK(CalledOnValidThread()); | 
| DVLOG(3) << "DoStopSource()"; | 
| StopSourceImpl(); | 
| state_ = ENDED; | 
|  |