summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/media/media_stream_dispatcher_host.cc9
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);
}