Commit 283ac2ca authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions] Cleanup custom logging in RecordPermissionMessagesHistogram

ExtensionService::RecordPermissionMessagesHistogram() historically used
some bespoke logging because it had custom names for the histograms -
which weren't supported with histogram macros. With histogram functions,
this is much easier, and we can avoid using the internal histogram
logging mechanisms.

Bug: None
Change-Id: I9e35569138094b98e4dab32cfcad505735549666
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2231439Reviewed-by: default avatarAlexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#775185}
parent c8d17417
...@@ -1002,25 +1002,26 @@ void ExtensionService::GrantPermissions(const Extension* extension) { ...@@ -1002,25 +1002,26 @@ void ExtensionService::GrantPermissions(const Extension* extension) {
// static // static
void ExtensionService::RecordPermissionMessagesHistogram( void ExtensionService::RecordPermissionMessagesHistogram(
const Extension* extension, const char* histogram) { const Extension* extension,
// Since this is called from multiple sources, and since the histogram macros const char* histogram_basename) {
// use statics, we need to manually lookup the histogram ourselves.
base::HistogramBase* counter = base::LinearHistogram::FactoryGet(
base::StringPrintf("Extensions.Permissions_%s3", histogram), 1,
APIPermission::kEnumBoundary, APIPermission::kEnumBoundary + 1,
base::HistogramBase::kUmaTargetedHistogramFlag);
base::HistogramBase* counter_has_any = base::BooleanHistogram::FactoryGet(
base::StringPrintf("Extensions.HasPermissions_%s3", histogram),
base::HistogramBase::kUmaTargetedHistogramFlag);
PermissionIDSet permissions = PermissionIDSet permissions =
PermissionMessageProvider::Get()->GetAllPermissionIDs( PermissionMessageProvider::Get()->GetAllPermissionIDs(
extension->permissions_data()->active_permissions(), extension->permissions_data()->active_permissions(),
extension->GetType()); extension->GetType());
counter_has_any->AddBoolean(!permissions.empty()); base::UmaHistogramBoolean(
for (const PermissionID& id : permissions) base::StringPrintf("Extensions.HasPermissions_%s3", histogram_basename),
counter->Add(id.id()); !permissions.empty());
std::string permissions_histogram_name =
base::StringPrintf("Extensions.Permissions_%s3", histogram_basename);
for (const PermissionID& id : permissions) {
// NOTE: APIPermission::kEnumBoundary is equivalent to
// "last_valid_value + 1", so we need to not use the two-argument version
// of UmaHistogramEnumeration (in addition to kEnumBoundary not being named
// kMaxValue).
base::UmaHistogramEnumeration(permissions_histogram_name, id.id(),
APIPermission::kEnumBoundary);
}
} }
// TODO(michaelpg): Group with other ExtensionRegistrar::Delegate overrides // TODO(michaelpg): Group with other ExtensionRegistrar::Delegate overrides
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment