diff options
author | perkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-18 12:07:06 +0000 |
---|---|---|
committer | perkj@chromium.org <perkj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-18 12:07:06 +0000 |
commit | 8aceb51986bc0b2d1bb6a37503d6b76891da72c6 (patch) | |
tree | b7caac3266cb3a09e2ba2fe23c505776993bd2c7 /content | |
parent | 5e2b4c166199f3c8dfbfa3e4e959fcfdd2a97f83 (diff) | |
download | chromium_src-8aceb51986bc0b2d1bb6a37503d6b76891da72c6.zip chromium_src-8aceb51986bc0b2d1bb6a37503d6b76891da72c6.tar.gz chromium_src-8aceb51986bc0b2d1bb6a37503d6b76891da72c6.tar.bz2 |
Fix cancelling of device enumeration requests.
TEST= Log using --vmodule=media_stream_manager*=3,media_stream_dispatcher*=3 and make sure the log print out media_stream_manager.cc(316)]CancelRequest(
after
MediaStreamDispatcher::StopEnumerateDevices() while using the webcam on youtube.com/my_webcam?privacy=public
BUG=317534,320421
R=tommi@chromium.org
Review URL: https://codereview.chromium.org/63673006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235720 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/browser/renderer_host/media/media_stream_dispatcher_host.cc | 9 |
1 files changed, 9 insertions, 0 deletions
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 e235d80..80565ca 100644 --- a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc +++ b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc @@ -95,6 +95,8 @@ bool MediaStreamDispatcherHost::OnMessageReceived( OnStopStreamDevice) IPC_MESSAGE_HANDLER(MediaStreamHostMsg_EnumerateDevices, OnEnumerateDevices) + IPC_MESSAGE_HANDLER(MediaStreamHostMsg_CancelEnumerateDevices, + OnCancelEnumerateDevices) IPC_MESSAGE_HANDLER(MediaStreamHostMsg_OpenDevice, OnOpenDevice) IPC_MESSAGE_HANDLER(MediaStreamHostMsg_CloseDevice, @@ -192,6 +194,13 @@ void MediaStreamDispatcherHost::OnCancelEnumerateDevices( << render_view_id << ", " << label << ")"; + if (streams_.find(label) == streams_.end()) { + // According to the comments in MediaStreamDispatcher::OnDevicesEnumerated, + // OnCancelEnumerateDevices can be called several times with the same label. + DVLOG(1) << "Enumeration request with label " << label + << "does not exist."; + return; + } media_stream_manager_->CancelRequest(label); PopRequest(label); } |