| 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());
|
| +}
|
|
|