| 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 d713279e23beb14be9518b941f9c43468e50b147..c99eddea501c7783d193dcc4b24678d1f3527f19 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,16 +180,49 @@ 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,
|
| + weak_factory_.GetWeakPtr(),
|
| + request,
|
| + callback),
|
| + false /* allowed_by_default */);
|
| }
|
|
|
| bool WebViewPermissionHelper::CheckMediaAccessPermission(
|
| content::WebContents* source,
|
| const GURL& security_origin,
|
| content::MediaStreamType type) {
|
| - return web_view_permission_helper_delegate_->CheckMediaAccessPermission(
|
| - source, security_origin, type);
|
| + return web_view_guest()
|
| + ->embedder_web_contents()
|
| + ->GetDelegate()
|
| + ->CheckMediaAccessPermission(
|
| + web_view_guest()->embedder_web_contents(), security_origin, type);
|
| +}
|
| +
|
| +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(
|
|
|