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..a257ab538f04a52921444c50a7f5a8586df5ceef 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 GURL& dse_origin); |
| + |
| // GeolocationPermissionContext: |
| void RequestPermission( |
| content::WebContents* web_contents, |
| @@ -65,6 +72,13 @@ class GeolocationPermissionContextAndroid |
| const BrowserPermissionCallback& callback) override; |
| void CancelPermissionRequest(content::WebContents* web_contents, |
| const PermissionRequestID& id) override; |
| + void PermissionDecided(const PermissionRequestID& id, |
| + const GURL& requesting_origin, |
| + const GURL& embedding_origin, |
| + bool user_gesture, |
| + const BrowserPermissionCallback& callback, |
| + bool persist, |
| + ContentSetting content_setting) override; |
| void NotifyPermissionSet(const PermissionRequestID& id, |
| const GURL& requesting_origin, |
| const GURL& embedding_origin, |
| @@ -76,6 +90,14 @@ 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( |
| + 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 SetLocationSettingsBackOff(const GURL& requesting_origin); |
| + |
| bool IsLocationAccessPossible(content::WebContents* web_contents, |
|
raymes
2017/03/15 04:28:25
nit: We might want to explain in a comment somewhe
benwells
2017/03/15 23:10:49
Done.
|
| const GURL& requesting_origin, |
| bool user_gesture); |
| @@ -94,7 +116,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, |