| Index: chrome/browser/geolocation/chrome_geolocation_permission_context.cc
|
| diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
|
| index e63d448a90f44295c69f6a053488b59a464b85dd..711caa4c8383cf7a0282a7ed06bae0057c8a6f22 100644
|
| --- a/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
|
| +++ b/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
|
| @@ -41,6 +41,7 @@ class GeolocationPermissionRequest : public PermissionBubbleRequest {
|
| ChromeGeolocationPermissionContext* context,
|
| const PermissionRequestID& id,
|
| const GURL& requesting_frame,
|
| + bool user_gesture,
|
| base::Callback<void(bool)> callback,
|
| const std::string& display_languages);
|
| virtual ~GeolocationPermissionRequest();
|
| @@ -60,6 +61,7 @@ class GeolocationPermissionRequest : public PermissionBubbleRequest {
|
| ChromeGeolocationPermissionContext* context_;
|
| PermissionRequestID id_;
|
| GURL requesting_frame_;
|
| + bool user_gesture_;
|
| base::Callback<void(bool)> callback_;
|
| std::string display_languages_;
|
| };
|
| @@ -68,11 +70,13 @@ GeolocationPermissionRequest::GeolocationPermissionRequest(
|
| ChromeGeolocationPermissionContext* context,
|
| const PermissionRequestID& id,
|
| const GURL& requesting_frame,
|
| + bool user_gesture,
|
| base::Callback<void(bool)> callback,
|
| const std::string& display_languages)
|
| : context_(context),
|
| id_(id),
|
| requesting_frame_(requesting_frame),
|
| + user_gesture_(user_gesture),
|
| callback_(callback),
|
| display_languages_(display_languages) {}
|
|
|
| @@ -92,8 +96,7 @@ base::string16 GeolocationPermissionRequest::GetMessageTextFragment() const {
|
| }
|
|
|
| bool GeolocationPermissionRequest::HasUserGesture() const {
|
| - // TODO(gbillock): plumb this through from GeolocationDispatcher.
|
| - return false;
|
| + return user_gesture_;
|
| }
|
|
|
| GURL GeolocationPermissionRequest::GetRequestingHostname() const {
|
| @@ -135,6 +138,7 @@ void ChromeGeolocationPermissionContext::RequestGeolocationPermission(
|
| int render_view_id,
|
| int bridge_id,
|
| const GURL& requesting_frame,
|
| + bool user_gesture,
|
| base::Callback<void(bool)> callback) {
|
| GURL requesting_frame_origin = requesting_frame.GetOrigin();
|
| if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)) {
|
| @@ -143,7 +147,7 @@ void ChromeGeolocationPermissionContext::RequestGeolocationPermission(
|
| base::Bind(
|
| &ChromeGeolocationPermissionContext::RequestGeolocationPermission,
|
| this, render_process_id, render_view_id, bridge_id,
|
| - requesting_frame_origin, callback));
|
| + requesting_frame_origin, user_gesture, callback));
|
| return;
|
| }
|
|
|
| @@ -193,7 +197,7 @@ void ChromeGeolocationPermissionContext::RequestGeolocationPermission(
|
| return;
|
| }
|
|
|
| - DecidePermission(web_contents, id, requesting_frame_origin,
|
| + DecidePermission(web_contents, id, requesting_frame_origin, user_gesture,
|
| embedder, "", callback);
|
| }
|
|
|
| @@ -211,6 +215,7 @@ void ChromeGeolocationPermissionContext::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) {
|
| @@ -232,7 +237,7 @@ void ChromeGeolocationPermissionContext::DecidePermission(
|
| PermissionBubbleManager* mgr =
|
| PermissionBubbleManager::FromWebContents(web_contents);
|
| mgr->AddRequest(new GeolocationPermissionRequest(
|
| - this, id, requesting_frame, callback,
|
| + this, id, requesting_frame, user_gesture, callback,
|
| profile_->GetPrefs()->GetString(prefs::kAcceptLanguages)));
|
| } else {
|
| // setting == ask. Prompt the user.
|
|
|