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 51b3395be23a91b8da3da063fe6c5bda2e05de11..78372bb57b898774451f06f8c8c5c480feea543e 100644 |
--- a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc |
+++ b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc |
@@ -16,11 +16,13 @@ namespace content { |
MediaStreamDispatcherHost::MediaStreamDispatcherHost( |
int render_process_id, |
const ResourceContext::SaltCallback& salt_callback, |
- MediaStreamManager* media_stream_manager) |
+ MediaStreamManager* media_stream_manager, |
+ ResourceContext* resource_context) |
: BrowserMessageFilter(MediaStreamMsgStart), |
render_process_id_(render_process_id), |
salt_callback_(salt_callback), |
- media_stream_manager_(media_stream_manager) { |
+ media_stream_manager_(media_stream_manager), |
+ resource_context_(resource_context) { |
} |
void MediaStreamDispatcherHost::StreamGenerated( |
@@ -178,9 +180,15 @@ void MediaStreamDispatcherHost::OnEnumerateDevices( |
if (!IsURLAllowed(security_origin)) |
return; |
+ DCHECK(type == MEDIA_DEVICE_AUDIO_CAPTURE || |
+ type == MEDIA_DEVICE_VIDEO_CAPTURE); |
+ bool have_permission = type == MEDIA_DEVICE_AUDIO_CAPTURE ? |
+ resource_context_->AllowMicAccess(security_origin) : |
+ resource_context_->AllowCameraAccess(security_origin); |
+ |
media_stream_manager_->EnumerateDevices( |
this, render_process_id_, render_view_id, salt_callback_, |
- page_request_id, type, security_origin); |
+ page_request_id, type, security_origin, have_permission); |
} |
void MediaStreamDispatcherHost::OnCancelEnumerateDevices( |