Index: content/renderer/media/webrtc/media_stream_remote_audio_track.cc |
diff --git a/content/renderer/media/webrtc/media_stream_remote_audio_track.cc b/content/renderer/media/webrtc/media_stream_remote_audio_track.cc |
index 17df845f81c491b3c9a0631d3a20835f1b05aa1a..f49891e9fb663241a21e1cfb46db167624f5d89c 100644 |
--- a/content/renderer/media/webrtc/media_stream_remote_audio_track.cc |
+++ b/content/renderer/media/webrtc/media_stream_remote_audio_track.cc |
@@ -120,7 +120,8 @@ MediaStreamRemoteAudioTrack::MediaStreamRemoteAudioTrack( |
MediaStreamRemoteAudioTrack::~MediaStreamRemoteAudioTrack() { |
DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
- source()->RemoveAll(this); |
+ // Ensure the track is stopped. |
+ Stop(); |
} |
void MediaStreamRemoteAudioTrack::SetEnabled(bool enabled) { |
@@ -141,6 +142,11 @@ void MediaStreamRemoteAudioTrack::SetEnabled(bool enabled) { |
void MediaStreamRemoteAudioTrack::Stop() { |
DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
+ |
+ MediaStreamAudioTrack::WillStopTrack(); |
o1ka
2016/03/01 14:18:59
What if some observers rely on the fact that the c
miu
2016/03/02 01:12:50
Good point, and I made the behavior more precisely
o1ka
2016/03/02 16:31:14
I like it!
|
+ |
+ source()->RemoveAll(this); |
+ |
// Stop means that a track should be stopped permanently. But |
// since there is no proper way of doing that on a remote track, we can |
// at least disable the track. Blink will not call down to the content layer |