| Index: chrome/browser/permissions/permission_uma_util.cc
|
| diff --git a/chrome/browser/permissions/permission_uma_util.cc b/chrome/browser/permissions/permission_uma_util.cc
|
| index 38ca3630e42f4f61dd7b52b4e89582b0dedf3a24..0c0ab5e57e7dc0b64b425ade6d6997b2e18e823f 100644
|
| --- a/chrome/browser/permissions/permission_uma_util.cc
|
| +++ b/chrome/browser/permissions/permission_uma_util.cc
|
| @@ -282,6 +282,7 @@ void PermissionUmaUtil::PermissionRevoked(PermissionType permission,
|
| void PermissionUmaUtil::PermissionPromptShown(
|
| const std::vector<PermissionBubbleRequest*>& requests) {
|
| DCHECK(!requests.empty());
|
| +
|
| PermissionBubbleType permission_prompt_type = PermissionBubbleType::MULTIPLE;
|
| if (requests.size() == 1)
|
| permission_prompt_type = requests[0]->GetPermissionBubbleType();
|
| @@ -305,3 +306,51 @@ void PermissionUmaUtil::PermissionPromptShown(
|
| }
|
| }
|
| }
|
| +
|
| +void PermissionUmaUtil::PermissionPromptAccepted(
|
| + const std::vector<PermissionBubbleRequest*>& requests,
|
| + const std::vector<bool>& accept_states) {
|
| + DCHECK(!requests.empty());
|
| + DCHECK(requests.size() == accept_states.size());
|
| +
|
| + bool all_accepted = true;
|
| + PermissionBubbleType permission_prompt_type =
|
| + requests[0]->GetPermissionBubbleType();
|
| + if (requests.size() > 1) {
|
| + permission_prompt_type = PermissionBubbleType::MULTIPLE;
|
| + for (size_t i = 0; i < requests.size(); ++i) {
|
| + const auto* request = requests[i];
|
| + std::string metric_name = "Permissions.Prompt.MergedBubbleAccepted";
|
| + if (!accept_states[i]) {
|
| + all_accepted = false;
|
| + metric_name = "Permissions.Prompt.MergedBubbleDenied";
|
| + }
|
| +
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + metric_name,
|
| + static_cast<base::HistogramBase::Sample>(
|
| + request->GetPermissionBubbleType()),
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM));
|
| + }
|
| + }
|
| +
|
| + std::string metric_name = all_accepted ? "Permissions.Prompt.Accepted"
|
| + : "Permissions.Prompt.Denied";
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + metric_name,
|
| + static_cast<base::HistogramBase::Sample>(permission_prompt_type),
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM));
|
| +}
|
| +
|
| +void PermissionUmaUtil::PermissionPromptDenied(
|
| + const std::vector<PermissionBubbleRequest*>& requests) {
|
| + DCHECK(!requests.empty());
|
| + DCHECK(requests.size() == 1);
|
| +
|
| + PermissionBubbleType permission_prompt_type =
|
| + requests[0]->GetPermissionBubbleType();
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + "Permissions.Prompt.Denied",
|
| + static_cast<base::HistogramBase::Sample>(permission_prompt_type),
|
| + static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM));
|
| +}
|
|
|