Chromium Code Reviews| Index: chrome/browser/geolocation/geolocation_permission_context_android.h |
| diff --git a/chrome/browser/geolocation/geolocation_permission_context_android.h b/chrome/browser/geolocation/geolocation_permission_context_android.h |
| index 9df171370b7d335f9d5fa771adf72d1b754398d2..d4b718fcad0f562203c83d732745819ab4958c36 100644 |
| --- a/chrome/browser/geolocation/geolocation_permission_context_android.h |
| +++ b/chrome/browser/geolocation/geolocation_permission_context_android.h |
| @@ -24,6 +24,7 @@ |
| #include "base/macros.h" |
| #include "base/memory/weak_ptr.h" |
| +#include "base/time/time.h" |
| #include "chrome/browser/android/location_settings.h" |
| #include "chrome/browser/geolocation/geolocation_permission_context.h" |
| #include "components/location/android/location_settings_dialog_context.h" |
| @@ -39,10 +40,13 @@ class InfoBar; |
| class GURL; |
| class PermissionRequestID; |
| +class PrefRegistrySimple; |
| class GeolocationPermissionContextAndroid |
| : public GeolocationPermissionContext { |
| public: |
| + static void RegisterProfilePrefs(PrefRegistrySimple* registry); |
| + |
| explicit GeolocationPermissionContextAndroid(Profile* profile); |
| ~GeolocationPermissionContextAndroid() override; |
| @@ -56,6 +60,9 @@ class GeolocationPermissionContextAndroid |
| private: |
| friend class GeolocationPermissionContextTests; |
| + static void AddDayOffsetForTesting(int days); |
| + static void SetDSEOriginForTesting(const char* dse_origin); |
| + |
| // GeolocationPermissionContext: |
| void RequestPermission( |
| content::WebContents* web_contents, |
| @@ -65,6 +72,10 @@ class GeolocationPermissionContextAndroid |
| const BrowserPermissionCallback& callback) override; |
| void CancelPermissionRequest(content::WebContents* web_contents, |
| const PermissionRequestID& id) override; |
| + void UserMadePermissionDecision(const PermissionRequestID& id, |
| + const GURL& requesting_origin, |
| + const GURL& embedding_origin, |
| + ContentSetting content_setting) override; |
| void NotifyPermissionSet(const PermissionRequestID& id, |
| const GURL& requesting_origin, |
| const GURL& embedding_origin, |
| @@ -76,12 +87,22 @@ class GeolocationPermissionContextAndroid |
| const GURL& requesting_origin, |
| const GURL& embedding_origin) const override; |
| + // Functions to handle back off for showing the Location Settings Dialog. |
| + std::string LocationSettingsBackOffLevelPref( |
|
Bernhard Bauer
2017/03/16 16:19:35
Nit: From the name it's not totally clear to me wh
benwells
2017/03/22 06:17:25
Done.
|
| + const GURL& requesting_origin) const; |
| + std::string LocationSettingsNextShowPref(const GURL& requesting_origin) const; |
| + bool IsInLocationSettingsBackOff(const GURL& requesting_origin) const; |
| + void ResetLocationSettingsBackOff(const GURL& requesting_origin); |
| + void UpdateLocationSettingsBackOff(const GURL& requesting_origin); |
| + |
| + // Returns whether location access is possible for the given origin. Ignores |
| + // Location Settings Dialog backoff, as the backoff is ignored if the user |
| + // will be prompted for permission. |
| bool IsLocationAccessPossible(content::WebContents* web_contents, |
| const GURL& requesting_origin, |
| bool user_gesture); |
| - LocationSettingsDialogContext GetLocationSettingsDialogContext( |
| - const GURL& requesting_origin) const; |
| + bool IsRequestingOriginDSE(const GURL& requesting_origin) const; |
| void HandleUpdateAndroidPermissions(const PermissionRequestID& id, |
| const GURL& requesting_frame_origin, |
| @@ -94,7 +115,8 @@ class GeolocationPermissionContextAndroid |
| // be shown, any gesture requirements for the origin are met, and the dialog |
| // is not being suppressed for backoff. |
| bool CanShowLocationSettingsDialog(const GURL& requesting_origin, |
| - bool user_gesture) const; |
| + bool user_gesture, |
| + bool ignore_backoff) const; |
| void OnLocationSettingsDialogShown( |
| const PermissionRequestID& id, |