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

Side by Side Diff: chrome/browser/permissions/permission_uma_util.h

Issue 2250993002: Add prior dismissal and ignore count metrics for all permission actions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@kendra-permission-action-reporting
Patch Set: Created 4 years, 4 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 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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698