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

Unified Diff: chrome/browser/permissions/permission_uma_util.cc

Issue 2184823007: Add a feature which, when enabled, blocks permissions after X prompt dismissals. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing nits Created 4 years, 4 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
Index: chrome/browser/permissions/permission_uma_util.cc
diff --git a/chrome/browser/permissions/permission_uma_util.cc b/chrome/browser/permissions/permission_uma_util.cc
index ee69985714e9488e9ed9e9af6eb372a8e6dec8ae..655473272778719ba00fab8762b592f73f5b7b98 100644
--- a/chrome/browser/permissions/permission_uma_util.cc
+++ b/chrome/browser/permissions/permission_uma_util.cc
@@ -85,8 +85,7 @@ const std::string GetRapporMetric(PermissionType permission,
break;
}
- std::string permission_str =
- PermissionUtil::GetPermissionString(permission);
+ std::string permission_str = PermissionUtil::GetPermissionString(permission);
if (permission_str.empty())
return "";
return base::StringPrintf("ContentSettings.PermissionActions_%s.%s.Url",
@@ -102,8 +101,7 @@ void RecordPermissionRequest(PermissionType permission,
if (permission == PermissionType::GEOLOCATION) {
// TODO(dominickn): remove this deprecated metric - crbug.com/605836.
rappor::SampleDomainAndRegistryFromGURL(
- rappor_service,
- "ContentSettings.PermissionRequested.Geolocation.Url",
+ rappor_service, "ContentSettings.PermissionRequested.Geolocation.Url",
requesting_origin);
rappor_service->RecordSample(
"ContentSettings.PermissionRequested.Geolocation.Url2",
@@ -123,8 +121,7 @@ void RecordPermissionRequest(PermissionType permission,
permission == PermissionType::MIDI_SYSEX) {
// TODO(dominickn): remove this deprecated metric - crbug.com/605836.
rappor::SampleDomainAndRegistryFromGURL(
- rappor_service,
- "ContentSettings.PermissionRequested.Midi.Url",
+ rappor_service, "ContentSettings.PermissionRequested.Midi.Url",
requesting_origin);
rappor_service->RecordSample(
"ContentSettings.PermissionRequested.Midi.Url2",
@@ -356,6 +353,100 @@ void PermissionUmaUtil::PermissionPromptDenied(
requests[0]->GetGestureType(), requests[0]->GetPermissionRequestType());
}
+void PermissionUmaUtil::PermissionPromptDismissed(
+ content::PermissionType permission,
+ int count) {
+ switch (permission) {
+ case PermissionType::GEOLOCATION:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.DismissCount.Geolocation",
+ count);
+ break;
+ case PermissionType::NOTIFICATIONS:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.DismissCount.Notifications",
+ count);
+ break;
+ case PermissionType::MIDI_SYSEX:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.DismissCount.MidiSysEx",
+ count);
+ break;
+ case PermissionType::PUSH_MESSAGING:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.DismissCount.PushMessaging",
+ count);
+ break;
+ case PermissionType::PROTECTED_MEDIA_IDENTIFIER:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.DismissCount.ProtectedMedia",
+ count);
+ break;
+ case PermissionType::DURABLE_STORAGE:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.DismissCount.DurableStorage",
+ count);
+ break;
+ case PermissionType::AUDIO_CAPTURE:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.DismissCount.AudioCapture",
+ count);
+ break;
+ case PermissionType::VIDEO_CAPTURE:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.DismissCount.VideoCapture",
+ count);
+ break;
+ // The user is not prompted for these permissions, thus there is no dismiss
+ // recorded for them.
+ case PermissionType::MIDI:
+ case PermissionType::BACKGROUND_SYNC:
+ case PermissionType::NUM:
+ NOTREACHED() << "PERMISSION "
+ << PermissionUtil::GetPermissionString(permission)
+ << " not accounted for";
+ }
+}
+
+void PermissionUmaUtil::PermissionPromptIgnored(
+ content::PermissionType permission,
+ int count) {
+ switch (permission) {
+ case PermissionType::GEOLOCATION:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.IgnoreCount.Geolocation",
+ count);
+ break;
+ case PermissionType::NOTIFICATIONS:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.IgnoreCount.Notifications",
+ count);
+ break;
+ case PermissionType::MIDI_SYSEX:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.IgnoreCount.MidiSysEx",
+ count);
+ break;
+ case PermissionType::PUSH_MESSAGING:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.IgnoreCount.PushMessaging",
+ count);
+ break;
+ case PermissionType::PROTECTED_MEDIA_IDENTIFIER:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.IgnoreCount.ProtectedMedia",
+ count);
+ break;
+ case PermissionType::DURABLE_STORAGE:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.IgnoreCount.DurableStorage",
+ count);
+ break;
+ case PermissionType::AUDIO_CAPTURE:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.IgnoreCount.AudioCapture",
+ count);
+ break;
+ case PermissionType::VIDEO_CAPTURE:
+ UMA_HISTOGRAM_COUNTS_100("Permissions.Prompt.IgnoreCount.VideoCapture",
+ count);
+ break;
+ // The user is not prompted for these permissions, thus there is no
+ // ignore recorded for them.
+ case PermissionType::MIDI:
+ case PermissionType::BACKGROUND_SYNC:
+ case PermissionType::NUM:
+ NOTREACHED() << "PERMISSION "
+ << PermissionUtil::GetPermissionString(permission)
+ << " not accounted for";
+ }
+}
+
bool PermissionUmaUtil::IsOptedIntoPermissionActionReporting(Profile* profile) {
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnablePermissionActionReporting))

Powered by Google App Engine
This is Rietveld 408576698