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

Unified Diff: chrome/browser/content_settings/permission_context_uma_util.cc

Issue 1019543002: Add rappor metrics for infobar/bubble operations for Geolocation and Notifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/metrics/rappor/rappor.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/content_settings/permission_context_uma_util.cc
diff --git a/chrome/browser/content_settings/permission_context_uma_util.cc b/chrome/browser/content_settings/permission_context_uma_util.cc
index 2f4963844cfdb57962ea84a418436f8dfbbab939..d271cbc52faf2fb08f2321b52c9e4d8eae9a4c62 100644
--- a/chrome/browser/content_settings/permission_context_uma_util.cc
+++ b/chrome/browser/content_settings/permission_context_uma_util.cc
@@ -2,15 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/metrics/histogram.h"
+#include "base/metrics/histogram_macros.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/permission_context_uma_util.h"
+#include "components/rappor/rappor_utils.h"
#include "content/public/browser/permission_type.h"
#include "url/gurl.h"
// UMA keys need to be statically initialized so plain function would not
// work. Use a Macro instead.
#define PERMISSION_ACTION_UMA(secure_origin, \
- permission, permission_secure, permission_insecure, action) \
+ permission, permission_secure, permission_insecure, action) \
UMA_HISTOGRAM_ENUMERATION( \
permission, \
action, \
@@ -25,6 +27,29 @@
PERMISSION_ACTION_NUM); \
}
+#define PERMISSION_ACTION_RAPPOR(gurl, granted, denied, \
+ dismissed, ignored, action) \
+ switch (action) { \
+ case GRANTED: \
+ rappor::SampleDomainAndRegistryFromGURL( \
+ g_browser_process->rappor_service(), granted, gurl); \
+ break; \
+ case DENIED: \
+ rappor::SampleDomainAndRegistryFromGURL( \
+ g_browser_process->rappor_service(), denied, gurl); \
+ break; \
+ case DISMISSED: \
+ rappor::SampleDomainAndRegistryFromGURL( \
+ g_browser_process->rappor_service(), dismissed, gurl); \
+ break; \
+ case IGNORED: \
+ rappor::SampleDomainAndRegistryFromGURL( \
+ g_browser_process->rappor_service(), ignored, gurl); \
+ break; \
+ case PERMISSION_ACTION_NUM: \
+ NOTREACHED(); \
+ break; \
+ }
namespace {
@@ -44,7 +69,8 @@ enum PermissionAction {
void RecordPermissionAction(
ContentSettingsType permission,
PermissionAction action,
- bool secure_origin) {
+ const GURL& requesting_origin) {
+ bool secure_origin = requesting_origin.SchemeIsSecure();
switch (permission) {
case CONTENT_SETTINGS_TYPE_GEOLOCATION:
PERMISSION_ACTION_UMA(
@@ -53,6 +79,13 @@ void RecordPermissionAction(
"ContentSettings.PermissionActionsSecureOrigin_Geolocation",
"ContentSettings.PermissionActionsInsecureOrigin_Geolocation",
action);
+ PERMISSION_ACTION_RAPPOR(
Steven Holte 2015/03/18 20:39:20 The rappor::Sample method doesn't initialize a sta
Miguel Garcia 2015/03/25 02:29:37 Oh that's great news! Changed it to generate it dy
+ requesting_origin,
+ "ContentSettings.PermissionActions_Geolocation.Granted.Url",
+ "ContentSettings.PermissionActions_Geolocation.Denied.Url",
+ "ContentSettings.PermissionActions_Geolocation.Dismissed.Url",
+ "ContentSettings.PermissionActions_Geolocation.Ignored.Url",
+ action);
break;
case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
PERMISSION_ACTION_UMA(
@@ -61,6 +94,13 @@ void RecordPermissionAction(
"ContentSettings.PermissionActionsSecureOrigin_Notifications",
"ContentSettings.PermissionActionsInsecureOrigin_Notifications",
action);
+ PERMISSION_ACTION_RAPPOR(
+ requesting_origin,
+ "ContentSettings.PermissionActions_Notifications.Granted.Url",
+ "ContentSettings.PermissionActions_Notifications.Denied.Url",
+ "ContentSettings.PermissionActions_Notifications.Dismissed.Url",
+ "ContentSettings.PermissionActions_Notifications.Ignored.Url",
+ action);
break;
case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
PERMISSION_ACTION_UMA(
@@ -94,13 +134,22 @@ void RecordPermissionAction(
}
void RecordPermissionRequest(
- ContentSettingsType permission, bool secure_origin) {
+ ContentSettingsType permission, const GURL& requesting_origin) {
+ bool secure_origin = requesting_origin.SchemeIsSecure();
content::PermissionType type;
switch (permission) {
case CONTENT_SETTINGS_TYPE_GEOLOCATION:
+ rappor::SampleDomainAndRegistryFromGURL(
+ g_browser_process->rappor_service(),
+ "ContentSettings.PermissionRequested.Geolocation.Url",
+ requesting_origin);
type = content::PERMISSION_GEOLOCATION;
break;
case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
+ rappor::SampleDomainAndRegistryFromGURL(
+ g_browser_process->rappor_service(),
+ "ContentSettings.PermissionRequested.Notifications.Url",
+ requesting_origin);
type = content::PERMISSION_NOTIFICATIONS;
break;
case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
@@ -139,29 +188,25 @@ void RecordPermissionRequest(
// add new permission
void PermissionContextUmaUtil::PermissionRequested(
ContentSettingsType permission, const GURL& requesting_origin) {
- RecordPermissionRequest(permission, requesting_origin.SchemeIsSecure());
+ RecordPermissionRequest(permission, requesting_origin);
}
void PermissionContextUmaUtil::PermissionGranted(
ContentSettingsType permission, const GURL& requesting_origin) {
- RecordPermissionAction(permission, GRANTED,
- requesting_origin.SchemeIsSecure());
+ RecordPermissionAction(permission, GRANTED, requesting_origin);
}
void PermissionContextUmaUtil::PermissionDenied(
ContentSettingsType permission, const GURL& requesting_origin) {
- RecordPermissionAction(permission, DENIED,
- requesting_origin.SchemeIsSecure());
+ RecordPermissionAction(permission, DENIED, requesting_origin);
}
void PermissionContextUmaUtil::PermissionDismissed(
ContentSettingsType permission, const GURL& requesting_origin) {
- RecordPermissionAction(permission, DISMISSED,
- requesting_origin.SchemeIsSecure());
+ RecordPermissionAction(permission, DISMISSED, requesting_origin);
}
void PermissionContextUmaUtil::PermissionIgnored(
ContentSettingsType permission, const GURL& requesting_origin) {
- RecordPermissionAction(permission, IGNORED,
- requesting_origin.SchemeIsSecure());
+ RecordPermissionAction(permission, IGNORED, requesting_origin);
}
« no previous file with comments | « no previous file | tools/metrics/rappor/rappor.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698