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

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

Issue 1977693003: Add metrics for permission prompt acceptance / denial (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 #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/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 permission == PermissionType::GEOLOCATION || 275 permission == PermissionType::GEOLOCATION ||
276 permission == PermissionType::AUDIO_CAPTURE || 276 permission == PermissionType::AUDIO_CAPTURE ||
277 permission == PermissionType::VIDEO_CAPTURE) { 277 permission == PermissionType::VIDEO_CAPTURE) {
278 RecordPermissionAction(permission, REVOKED, revoked_origin); 278 RecordPermissionAction(permission, REVOKED, revoked_origin);
279 } 279 }
280 } 280 }
281 281
282 void PermissionUmaUtil::PermissionPromptShown( 282 void PermissionUmaUtil::PermissionPromptShown(
283 const std::vector<PermissionBubbleRequest*>& requests) { 283 const std::vector<PermissionBubbleRequest*>& requests) {
284 DCHECK(!requests.empty()); 284 DCHECK(!requests.empty());
285
285 PermissionBubbleType permission_prompt_type = PermissionBubbleType::MULTIPLE; 286 PermissionBubbleType permission_prompt_type = PermissionBubbleType::MULTIPLE;
286 if (requests.size() == 1) 287 if (requests.size() == 1)
287 permission_prompt_type = requests[0]->GetPermissionBubbleType(); 288 permission_prompt_type = requests[0]->GetPermissionBubbleType();
288 UMA_HISTOGRAM_ENUMERATION( 289 UMA_HISTOGRAM_ENUMERATION(
289 "Permissions.Prompt.Shown", 290 "Permissions.Prompt.Shown",
290 static_cast<base::HistogramBase::Sample>(permission_prompt_type), 291 static_cast<base::HistogramBase::Sample>(permission_prompt_type),
291 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM)); 292 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM));
292 293
293 UMA_HISTOGRAM_ENUMERATION( 294 UMA_HISTOGRAM_ENUMERATION(
294 "Permissions.Prompt.RequestsPerPrompt", 295 "Permissions.Prompt.RequestsPerPrompt",
295 static_cast<base::HistogramBase::Sample>(requests.size()), 296 static_cast<base::HistogramBase::Sample>(requests.size()),
296 static_cast<base::HistogramBase::Sample>(10)); 297 static_cast<base::HistogramBase::Sample>(10));
297 298
298 if (requests.size() > 1) { 299 if (requests.size() > 1) {
299 for (const auto* request : requests) { 300 for (const auto* request : requests) {
300 UMA_HISTOGRAM_ENUMERATION( 301 UMA_HISTOGRAM_ENUMERATION(
301 "Permissions.Prompt.MergedBubbleTypes", 302 "Permissions.Prompt.MergedBubbleTypes",
302 static_cast<base::HistogramBase::Sample>( 303 static_cast<base::HistogramBase::Sample>(
303 request->GetPermissionBubbleType()), 304 request->GetPermissionBubbleType()),
304 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM)); 305 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM));
305 } 306 }
306 } 307 }
307 } 308 }
309
310 void PermissionUmaUtil::PermissionPromptAccepted(
311 const std::vector<PermissionBubbleRequest*>& requests,
312 const std::vector<bool>& accept_states) {
313 DCHECK(!requests.empty());
314 DCHECK(requests.size() == accept_states.size());
315
316 bool all_accepted = true;
317 PermissionBubbleType permission_prompt_type =
318 requests[0]->GetPermissionBubbleType();
319 if (requests.size() > 1) {
320 permission_prompt_type = PermissionBubbleType::MULTIPLE;
321 for (size_t i = 0; i < requests.size(); ++i) {
322 const auto* request = requests[i];
323 std::string metric_name = "Permissions.Prompt.MergedBubbleAccepted";
324 if (!accept_states[i]) {
325 all_accepted = false;
326 metric_name = "Permissions.Prompt.MergedBubbleDenied";
327 }
328
329 UMA_HISTOGRAM_ENUMERATION(
330 metric_name,
331 static_cast<base::HistogramBase::Sample>(
332 request->GetPermissionBubbleType()),
333 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM));
334 }
335 }
336
337 std::string metric_name = all_accepted ? "Permissions.Prompt.Accepted"
338 : "Permissions.Prompt.Denied";
339 UMA_HISTOGRAM_ENUMERATION(
340 metric_name,
341 static_cast<base::HistogramBase::Sample>(permission_prompt_type),
342 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM));
343 }
344
345 void PermissionUmaUtil::PermissionPromptDenied(
346 const std::vector<PermissionBubbleRequest*>& requests) {
347 DCHECK(!requests.empty());
348 DCHECK(requests.size() == 1);
349
350 PermissionBubbleType permission_prompt_type =
351 requests[0]->GetPermissionBubbleType();
352 UMA_HISTOGRAM_ENUMERATION(
353 "Permissions.Prompt.Denied",
354 static_cast<base::HistogramBase::Sample>(permission_prompt_type),
355 static_cast<base::HistogramBase::Sample>(PermissionBubbleType::NUM));
356 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698