Chromium Code Reviews| 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 e235d806df09e6f82b658b68389df90f2deba761..366ca3bd7977b9f3587a1c7734efa15da8598d0f 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,11 @@ 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. |
|
tommi (sloooow) - chröme
2013/11/18 10:01:50
is this worth a DVLOG(1)?
|
| + return; |
| + } |
| media_stream_manager_->CancelRequest(label); |
| PopRequest(label); |
| } |