Index: content/browser/renderer_host/media/media_stream_dispatcher_host.cc |
diff --git a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc |
index fb817b9cf8a738dceeb3c5c6857e376457677e26..64f02208c7fa513bb5f6ff9f416585b249c3d68f 100644 |
--- a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc |
+++ b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc |
@@ -143,18 +143,20 @@ void MediaStreamDispatcherHost::OnChannelClosing() { |
BrowserMessageFilter::OnChannelClosing(); |
DVLOG(1) << "MediaStreamDispatcherHost::OnChannelClosing"; |
- // Since the IPC channel is gone, cancel pending requests and close all |
- // requested VideoCaptureDevices. |
- GetManager()->CancelRequests(this); |
+ // Since the IPC channel is gone, close all requesting/requested streams. |
for (StreamMap::iterator it = streams_.begin(); |
it != streams_.end(); |
- it++) { |
+ ++it) { |
std::string label = it->first; |
GetManager()->StopGeneratedStream(label); |
} |
+ // Clear the map after we have stopped all the streams. |
+ streams_.clear(); |
} |
-MediaStreamDispatcherHost::~MediaStreamDispatcherHost() {} |
+MediaStreamDispatcherHost::~MediaStreamDispatcherHost() { |
+ DCHECK(streams_.empty()); |
+} |
void MediaStreamDispatcherHost::OnGenerateStream( |
int render_view_id, |
@@ -171,7 +173,7 @@ void MediaStreamDispatcherHost::OnGenerateStream( |
std::string label; |
GetManager()->GenerateStream(this, render_process_id_, render_view_id, |
- components, security_origin, &label); |
+ components, security_origin, &label); |
DCHECK(!label.empty()); |
streams_[label] = StreamRequest(render_view_id, page_request_id); |
} |