| Index: chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
|
| diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
|
| index 61da9d5d078424b9fd1c54ac87566bd454b5fe31..489676079867db37014bfab1cbdd40b65f09c0fd 100644
|
| --- a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
|
| +++ b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
|
| @@ -19,6 +19,15 @@
|
|
|
| namespace extensions {
|
|
|
| +namespace {
|
| +
|
| +void CallbackContentSettingWrapper(const base::Callback<void(bool)>& callback,
|
| + ContentSetting content_setting) {
|
| + callback.Run(content_setting == CONTENT_SETTING_ALLOW);
|
| +}
|
| +
|
| +} // anonymous namespace
|
| +
|
| ChromeWebViewPermissionHelperDelegate::ChromeWebViewPermissionHelperDelegate(
|
| WebViewPermissionHelper* web_view_permission_helper)
|
| : WebViewPermissionHelperDelegate(web_view_permission_helper),
|
| @@ -192,12 +201,10 @@ void ChromeWebViewPermissionHelperDelegate::RequestGeolocationPermission(
|
| // ChromeWebViewPermissionHelperDelegate::SetPermission.
|
| const WebViewPermissionHelper::PermissionResponseCallback
|
| permission_callback =
|
| - base::Bind(&ChromeWebViewPermissionHelperDelegate::
|
| - OnGeolocationPermissionResponse,
|
| - weak_factory_.GetWeakPtr(),
|
| - bridge_id,
|
| - user_gesture,
|
| - callback);
|
| + base::Bind(&ChromeWebViewPermissionHelperDelegate::
|
| + OnGeolocationPermissionResponse,
|
| + weak_factory_.GetWeakPtr(), bridge_id, user_gesture,
|
| + base::Bind(&CallbackContentSettingWrapper, callback));
|
| int request_id = web_view_permission_helper()->RequestPermission(
|
| WEB_VIEW_PERMISSION_TYPE_GEOLOCATION,
|
| request_info,
|
| @@ -209,7 +216,7 @@ void ChromeWebViewPermissionHelperDelegate::RequestGeolocationPermission(
|
| void ChromeWebViewPermissionHelperDelegate::OnGeolocationPermissionResponse(
|
| int bridge_id,
|
| bool user_gesture,
|
| - const base::Callback<void(bool)>& callback,
|
| + const base::Callback<void(ContentSetting)>& callback,
|
| bool allow,
|
| const std::string& user_input) {
|
| // The <webview> embedder has allowed the permission. We now need to make sure
|
| @@ -217,7 +224,7 @@ void ChromeWebViewPermissionHelperDelegate::OnGeolocationPermissionResponse(
|
| RemoveBridgeID(bridge_id);
|
|
|
| if (!allow || !web_view_guest()->attached()) {
|
| - callback.Run(false);
|
| + callback.Run(CONTENT_SETTING_BLOCK);
|
| return;
|
| }
|
|
|
|
|