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

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: Undo histograms change 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
« no previous file with comments | « no previous file | chrome/browser/geolocation/geolocation_permission_context_android.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // This enum is used in histograms, thus is append only. Do not re-order or
49 // remove any entries, or add any except at the end.
50 enum class LocationSettingsDialogBackOff {
51 kNoBackOff,
52 kOneWeek,
53 kOneMonth,
54 kThreeMonths,
55 kCount,
56 };
57
48 static void RegisterProfilePrefs(PrefRegistrySimple* registry); 58 static void RegisterProfilePrefs(PrefRegistrySimple* registry);
49 59
50 explicit GeolocationPermissionContextAndroid(Profile* profile); 60 explicit GeolocationPermissionContextAndroid(Profile* profile);
51 ~GeolocationPermissionContextAndroid() override; 61 ~GeolocationPermissionContextAndroid() override;
52 62
53 protected: 63 protected:
54 // GeolocationPermissionContext: 64 // GeolocationPermissionContext:
55 ContentSetting GetPermissionStatusInternal( 65 ContentSetting GetPermissionStatusInternal(
56 content::RenderFrameHost* render_frame_host, 66 content::RenderFrameHost* render_frame_host,
57 const GURL& requesting_origin, 67 const GURL& requesting_origin,
(...skipping 23 matching lines...) Expand all
81 const GURL& embedding_origin, 91 const GURL& embedding_origin,
82 const BrowserPermissionCallback& callback, 92 const BrowserPermissionCallback& callback,
83 bool persist, 93 bool persist,
84 ContentSetting content_setting) override; 94 ContentSetting content_setting) override;
85 PermissionResult UpdatePermissionStatusWithDeviceStatus( 95 PermissionResult UpdatePermissionStatusWithDeviceStatus(
86 PermissionResult result, 96 PermissionResult result,
87 const GURL& requesting_origin, 97 const GURL& requesting_origin,
88 const GURL& embedding_origin) const override; 98 const GURL& embedding_origin) const override;
89 99
90 // Functions to handle back off for showing the Location Settings Dialog. 100 // Functions to handle back off for showing the Location Settings Dialog.
91 std::string GetLocationSettingsBackOffLevelPref( 101 std::string GetLocationSettingsBackOffLevelPref(bool is_default_search) const;
92 const GURL& requesting_origin) const; 102 std::string GetLocationSettingsNextShowPref(bool is_default_search) const;
93 std::string GetLocationSettingsNextShowPref( 103 bool IsInLocationSettingsBackOff(bool is_default_search) const;
94 const GURL& requesting_origin) const; 104 void ResetLocationSettingsBackOff(bool is_default_search);
95 bool IsInLocationSettingsBackOff(const GURL& requesting_origin) const; 105 void UpdateLocationSettingsBackOff(bool is_default_search);
96 void ResetLocationSettingsBackOff(const GURL& requesting_origin); 106 LocationSettingsDialogBackOff LocationSettingsBackOffLevel(
97 void UpdateLocationSettingsBackOff(const GURL& requesting_origin); 107 bool is_default_search) const;
98 108
99 // Returns whether location access is possible for the given origin. Ignores 109 // Returns whether location access is possible for the given origin. Ignores
100 // Location Settings Dialog backoff, as the backoff is ignored if the user 110 // Location Settings Dialog backoff, as the backoff is ignored if the user
101 // will be prompted for permission. 111 // will be prompted for permission.
102 bool IsLocationAccessPossible(content::WebContents* web_contents, 112 bool IsLocationAccessPossible(content::WebContents* web_contents,
103 const GURL& requesting_origin, 113 const GURL& requesting_origin,
104 bool user_gesture); 114 bool user_gesture);
105 115
106 bool IsRequestingOriginDSE(const GURL& requesting_origin) const; 116 bool IsRequestingOriginDSE(const GURL& requesting_origin) const;
107 117
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 infobars::InfoBar* permission_update_infobar_; 156 infobars::InfoBar* permission_update_infobar_;
147 157
148 // Must be the last member, to ensure that it will be destroyed first, which 158 // Must be the last member, to ensure that it will be destroyed first, which
149 // will invalidate weak pointers. 159 // will invalidate weak pointers.
150 base::WeakPtrFactory<GeolocationPermissionContextAndroid> weak_factory_; 160 base::WeakPtrFactory<GeolocationPermissionContextAndroid> weak_factory_;
151 161
152 DISALLOW_COPY_AND_ASSIGN(GeolocationPermissionContextAndroid); 162 DISALLOW_COPY_AND_ASSIGN(GeolocationPermissionContextAndroid);
153 }; 163 };
154 164
155 #endif // CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_ANDROID_H_ 165 #endif // CHROME_BROWSER_GEOLOCATION_GEOLOCATION_PERMISSION_CONTEXT_ANDROID_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/geolocation/geolocation_permission_context_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698