Chromium Code Reviews| Index: content/browser/renderer_host/media/media_stream_device_settings.cc |
| diff --git a/content/browser/renderer_host/media/media_stream_device_settings.cc b/content/browser/renderer_host/media/media_stream_device_settings.cc |
| index 39d66e7a5b2693abfd124a9638a65eb6eed3e67f..d0ec2e600935a638874012c61b6bbed322c82533 100644 |
| --- a/content/browser/renderer_host/media/media_stream_device_settings.cc |
| +++ b/content/browser/renderer_host/media/media_stream_device_settings.cc |
| @@ -10,6 +10,8 @@ |
| #include "base/callback.h" |
| #include "base/stl_util.h" |
| #include "content/browser/renderer_host/media/media_stream_settings_requester.h" |
| +#include "content/browser/renderer_host/render_view_host_delegate.h" |
| +#include "content/browser/renderer_host/render_view_host_impl.h" |
| #include "content/common/media/media_stream_options.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/content_browser_client.h" |
| @@ -322,19 +324,33 @@ void MediaStreamDeviceSettings::PostRequestToUi(const std::string& label) { |
| } |
| } |
| - // Send the permission request to the content client. |
| scoped_refptr<ResponseCallbackHelper> helper = |
| new ResponseCallbackHelper(AsWeakPtr()); |
| content::MediaResponseCallback callback = |
| base::Bind(&ResponseCallbackHelper::PostResponse, |
| helper.get(), label); |
| + |
| BrowserThread::PostTask( |
| BrowserThread::UI, FROM_HERE, |
| - base::Bind( |
| - &content::ContentBrowserClient::RequestMediaAccessPermission, |
| - base::Unretained(content::GetContentClient()->browser()), |
| - request, callback)); |
| + base::Bind(&MediaStreamDeviceSettings::DoRequest, |
| + base::Unretained(this), request, callback)); |
| +} |
| + |
| +void MediaStreamDeviceSettings::DoRequest( |
|
jochen (gone - plz use gerrit)
2012/06/09 07:55:21
could this be a helper function in an anon namespa
Evan Stade
2012/06/12 00:00:46
indeed I suppose it could
|
| + const MediaStreamDeviceSettingsRequest* request, |
| + const content::MediaResponseCallback& callback) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + |
| + // Send the permission request to the web contents. |
| + content::RenderViewHostImpl* host = |
| + content::RenderViewHostImpl::FromID(request->render_process_id, |
| + request->render_view_id); |
| + |
| + // Tab may have gone away. |
| + if (!host || !host->GetDelegate()) |
| + callback.Run(content::MediaStreamDevices()); |
| + host->GetDelegate()->RequestMediaAccessPermission(request, callback); |
| } |
| } // namespace media_stream |