Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1508)

Unified Diff: chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc

Issue 955383003: ContentBrowserClient::RequestPermission replies with PermissionStatus instead of bool. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix android geolocation breakage Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698