Index: chrome/browser/permissions/permission_context_uma_util.cc |
diff --git a/chrome/browser/permissions/permission_context_uma_util.cc b/chrome/browser/permissions/permission_context_uma_util.cc |
index 8ed9f8cac4958ca8933e35350334078a1d7210f6..639941afdb9901130426c545748acfa59199303a 100644 |
--- a/chrome/browser/permissions/permission_context_uma_util.cc |
+++ b/chrome/browser/permissions/permission_context_uma_util.cc |
@@ -32,22 +32,6 @@ using content::PermissionType; |
namespace { |
-// Enum for UMA purposes, make sure you update histograms.xml if you add new |
-// permission actions. Never delete or reorder an entry; only add new entries |
-// immediately before PERMISSION_NUM |
-enum PermissionAction { |
- GRANTED = 0, |
- DENIED = 1, |
- DISMISSED = 2, |
- IGNORED = 3, |
- REVOKED = 4, |
- REENABLED = 5, |
- REQUESTED = 6, |
- |
- // Always keep this at the end. |
- PERMISSION_ACTION_NUM, |
-}; |
- |
// Deprecated. This method is used for the single-dimensional RAPPOR metrics |
// that are being replaced by the multi-dimensional ones. |
const std::string GetRapporMetric(ContentSettingsType permission, |
@@ -148,23 +132,8 @@ void RecordPermissionAction(ContentSettingsType permission, |
rappor_service, rappor_metric, requesting_origin); |
// Add multi-dimensional RAPPOR reporting for safe-browsing users. |
- std::string permission_str = |
- PermissionContextUmaUtil::GetPermissionString(permission); |
- if (!rappor_service || permission_str.empty()) |
- return; |
- |
- scoped_ptr<rappor::Sample> sample = |
- rappor_service->CreateSample(rappor::SAFEBROWSING_RAPPOR_TYPE); |
- sample->SetStringField("Scheme", requesting_origin.scheme()); |
- sample->SetStringField("Host", requesting_origin.host()); |
- sample->SetStringField("Port", requesting_origin.port()); |
- sample->SetStringField("Domain", |
- rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); |
- sample->SetFlagsField("Actions", |
- 1 << action, |
- PermissionAction::PERMISSION_ACTION_NUM); |
- rappor_service->RecordSampleObj("Permissions.Action." + |
- permission_str, sample.Pass()); |
+ PermissionContextUmaUtil::RecordMultiDRapporAction(permission, |
+ requesting_origin, action); |
} |
std::string PermissionTypeToString(PermissionType permission_type) { |
@@ -336,3 +305,26 @@ const std::string PermissionContextUmaUtil::GetPermissionString( |
return ""; |
} |
} |
+ |
+void PermissionContextUmaUtil::RecordMultiDRapporAction( |
+ ContentSettingsType permission, |
+ const GURL& requesting_origin, |
+ PermissionAction action) { |
+ rappor::RapporService* rappor_service = g_browser_process->rappor_service(); |
+ const std::string permission_str = GetPermissionString(permission); |
+ if (!rappor_service || permission_str.empty()) |
+ return; |
+ |
+ scoped_ptr<rappor::Sample> sample = |
+ rappor_service->CreateSample(rappor::SAFEBROWSING_RAPPOR_TYPE); |
+ sample->SetStringField("Scheme", requesting_origin.scheme()); |
+ sample->SetStringField("Host", requesting_origin.host()); |
+ sample->SetStringField("Port", requesting_origin.port()); |
+ sample->SetStringField("Domain", |
+ rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); |
+ sample->SetFlagsField("Actions", |
+ 1 << action, |
+ PermissionAction::PERMISSION_ACTION_NUM); |
+ rappor_service->RecordSampleObj("Permissions.Action." + |
+ permission_str, sample.Pass()); |
+} |