Index: chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc |
diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc |
index ec2c0f7ce152f8fc036bc47bcaf068fba677ef05..b8f3d01b9f3fd570735325da3f7fa5cbeb74f17d 100644 |
--- a/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc |
+++ b/chrome/browser/geolocation/chrome_geolocation_permission_context_android.cc |
@@ -6,13 +6,17 @@ |
#include "base/prefs/pref_service.h" |
#include "chrome/browser/android/google_location_settings_helper.h" |
-#include "chrome/browser/content_settings/permission_request_id.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/common/pref_names.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/web_contents.h" |
ChromeGeolocationPermissionContextAndroid:: |
+PermissionRequestInfo::PermissionRequestInfo() |
+ : id(0, 0, 0, 0), |
+ user_gesture(false) {} |
+ |
+ChromeGeolocationPermissionContextAndroid:: |
ChromeGeolocationPermissionContextAndroid(Profile* profile) |
: ChromeGeolocationPermissionContext(profile), |
google_location_settings_helper_( |
@@ -25,23 +29,19 @@ ChromeGeolocationPermissionContextAndroid:: |
void ChromeGeolocationPermissionContextAndroid::ProceedDecidePermission( |
content::WebContents* web_contents, |
- const PermissionRequestID& id, |
- const GURL& requesting_frame, |
- const GURL& embedder, |
+ const PermissionRequestInfo& info, |
const std::string& accept_button_label, |
base::Callback<void(bool)> callback) { |
// Super class implementation expects everything in UI thread instead. |
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
ChromeGeolocationPermissionContext::DecidePermission( |
- web_contents, id, requesting_frame, embedder, |
- accept_button_label, callback); |
+ web_contents, info.id, info.requesting_frame, info.user_gesture, |
+ info.embedder, accept_button_label, callback); |
} |
void ChromeGeolocationPermissionContextAndroid::CheckMasterLocation( |
content::WebContents* web_contents, |
- const PermissionRequestID& id, |
- const GURL& requesting_frame, |
- const GURL& embedder, |
+ const PermissionRequestInfo& info, |
base::Callback<void(bool)> callback) { |
// Check to see if the feature in its entirety has been disabled. |
// This must happen before other services (e.g. tabs, extensions) |
@@ -68,12 +68,11 @@ void ChromeGeolocationPermissionContextAndroid::CheckMasterLocation( |
google_location_settings_helper_->GetAcceptButtonLabel(allow_label); |
ui_closure = base::Bind( |
&ChromeGeolocationPermissionContextAndroid::ProceedDecidePermission, |
- this, web_contents, id, requesting_frame, embedder, |
- accept_button_label, callback); |
+ this, web_contents, info, accept_button_label, callback); |
} else { |
ui_closure = base::Bind( |
&ChromeGeolocationPermissionContextAndroid::PermissionDecided, |
- this, id, requesting_frame, embedder, callback, false); |
+ this, info.id, info.requesting_frame, info.embedder, callback, false); |
} |
// This method is executed from the BlockingPool, post the result |
@@ -86,17 +85,24 @@ void ChromeGeolocationPermissionContextAndroid::DecidePermission( |
content::WebContents* web_contents, |
const PermissionRequestID& id, |
const GURL& requesting_frame, |
+ bool user_gesture, |
const GURL& embedder, |
const std::string& accept_button_label, |
base::Callback<void(bool)> callback) { |
+ PermissionRequestInfo info; |
+ info.id = id; |
+ info.requesting_frame = requesting_frame; |
+ info.user_gesture = user_gesture; |
+ info.embedder = embedder; |
+ |
// Called on the UI thread. However, do the work on a separate thread |
// to avoid strict mode violation. |
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
content::BrowserThread::PostBlockingPoolTask(FROM_HERE, |
base::Bind( |
&ChromeGeolocationPermissionContextAndroid::CheckMasterLocation, |
- this, web_contents, id, requesting_frame, embedder, callback)); |
+ this, web_contents, info, callback)); |
} |
void ChromeGeolocationPermissionContextAndroid::PermissionDecided( |
@@ -110,8 +116,8 @@ void ChromeGeolocationPermissionContextAndroid::PermissionDecided( |
// the infobar to go back to the 'settings' to turn it back on. |
if (allowed && |
!google_location_settings_helper_->IsGoogleAppsLocationSettingEnabled()) { |
- QueueController()->CreateInfoBarRequest(id, requesting_frame, embedder, "", |
- callback); |
+ QueueController()->CreateInfoBarRequest( |
+ id, requesting_frame, embedder, "", callback); |
return; |
} |