summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorniklase@chromium.org <niklase@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 18:30:02 +0000
committerniklase@chromium.org <niklase@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-06 18:30:02 +0000
commit93f597e3ee6dc4634ce9b11111979dcaeb93bc8a (patch)
treea80ade7b14e6941325463eeaded445a0b518b72c
parenta4d29b2dff4cb5894e9ff92c132f96c34af76544 (diff)
downloadchromium_src-93f597e3ee6dc4634ce9b11111979dcaeb93bc8a.zip
chromium_src-93f597e3ee6dc4634ce9b11111979dcaeb93bc8a.tar.gz
chromium_src-93f597e3ee6dc4634ce9b11111979dcaeb93bc8a.tar.bz2
Merge 247744 "Make sure DeviceRequestMessageFilter call MediaStr..."
> Make sure DeviceRequestMessageFilter call MediaStreamManager::CancelRequest for all pending requests to MediaStreamManager::EnumerateDevices when the IPC channel is teared down. > > Before this change DeviceRequestMessageFilter call CancelRequest with the render process pid. But that pid was not been used as an identifier when calling EnumerateDevices. > > BUG=338561 > > Review URL: https://codereview.chromium.org/144363005 TBR=perkj@chromium.org Review URL: https://codereview.chromium.org/152543010 git-svn-id: svn://svn.chromium.org/chrome/branches/1750/src@249452 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/renderer_host/media/device_request_message_filter.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/content/browser/renderer_host/media/device_request_message_filter.cc b/content/browser/renderer_host/media/device_request_message_filter.cc
index d5e36da..37e3bea 100644
--- a/content/browser/renderer_host/media/device_request_message_filter.cc
+++ b/content/browser/renderer_host/media/device_request_message_filter.cc
@@ -122,8 +122,11 @@ bool DeviceRequestMessageFilter::OnMessageReceived(const IPC::Message& message,
void DeviceRequestMessageFilter::OnChannelClosing() {
// Since the IPC channel is gone, cancel outstanding device requests.
- media_stream_manager_->CancelAllRequests(peer_pid());
-
+ for (DeviceRequestList::iterator request_it = requests_.begin();
+ request_it != requests_.end(); ++request_it) {
+ media_stream_manager_->CancelRequest(request_it->audio_devices_label);
+ media_stream_manager_->CancelRequest(request_it->video_devices_label);
+ }
requests_.clear();
}