Chromium Code Reviews| Index: extensions/browser/guest_view/web_view/web_view_permission_helper.cc |
| diff --git a/extensions/browser/guest_view/web_view/web_view_permission_helper.cc b/extensions/browser/guest_view/web_view/web_view_permission_helper.cc |
| index 079282b95d983268e3f63ebff46cc277decb0bd6..95f90f646493b1dbbd9da0258ba8f67e939fca9e 100644 |
| --- a/extensions/browser/guest_view/web_view/web_view_permission_helper.cc |
| +++ b/extensions/browser/guest_view/web_view/web_view_permission_helper.cc |
| @@ -180,8 +180,38 @@ void WebViewPermissionHelper::RequestMediaAccessPermission( |
| content::WebContents* source, |
| const content::MediaStreamRequest& request, |
| const content::MediaResponseCallback& callback) { |
| - web_view_permission_helper_delegate_-> RequestMediaAccessPermission( |
| - source, request, callback); |
| + base::DictionaryValue request_info; |
| + request_info.SetString(guestview::kUrl, request.security_origin.spec()); |
| + RequestPermission( |
| + WEB_VIEW_PERMISSION_TYPE_MEDIA, |
| + request_info, |
| + base::Bind(&WebViewPermissionHelper::OnMediaPermissionResponse, |
| + base::Unretained(this), |
|
Ken Rockot(use gerrit already)
2014/09/17 20:51:40
Any reason not to use a weak pointer instead of ba
|
| + request, |
| + callback), |
| + false /* allowed_by_default */); |
| +} |
| + |
| +void WebViewPermissionHelper::OnMediaPermissionResponse( |
| + const content::MediaStreamRequest& request, |
| + const content::MediaResponseCallback& callback, |
| + bool allow, |
| + const std::string& user_input) { |
| + if (!allow || !web_view_guest()->attached()) { |
| + // Deny the request. |
| + callback.Run(content::MediaStreamDevices(), |
| + content::MEDIA_DEVICE_INVALID_STATE, |
| + scoped_ptr<content::MediaStreamUI>()); |
| + return; |
| + } |
| + if (!web_view_guest()->embedder_web_contents()->GetDelegate()) |
| + return; |
| + |
| + web_view_guest() |
| + ->embedder_web_contents() |
| + ->GetDelegate() |
| + ->RequestMediaAccessPermission( |
| + web_view_guest()->embedder_web_contents(), request, callback); |
| } |
| void WebViewPermissionHelper::CanDownload( |