diff options
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); } |