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

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

Issue 2123653006: Rename PermissionBubbleRequest to PermissionRequest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission_manager_rename
Patch Set: Fix missed file Created 4 years, 5 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 | « chrome/browser/permissions/permission_uma_util.h ('k') | chrome/browser/ui/BUILD.gn » ('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 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 #include "chrome/browser/permissions/permission_uma_util.h" 5 #include "chrome/browser/permissions/permission_uma_util.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram_macros.h" 10 #include "base/metrics/histogram_macros.h"
11 #include "base/strings/stringprintf.h" 11 #include "base/strings/stringprintf.h"
12 #include "chrome/browser/browser_process.h" 12 #include "chrome/browser/browser_process.h"
13 #include "chrome/browser/permissions/permission_manager.h" 13 #include "chrome/browser/permissions/permission_manager.h"
14 #include "chrome/browser/permissions/permission_request.h"
14 #include "chrome/browser/permissions/permission_util.h" 15 #include "chrome/browser/permissions/permission_util.h"
15 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 17 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
17 #include "chrome/browser/safe_browsing/ui_manager.h" 18 #include "chrome/browser/safe_browsing/ui_manager.h"
18 #include "chrome/browser/sync/profile_sync_service_factory.h" 19 #include "chrome/browser/sync/profile_sync_service_factory.h"
19 #include "chrome/browser/ui/website_settings/permission_bubble_request.h"
20 #include "chrome/common/chrome_switches.h" 20 #include "chrome/common/chrome_switches.h"
21 #include "chrome/common/pref_names.h" 21 #include "chrome/common/pref_names.h"
22 #include "components/browser_sync/browser/profile_sync_service.h" 22 #include "components/browser_sync/browser/profile_sync_service.h"
23 #include "components/prefs/pref_service.h" 23 #include "components/prefs/pref_service.h"
24 #include "components/rappor/rappor_service.h" 24 #include "components/rappor/rappor_service.h"
25 #include "components/rappor/rappor_utils.h" 25 #include "components/rappor/rappor_utils.h"
26 #include "content/public/browser/permission_type.h" 26 #include "content/public/browser/permission_type.h"
27 #include "content/public/common/origin_util.h" 27 #include "content/public/common/origin_util.h"
28 #include "url/gurl.h" 28 #include "url/gurl.h"
29 29
30 // UMA keys need to be statically initialized so plain function would not 30 // UMA keys need to be statically initialized so plain function would not
31 // work. Use macros instead. 31 // work. Use macros instead.
32 #define PERMISSION_ACTION_UMA(secure_origin, permission, permission_secure, \ 32 #define PERMISSION_ACTION_UMA(secure_origin, permission, permission_secure, \
33 permission_insecure, action) \ 33 permission_insecure, action) \
34 UMA_HISTOGRAM_ENUMERATION(permission, action, PERMISSION_ACTION_NUM); \ 34 UMA_HISTOGRAM_ENUMERATION(permission, action, PERMISSION_ACTION_NUM); \
35 if (secure_origin) { \ 35 if (secure_origin) { \
36 UMA_HISTOGRAM_ENUMERATION(permission_secure, action, \ 36 UMA_HISTOGRAM_ENUMERATION(permission_secure, action, \
37 PERMISSION_ACTION_NUM); \ 37 PERMISSION_ACTION_NUM); \
38 } else { \ 38 } else { \
39 UMA_HISTOGRAM_ENUMERATION(permission_insecure, action, \ 39 UMA_HISTOGRAM_ENUMERATION(permission_insecure, action, \
40 PERMISSION_ACTION_NUM); \ 40 PERMISSION_ACTION_NUM); \
41 } 41 }
42 42
43 #define PERMISSION_BUBBLE_TYPE_UMA(metric_name, permission_bubble_type) \ 43 #define PERMISSION_BUBBLE_TYPE_UMA(metric_name, permission_bubble_type) \
44 UMA_HISTOGRAM_ENUMERATION( \ 44 UMA_HISTOGRAM_ENUMERATION( \
45 metric_name, \ 45 metric_name, \
46 static_cast<base::HistogramBase::Sample>(permission_bubble_type), \ 46 static_cast<base::HistogramBase::Sample>(permission_bubble_type), \
47 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM)) 47 static_cast<base::HistogramBase::Sample>(PermissionRequestType::NUM))
48 48
49 using content::PermissionType; 49 using content::PermissionType;
50 50
51 namespace { 51 namespace {
52 52
53 const std::string GetRapporMetric(PermissionType permission, 53 const std::string GetRapporMetric(PermissionType permission,
54 PermissionAction action) { 54 PermissionAction action) {
55 std::string action_str; 55 std::string action_str;
56 switch (action) { 56 switch (action) {
57 case GRANTED: 57 case GRANTED:
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 // permissions. 225 // permissions.
226 if (permission == PermissionType::NOTIFICATIONS || 226 if (permission == PermissionType::NOTIFICATIONS ||
227 permission == PermissionType::GEOLOCATION || 227 permission == PermissionType::GEOLOCATION ||
228 permission == PermissionType::AUDIO_CAPTURE || 228 permission == PermissionType::AUDIO_CAPTURE ||
229 permission == PermissionType::VIDEO_CAPTURE) { 229 permission == PermissionType::VIDEO_CAPTURE) {
230 RecordPermissionAction(permission, REVOKED, revoked_origin, profile); 230 RecordPermissionAction(permission, REVOKED, revoked_origin, profile);
231 } 231 }
232 } 232 }
233 233
234 void PermissionUmaUtil::PermissionPromptShown( 234 void PermissionUmaUtil::PermissionPromptShown(
235 const std::vector<PermissionBubbleRequest*>& requests) { 235 const std::vector<PermissionRequest*>& requests) {
236 DCHECK(!requests.empty()); 236 DCHECK(!requests.empty());
237 237
238 PermissionBubbleType permission_prompt_type = PermissionBubbleType::MULTIPLE; 238 PermissionRequestType permission_prompt_type =
239 PermissionRequestType::MULTIPLE;
239 if (requests.size() == 1) 240 if (requests.size() == 1)
240 permission_prompt_type = requests[0]->GetPermissionBubbleType(); 241 permission_prompt_type = requests[0]->GetPermissionRequestType();
241 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptShown, permission_prompt_type); 242 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptShown, permission_prompt_type);
242 243
243 UMA_HISTOGRAM_ENUMERATION( 244 UMA_HISTOGRAM_ENUMERATION(
244 kPermissionsPromptRequestsPerPrompt, 245 kPermissionsPromptRequestsPerPrompt,
245 static_cast<base::HistogramBase::Sample>(requests.size()), 246 static_cast<base::HistogramBase::Sample>(requests.size()),
246 static_cast<base::HistogramBase::Sample>(10)); 247 static_cast<base::HistogramBase::Sample>(10));
247 248
248 if (requests.size() > 1) { 249 if (requests.size() > 1) {
249 for (const auto* request : requests) { 250 for (const auto* request : requests) {
250 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleTypes, 251 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleTypes,
251 request->GetPermissionBubbleType()); 252 request->GetPermissionRequestType());
252 } 253 }
253 } 254 }
254 } 255 }
255 256
256 void PermissionUmaUtil::PermissionPromptAccepted( 257 void PermissionUmaUtil::PermissionPromptAccepted(
257 const std::vector<PermissionBubbleRequest*>& requests, 258 const std::vector<PermissionRequest*>& requests,
258 const std::vector<bool>& accept_states) { 259 const std::vector<bool>& accept_states) {
259 DCHECK(!requests.empty()); 260 DCHECK(!requests.empty());
260 DCHECK(requests.size() == accept_states.size()); 261 DCHECK(requests.size() == accept_states.size());
261 262
262 bool all_accepted = accept_states[0]; 263 bool all_accepted = accept_states[0];
263 PermissionBubbleType permission_prompt_type = 264 PermissionRequestType permission_prompt_type =
264 requests[0]->GetPermissionBubbleType(); 265 requests[0]->GetPermissionRequestType();
265 if (requests.size() > 1) { 266 if (requests.size() > 1) {
266 permission_prompt_type = PermissionBubbleType::MULTIPLE; 267 permission_prompt_type = PermissionRequestType::MULTIPLE;
267 for (size_t i = 0; i < requests.size(); ++i) { 268 for (size_t i = 0; i < requests.size(); ++i) {
268 const auto* request = requests[i]; 269 const auto* request = requests[i];
269 if (accept_states[i]) { 270 if (accept_states[i]) {
270 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleAccepted, 271 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleAccepted,
271 request->GetPermissionBubbleType()); 272 request->GetPermissionRequestType());
272 } else { 273 } else {
273 all_accepted = false; 274 all_accepted = false;
274 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleDenied, 275 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleDenied,
275 request->GetPermissionBubbleType()); 276 request->GetPermissionRequestType());
276 } 277 }
277 } 278 }
278 } 279 }
279 280
280 if (all_accepted) { 281 if (all_accepted) {
281 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptAccepted, 282 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptAccepted,
282 permission_prompt_type); 283 permission_prompt_type);
283 } else { 284 } else {
284 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptDenied, 285 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptDenied,
285 permission_prompt_type); 286 permission_prompt_type);
286 } 287 }
287 } 288 }
288 289
289 void PermissionUmaUtil::PermissionPromptDenied( 290 void PermissionUmaUtil::PermissionPromptDenied(
290 const std::vector<PermissionBubbleRequest*>& requests) { 291 const std::vector<PermissionRequest*>& requests) {
291 DCHECK(!requests.empty()); 292 DCHECK(!requests.empty());
292 DCHECK(requests.size() == 1); 293 DCHECK(requests.size() == 1);
293 294
294 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptDenied, 295 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptDenied,
295 requests[0]->GetPermissionBubbleType()); 296 requests[0]->GetPermissionRequestType());
296 } 297 }
297 298
298 bool PermissionUmaUtil::IsOptedIntoPermissionActionReporting(Profile* profile) { 299 bool PermissionUmaUtil::IsOptedIntoPermissionActionReporting(Profile* profile) {
299 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( 300 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
300 switches::kEnablePermissionActionReporting)) 301 switches::kEnablePermissionActionReporting))
301 return false; 302 return false;
302 // TODO(stefanocs): Remove this check once all callsites have been updated 303 // TODO(stefanocs): Remove this check once all callsites have been updated
303 // to not pass a nullptr. 304 // to not pass a nullptr.
304 if (!profile) 305 if (!profile)
305 return false; 306 return false;
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 if (!deprecated_metric.empty() && rappor_service) { 412 if (!deprecated_metric.empty() && rappor_service) {
412 rappor::SampleDomainAndRegistryFromGURL(rappor_service, deprecated_metric, 413 rappor::SampleDomainAndRegistryFromGURL(rappor_service, deprecated_metric,
413 requesting_origin); 414 requesting_origin);
414 415
415 std::string rappor_metric = deprecated_metric + "2"; 416 std::string rappor_metric = deprecated_metric + "2";
416 rappor_service->RecordSample( 417 rappor_service->RecordSample(
417 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, 418 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE,
418 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); 419 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin));
419 } 420 }
420 } 421 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_uma_util.h ('k') | chrome/browser/ui/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698