OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_PERMISSIONS_PERMISSION_UMA_UTIL_H_ | 5 #ifndef CHROME_BROWSER_PERMISSIONS_PERMISSION_UMA_UTIL_H_ |
6 #define CHROME_BROWSER_PERMISSIONS_PERMISSION_UMA_UTIL_H_ | 6 #define CHROME_BROWSER_PERMISSIONS_PERMISSION_UMA_UTIL_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 22 matching lines...) Expand all Loading... | |
33 SOURCE_UI_NUM, | 33 SOURCE_UI_NUM, |
34 }; | 34 }; |
35 | 35 |
36 // Provides a convenient way of logging UMA for permission related operations. | 36 // Provides a convenient way of logging UMA for permission related operations. |
37 class PermissionUmaUtil { | 37 class PermissionUmaUtil { |
38 public: | 38 public: |
39 static const char kPermissionsPromptShown[]; | 39 static const char kPermissionsPromptShown[]; |
40 static const char kPermissionsPromptShownGesture[]; | 40 static const char kPermissionsPromptShownGesture[]; |
41 static const char kPermissionsPromptShownNoGesture[]; | 41 static const char kPermissionsPromptShownNoGesture[]; |
42 static const char kPermissionsPromptAccepted[]; | 42 static const char kPermissionsPromptAccepted[]; |
43 static const char kPermissionsPromptAcceptedPriorDismissCountPrefix[]; | |
44 static const char kPermissionsPromptAcceptedPriorIgnoreCountPrefix[]; | |
43 static const char kPermissionsPromptAcceptedGesture[]; | 45 static const char kPermissionsPromptAcceptedGesture[]; |
44 static const char kPermissionsPromptAcceptedNoGesture[]; | 46 static const char kPermissionsPromptAcceptedNoGesture[]; |
45 static const char kPermissionsPromptDenied[]; | 47 static const char kPermissionsPromptDenied[]; |
48 static const char kPermissionsPromptDeniedPriorDismissCountPrefix[]; | |
49 static const char kPermissionsPromptDeniedPriorIgnoreCountPrefix[]; | |
46 static const char kPermissionsPromptDeniedGesture[]; | 50 static const char kPermissionsPromptDeniedGesture[]; |
47 static const char kPermissionsPromptDeniedNoGesture[]; | 51 static const char kPermissionsPromptDeniedNoGesture[]; |
52 static const char kPermissionsPromptDismissedPriorDismissCountPrefix[]; | |
53 static const char kPermissionsPromptDismissedPriorIgnoreCountPrefix[]; | |
54 static const char kPermissionsPromptIgnoredPriorDismissCountPrefix[]; | |
55 static const char kPermissionsPromptIgnoredPriorIgnoreCountPrefix[]; | |
48 static const char kPermissionsPromptRequestsPerPrompt[]; | 56 static const char kPermissionsPromptRequestsPerPrompt[]; |
49 static const char kPermissionsPromptMergedBubbleTypes[]; | 57 static const char kPermissionsPromptMergedBubbleTypes[]; |
50 static const char kPermissionsPromptMergedBubbleAccepted[]; | 58 static const char kPermissionsPromptMergedBubbleAccepted[]; |
51 static const char kPermissionsPromptMergedBubbleDenied[]; | 59 static const char kPermissionsPromptMergedBubbleDenied[]; |
52 | 60 |
53 static void PermissionRequested(content::PermissionType permission, | 61 static void PermissionRequested(content::PermissionType permission, |
54 const GURL& requesting_origin, | 62 const GURL& requesting_origin, |
55 const GURL& embedding_origin, | 63 const GURL& embedding_origin, |
56 Profile* profile); | 64 Profile* profile); |
57 static void PermissionGranted(content::PermissionType permission, | 65 static void PermissionGranted(content::PermissionType permission, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
92 // Note that for coalesced permission bubbles, PermissionPromptAccepted will | 100 // Note that for coalesced permission bubbles, PermissionPromptAccepted will |
93 // always be called, with |accept_states| containing whether each request was | 101 // always be called, with |accept_states| containing whether each request was |
94 // accepted or denied. | 102 // accepted or denied. |
95 static void PermissionPromptAccepted( | 103 static void PermissionPromptAccepted( |
96 const std::vector<PermissionRequest*>& requests, | 104 const std::vector<PermissionRequest*>& requests, |
97 const std::vector<bool>& accept_states); | 105 const std::vector<bool>& accept_states); |
98 | 106 |
99 static void PermissionPromptDenied( | 107 static void PermissionPromptDenied( |
100 const std::vector<PermissionRequest*>& requests); | 108 const std::vector<PermissionRequest*>& requests); |
101 | 109 |
102 // Records |count| total dismissal actions for a prompt of type |permission| | |
103 // for a single origin. | |
104 static void PermissionPromptDismissed(content::PermissionType permission, | |
105 int count); | |
106 | |
107 // Records |count| total ignore actions for a prompt of type |permission| for | |
108 // a single origin. | |
109 static void PermissionPromptIgnored(content::PermissionType permission, | |
110 int count); | |
111 | |
112 // A permission prompt was accepted or denied, and the prompt displayed a | 110 // A permission prompt was accepted or denied, and the prompt displayed a |
113 // persistence toggle. Records whether the toggle was enabled (persist) or | 111 // persistence toggle. Records whether the toggle was enabled (persist) or |
114 // disabled (don't persist). | 112 // disabled (don't persist). |
115 static void PermissionPromptAcceptedWithPersistenceToggle( | 113 static void PermissionPromptAcceptedWithPersistenceToggle( |
116 content::PermissionType permission, | 114 content::PermissionType permission, |
117 bool toggle_enabled); | 115 bool toggle_enabled); |
118 | 116 |
119 static void PermissionPromptDeniedWithPersistenceToggle( | 117 static void PermissionPromptDeniedWithPersistenceToggle( |
120 content::PermissionType permission, | 118 content::PermissionType permission, |
121 bool toggle_enabled); | 119 bool toggle_enabled); |
122 | 120 |
123 private: | 121 private: |
124 friend class PermissionUmaUtilTest; | 122 friend class PermissionUmaUtilTest; |
125 | 123 |
126 static bool IsOptedIntoPermissionActionReporting(Profile* profile); | 124 static bool IsOptedIntoPermissionActionReporting(Profile* profile); |
127 | 125 |
128 static void RecordPermissionAction(content::PermissionType permission, | 126 static void RecordPermissionAction(content::PermissionType permission, |
129 PermissionAction action, | 127 PermissionAction action, |
130 PermissionSourceUI source_ui, | 128 PermissionSourceUI source_ui, |
131 PermissionRequestGestureType gesture_type, | 129 PermissionRequestGestureType gesture_type, |
132 const GURL& requesting_origin, | 130 const GURL& requesting_origin, |
133 Profile* profile); | 131 Profile* profile); |
134 | 132 |
133 // Records |count| total prior actions for a prompt of type |permission| | |
134 // for a single origin using |prefix| for the metric. | |
135 static void RecordPermissionPromptPriorCount( | |
136 content::PermissionType permission, | |
137 const char* prefix, | |
Ilya Sherman
2016/08/18 00:59:00
nit: Probably best to pass a string or a StringPie
dominickn
2016/08/18 01:21:11
Done.
| |
138 int count); | |
139 | |
135 DISALLOW_IMPLICIT_CONSTRUCTORS(PermissionUmaUtil); | 140 DISALLOW_IMPLICIT_CONSTRUCTORS(PermissionUmaUtil); |
136 }; | 141 }; |
137 | 142 |
138 #endif // CHROME_BROWSER_PERMISSIONS_PERMISSION_UMA_UTIL_H_ | 143 #endif // CHROME_BROWSER_PERMISSIONS_PERMISSION_UMA_UTIL_H_ |
OLD | NEW |