Chromium Code Reviews| 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..96f24cb1c1c317abfb2792acf0fa08327b116a22 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,102 @@ void PermissionUmaUtil::PermissionPromptDenied( |
| requests[0]->GetGestureType(), requests[0]->GetPermissionRequestType()); |
| } |
| +void PermissionUmaUtil::PermissionPromptGrantedWithPersistenceToggle( |
| + content::PermissionType permission, |
| + bool toggle_enabled) { |
| + switch (permission) { |
| + case PermissionType::GEOLOCATION: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Granted.Persisted.Geolocation", |
|
tsergeant
2016/08/11 00:21:50
Maybe change the histogram names to
Permissions.P
dominickn
2016/08/11 04:43:49
Done.
|
| + toggle_enabled); |
| + break; |
| + case PermissionType::NOTIFICATIONS: |
| + UMA_HISTOGRAM_BOOLEAN( |
| + "Permissions.Prompt.Granted.Persisted.Notifications", toggle_enabled); |
| + break; |
| + case PermissionType::MIDI_SYSEX: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Granted.Persisted.MidiSysEx", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::PUSH_MESSAGING: |
| + UMA_HISTOGRAM_BOOLEAN( |
| + "Permissions.Prompt.Granted.Persisted.PushMessaging", toggle_enabled); |
| + break; |
| + case PermissionType::PROTECTED_MEDIA_IDENTIFIER: |
| + UMA_HISTOGRAM_BOOLEAN( |
| + "Permissions.Prompt.Granted.Persisted.ProtectedMedia", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::DURABLE_STORAGE: |
| + UMA_HISTOGRAM_BOOLEAN( |
| + "Permissions.Prompt.Granted.Persisted.DurableStorage", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::AUDIO_CAPTURE: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Granted.Persisted.AudioCapture", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::VIDEO_CAPTURE: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Granted.Persisted.VideoCapture", |
| + toggle_enabled); |
| + break; |
| + // The user is not prompted for these permissions, thus there is no |
| + // grant recorded for them. |
| + case PermissionType::MIDI: |
| + case PermissionType::BACKGROUND_SYNC: |
| + case PermissionType::NUM: |
| + NOTREACHED() << "PERMISSION " |
| + << PermissionUtil::GetPermissionString(permission) |
| + << " not accounted for"; |
| + } |
| +} |
| + |
| +void PermissionUmaUtil::PermissionPromptDeniedWithPersistenceToggle( |
| + content::PermissionType permission, |
| + bool toggle_enabled) { |
| + switch (permission) { |
| + case PermissionType::GEOLOCATION: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.Geolocation", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::NOTIFICATIONS: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.Notifications", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::MIDI_SYSEX: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.MidiSysEx", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::PUSH_MESSAGING: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.PushMessaging", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::PROTECTED_MEDIA_IDENTIFIER: |
| + UMA_HISTOGRAM_BOOLEAN( |
| + "Permissions.Prompt.Denied.Persisted.ProtectedMedia", toggle_enabled); |
| + break; |
| + case PermissionType::DURABLE_STORAGE: |
| + UMA_HISTOGRAM_BOOLEAN( |
| + "Permissions.Prompt.Denied.Persisted.DurableStorage", toggle_enabled); |
| + break; |
| + case PermissionType::AUDIO_CAPTURE: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.AudioCapture", |
| + toggle_enabled); |
| + break; |
| + case PermissionType::VIDEO_CAPTURE: |
| + UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.VideoCapture", |
| + toggle_enabled); |
| + break; |
| + // The user is not prompted for these permissions, thus there is no |
| + // deny 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)) |