Index: content/browser/renderer_host/media/media_stream_manager.cc |
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc |
index 991d174b3d64b760756266611abe49394b7739af..4080cbef29d0bfed1cf9f9e48a593639d4e47bb2 100644 |
--- a/content/browser/renderer_host/media/media_stream_manager.cc |
+++ b/content/browser/renderer_host/media/media_stream_manager.cc |
@@ -1472,6 +1472,14 @@ void MediaStreamManager::FinalizeEnumerateDevices(const std::string& label, |
request->devices.clear(); |
} |
+ if (use_fake_ui_) { |
+ if (!fake_ui_) |
+ fake_ui_.reset(new FakeMediaStreamUIProxy()); |
+ request->ui_proxy = fake_ui_.Pass(); |
+ } else { |
+ request->ui_proxy = MediaStreamUIProxy::Create(); |
+ } |
+ |
// Output label permissions are based on input permission. |
MediaStreamType type = |
request->audio_type() == MEDIA_DEVICE_AUDIO_CAPTURE || |
@@ -1479,40 +1487,16 @@ void MediaStreamManager::FinalizeEnumerateDevices(const std::string& label, |
? MEDIA_DEVICE_AUDIO_CAPTURE |
: MEDIA_DEVICE_VIDEO_CAPTURE; |
- BrowserThread::PostTaskAndReplyWithResult( |
- BrowserThread::UI, |
- FROM_HERE, |
- base::Bind(&MediaStreamManager::CheckMediaAccessPermissionOnUIThread, |
- base::Unretained(this), |
- request->requesting_process_id, |
- request->security_origin, |
- type), |
+ request->ui_proxy->CheckAccess( |
+ request->security_origin, |
+ type, |
+ request->requesting_process_id, |
+ request->requesting_frame_id, |
base::Bind(&MediaStreamManager::HandleCheckMediaAccessResponse, |
base::Unretained(this), |
label)); |
} |
-bool MediaStreamManager::CheckMediaAccessPermissionOnUIThread( |
- int render_process_id, |
- const GURL& security_origin, |
- MediaStreamType type) { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- |
- RenderProcessHost* host = |
- RenderProcessHost::FromID(render_process_id); |
- if (!host) { |
- // This can happen if the renderer goes away during the lifetime of a |
- // request. |
- return false; |
- } |
- content::BrowserContext* context = host->GetBrowserContext(); |
- DCHECK(context); |
- return GetContentClient()->browser()->CheckMediaAccessPermission( |
- context, |
- security_origin, |
- type); |
-} |
- |
void MediaStreamManager::HandleCheckMediaAccessResponse( |
const std::string& label, |
bool have_access) { |