Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1192)

Unified Diff: content/browser/renderer_host/media/media_stream_dispatcher_host.cc

Issue 10829190: Resolve the problems where we can leak the system tray UI (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed testbots. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 1f6eb439be11feb706b460abf3094e3f75812b2c..0781d069d742d3f0b7d831c8c083ffc198b8b324 100644
--- a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc
+++ b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc
@@ -142,18 +142,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,
@@ -170,7 +172,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);
}

Powered by Google App Engine
This is Rietveld 408576698