| 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 #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" |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 | 364 |
| 365 PermissionRequestType permission_prompt_type = | 365 PermissionRequestType permission_prompt_type = |
| 366 PermissionRequestType::MULTIPLE; | 366 PermissionRequestType::MULTIPLE; |
| 367 PermissionRequestGestureType permission_gesture_type = | 367 PermissionRequestGestureType permission_gesture_type = |
| 368 PermissionRequestGestureType::UNKNOWN; | 368 PermissionRequestGestureType::UNKNOWN; |
| 369 if (requests.size() == 1) { | 369 if (requests.size() == 1) { |
| 370 permission_prompt_type = requests[0]->GetPermissionRequestType(); | 370 permission_prompt_type = requests[0]->GetPermissionRequestType(); |
| 371 permission_gesture_type = requests[0]->GetGestureType(); | 371 permission_gesture_type = requests[0]->GetGestureType(); |
| 372 } | 372 } |
| 373 | 373 |
| 374 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptShown, permission_prompt_type); | 374 RecordPermissionPromptShown(permission_prompt_type, permission_gesture_type); |
| 375 PERMISSION_BUBBLE_GESTURE_TYPE_UMA( | |
| 376 kPermissionsPromptShownGesture, kPermissionsPromptShownNoGesture, | |
| 377 permission_gesture_type, permission_prompt_type); | |
| 378 | 375 |
| 379 UMA_HISTOGRAM_ENUMERATION( | 376 UMA_HISTOGRAM_ENUMERATION( |
| 380 kPermissionsPromptRequestsPerPrompt, | 377 kPermissionsPromptRequestsPerPrompt, |
| 381 static_cast<base::HistogramBase::Sample>(requests.size()), | 378 static_cast<base::HistogramBase::Sample>(requests.size()), |
| 382 static_cast<base::HistogramBase::Sample>(10)); | 379 static_cast<base::HistogramBase::Sample>(10)); |
| 383 | 380 |
| 384 if (requests.size() > 1) { | 381 if (requests.size() > 1) { |
| 385 for (const auto* request : requests) { | 382 for (const auto* request : requests) { |
| 386 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleTypes, | 383 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleTypes, |
| 387 request->GetPermissionRequestType()); | 384 request->GetPermissionRequestType()); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 410 request->GetPermissionRequestType()); | 407 request->GetPermissionRequestType()); |
| 411 } else { | 408 } else { |
| 412 all_accepted = false; | 409 all_accepted = false; |
| 413 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleDenied, | 410 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptMergedBubbleDenied, |
| 414 request->GetPermissionRequestType()); | 411 request->GetPermissionRequestType()); |
| 415 } | 412 } |
| 416 } | 413 } |
| 417 } | 414 } |
| 418 | 415 |
| 419 if (all_accepted) { | 416 if (all_accepted) { |
| 420 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptAccepted, | 417 RecordPermissionPromptAccepted(permission_prompt_type, |
| 421 permission_prompt_type); | 418 permission_gesture_type); |
| 422 PERMISSION_BUBBLE_GESTURE_TYPE_UMA( | |
| 423 kPermissionsPromptAcceptedGesture, kPermissionsPromptAcceptedNoGesture, | |
| 424 permission_gesture_type, permission_prompt_type); | |
| 425 } else { | 419 } else { |
| 426 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptDenied, | 420 RecordPermissionPromptDenied(permission_prompt_type, |
| 427 permission_prompt_type); | 421 permission_gesture_type); |
| 428 PERMISSION_BUBBLE_GESTURE_TYPE_UMA( | |
| 429 kPermissionsPromptDeniedGesture, kPermissionsPromptDeniedNoGesture, | |
| 430 permission_gesture_type, permission_prompt_type); | |
| 431 } | 422 } |
| 432 } | 423 } |
| 433 | 424 |
| 434 void PermissionUmaUtil::PermissionPromptDenied( | 425 void PermissionUmaUtil::PermissionPromptDenied( |
| 435 const std::vector<PermissionRequest*>& requests) { | 426 const std::vector<PermissionRequest*>& requests) { |
| 436 DCHECK(!requests.empty()); | 427 DCHECK(!requests.empty()); |
| 437 DCHECK(requests.size() == 1); | 428 DCHECK(requests.size() == 1); |
| 438 | 429 |
| 439 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptDenied, | 430 RecordPermissionPromptDenied(requests[0]->GetPermissionRequestType(), |
| 440 requests[0]->GetPermissionRequestType()); | 431 requests[0]->GetGestureType()); |
| 432 } |
| 433 |
| 434 void PermissionUmaUtil::RecordPermissionPromptShown( |
| 435 PermissionRequestType request_type, |
| 436 PermissionRequestGestureType gesture_type) { |
| 437 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptShown, request_type); |
| 441 PERMISSION_BUBBLE_GESTURE_TYPE_UMA( | 438 PERMISSION_BUBBLE_GESTURE_TYPE_UMA( |
| 442 kPermissionsPromptDeniedGesture, kPermissionsPromptDeniedNoGesture, | 439 kPermissionsPromptShownGesture, kPermissionsPromptShownNoGesture, |
| 443 requests[0]->GetGestureType(), requests[0]->GetPermissionRequestType()); | 440 gesture_type, request_type); |
| 441 } |
| 442 |
| 443 void PermissionUmaUtil::RecordPermissionPromptAccepted( |
| 444 PermissionRequestType request_type, |
| 445 PermissionRequestGestureType gesture_type) { |
| 446 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptAccepted, request_type); |
| 447 PERMISSION_BUBBLE_GESTURE_TYPE_UMA(kPermissionsPromptAcceptedGesture, |
| 448 kPermissionsPromptAcceptedNoGesture, |
| 449 gesture_type, request_type); |
| 450 } |
| 451 |
| 452 void PermissionUmaUtil::RecordPermissionPromptDenied( |
| 453 PermissionRequestType request_type, |
| 454 PermissionRequestGestureType gesture_type) { |
| 455 PERMISSION_BUBBLE_TYPE_UMA(kPermissionsPromptDenied, request_type); |
| 456 PERMISSION_BUBBLE_GESTURE_TYPE_UMA(kPermissionsPromptDeniedGesture, |
| 457 kPermissionsPromptDeniedNoGesture, |
| 458 gesture_type, request_type); |
| 444 } | 459 } |
| 445 | 460 |
| 446 void PermissionUmaUtil::RecordPermissionPromptPriorCount( | 461 void PermissionUmaUtil::RecordPermissionPromptPriorCount( |
| 447 content::PermissionType permission, | 462 content::PermissionType permission, |
| 448 const std::string& prefix, | 463 const std::string& prefix, |
| 449 int count) { | 464 int count) { |
| 450 // The user is not prompted for these permissions, thus there is no prompt | 465 // The user is not prompted for these permissions, thus there is no prompt |
| 451 // event to record a prior count for. | 466 // event to record a prior count for. |
| 452 DCHECK_NE(PermissionType::MIDI, permission); | 467 DCHECK_NE(PermissionType::MIDI, permission); |
| 453 DCHECK_NE(PermissionType::BACKGROUND_SYNC, permission); | 468 DCHECK_NE(PermissionType::BACKGROUND_SYNC, permission); |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 if (!deprecated_metric.empty() && rappor_service) { | 715 if (!deprecated_metric.empty() && rappor_service) { |
| 701 rappor::SampleDomainAndRegistryFromGURL(rappor_service, deprecated_metric, | 716 rappor::SampleDomainAndRegistryFromGURL(rappor_service, deprecated_metric, |
| 702 requesting_origin); | 717 requesting_origin); |
| 703 | 718 |
| 704 std::string rappor_metric = deprecated_metric + "2"; | 719 std::string rappor_metric = deprecated_metric + "2"; |
| 705 rappor_service->RecordSample( | 720 rappor_service->RecordSample( |
| 706 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, | 721 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, |
| 707 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); | 722 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); |
| 708 } | 723 } |
| 709 } | 724 } |
| OLD | NEW |