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

Side by Side Diff: chrome/browser/geolocation/geolocation_permission_context_android.h

Issue 2791193002: Log metrics for the Location Settings Dialog prompt for geolocation. (Closed)
Patch Set: Fix tests Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_ANDROID_H_ 5 #ifndef CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_ANDROID_H_
6 #define CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_ANDROID_H_ 6 #define CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_ANDROID_H_
7 7
8 // The flow for geolocation permissions on Android needs to take into account 8 // The flow for geolocation permissions on Android needs to take into account
9 // the global geolocation settings so it differs from the desktop one. It 9 // the global geolocation settings so it differs from the desktop one. It
10 // works as follows. 10 // works as follows.
(...skipping 27 matching lines...) Expand all
38 class InfoBar; 38 class InfoBar;
39 } 39 }
40 40
41 class GURL; 41 class GURL;
42 class PermissionRequestID; 42 class PermissionRequestID;
43 class PrefRegistrySimple; 43 class PrefRegistrySimple;
44 44
45 class GeolocationPermissionContextAndroid 45 class GeolocationPermissionContextAndroid
46 : public GeolocationPermissionContext { 46 : public GeolocationPermissionContext {
47 public: 47 public:
48 enum class LocationSettingsDialogBackOff {
Ilya Sherman 2017/04/04 00:04:40 Please document that this enum is used to back an
benwells 2017/04/04 08:06:39 Done.
49 kOneWeek,
50 kOneMonth,
51 kThreeMonths,
52 kMax,
Ilya Sherman 2017/04/04 00:04:40 nit: I'd suggest using "kCount" to mean "the numbe
benwells 2017/04/04 08:06:39 Done.
53 };
54
55 static const char kGeolocationLSDShowDSEMetric[];
56 static const char kGeolocationLSDShowNonDSEMetric[];
57 static const char kGeolocationLSDSuppressDSEMetric[];
58 static const char kGeolocationLSDSuppressNonDSEMetric[];
59 static const char kGeolocationLSDAcceptDSEMetric[];
60 static const char kGeolocationLSDAcceptNonDSEMetric[];
61 static const char kGeolocationLSDDenyDSEMetric[];
62 static const char kGeolocationLSDDenyNonDSEMetric[];
63
48 static void RegisterProfilePrefs(PrefRegistrySimple* registry); 64 static void RegisterProfilePrefs(PrefRegistrySimple* registry);
49 65
50 explicit GeolocationPermissionContextAndroid(Profile* profile); 66 explicit GeolocationPermissionContextAndroid(Profile* profile);
51 ~GeolocationPermissionContextAndroid() override; 67 ~GeolocationPermissionContextAndroid() override;
52 68
53 protected: 69 protected:
54 // GeolocationPermissionContext: 70 // GeolocationPermissionContext:
55 ContentSetting GetPermissionStatusInternal( 71 ContentSetting GetPermissionStatusInternal(
56 content::RenderFrameHost* render_frame_host, 72 content::RenderFrameHost* render_frame_host,
57 const GURL& requesting_origin, 73 const GURL& requesting_origin,
(...skipping 23 matching lines...) Expand all
81 const GURL& embedding_origin, 97 const GURL& embedding_origin,
82 const BrowserPermissionCallback& callback, 98 const BrowserPermissionCallback& callback,
83 bool persist, 99 bool persist,
84 ContentSetting content_setting) override; 100 ContentSetting content_setting) override;
85 PermissionResult UpdatePermissionStatusWithDeviceStatus( 101 PermissionResult UpdatePermissionStatusWithDeviceStatus(
86 PermissionResult result, 102 PermissionResult result,
87 const GURL& requesting_origin, 103 const GURL& requesting_origin,
88 const GURL& embedding_origin) const override; 104 const GURL& embedding_origin) const override;
89 105
90 // Functions to handle back off for showing the Location Settings Dialog. 106 // Functions to handle back off for showing the Location Settings Dialog.
91 std::string GetLocationSettingsBackOffLevelPref( 107 std::string GetLocationSettingsBackOffLevelPref(bool is_dse) const;
92 const GURL& requesting_origin) const; 108 std::string GetLocationSettingsNextShowPref(bool is_dse) const;
93 std::string GetLocationSettingsNextShowPref( 109 bool IsInLocationSettingsBackOff(bool is_dse) const;
94 const GURL& requesting_origin) const; 110 void ResetLocationSettingsBackOff(bool is_dse);
95 bool IsInLocationSettingsBackOff(const GURL& requesting_origin) const; 111 void UpdateLocationSettingsBackOff(bool is_dse);
96 void ResetLocationSettingsBackOff(const GURL& requesting_origin); 112 LocationSettingsDialogBackOff LocationSettingsBackOffLevel(bool is_dse) const;
97 void UpdateLocationSettingsBackOff(const GURL& requesting_origin);
98 113
99 // Returns whether location access is possible for the given origin. Ignores 114 // Returns whether location access is possible for the given origin. Ignores
100 // Location Settings Dialog backoff, as the backoff is ignored if the user 115 // Location Settings Dialog backoff, as the backoff is ignored if the user
101 // will be prompted for permission. 116 // will be prompted for permission.
102 bool IsLocationAccessPossible(content::WebContents* web_contents, 117 bool IsLocationAccessPossible(content::WebContents* web_contents,
103 const GURL& requesting_origin, 118 const GURL& requesting_origin,
104 bool user_gesture); 119 bool user_gesture);
105 120
106 bool IsRequestingOriginDSE(const GURL& requesting_origin) const; 121 bool IsRequestingOriginDSE(const GURL& requesting_origin) const;
107 122
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 infobars::InfoBar* permission_update_infobar_; 161 infobars::InfoBar* permission_update_infobar_;
147 162
148 // Must be the last member, to ensure that it will be destroyed first, which 163 // Must be the last member, to ensure that it will be destroyed first, which
149 // will invalidate weak pointers. 164 // will invalidate weak pointers.
150 base::WeakPtrFactory<GeolocationPermissionContextAndroid> weak_factory_; 165 base::WeakPtrFactory<GeolocationPermissionContextAndroid> weak_factory_;
151 166
152 DISALLOW_COPY_AND_ASSIGN(GeolocationPermissionContextAndroid); 167 DISALLOW_COPY_AND_ASSIGN(GeolocationPermissionContextAndroid);
153 }; 168 };
154 169
155 #endif // CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_ANDROID_H_ 170 #endif // CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_ANDROID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698