| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/permissions/permission_uma_util.h" | 5 #include "chrome/browser/permissions/permission_uma_util.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 PermissionDecisionAutoBlocker::GetForProfile(profile); | 295 PermissionDecisionAutoBlocker::GetForProfile(profile); |
| 296 RecordPermissionAction(permission, PermissionAction::IGNORED, | 296 RecordPermissionAction(permission, PermissionAction::IGNORED, |
| 297 PermissionSourceUI::PROMPT, gesture_type, | 297 PermissionSourceUI::PROMPT, gesture_type, |
| 298 requesting_origin, profile); | 298 requesting_origin, profile); |
| 299 RecordPermissionPromptPriorCount( | 299 RecordPermissionPromptPriorCount( |
| 300 permission, kPermissionsPromptIgnoredPriorDismissCountPrefix, | 300 permission, kPermissionsPromptIgnoredPriorDismissCountPrefix, |
| 301 autoblocker->GetDismissCount(requesting_origin, permission)); | 301 autoblocker->GetDismissCount(requesting_origin, permission)); |
| 302 RecordPermissionPromptPriorCount( | 302 RecordPermissionPromptPriorCount( |
| 303 permission, kPermissionsPromptIgnoredPriorIgnoreCountPrefix, | 303 permission, kPermissionsPromptIgnoredPriorIgnoreCountPrefix, |
| 304 autoblocker->GetIgnoreCount(requesting_origin, permission)); | 304 autoblocker->GetIgnoreCount(requesting_origin, permission)); |
| 305 | |
| 306 // RecordPermission* methods need to be called before RecordIgnore in the | |
| 307 // blocker because they record the number of prior ignore and dismiss values, | |
| 308 // and we don't want to include the current ignore. | |
| 309 autoblocker->RecordIgnore(requesting_origin, permission); | |
| 310 } | 305 } |
| 311 | 306 |
| 312 void PermissionUmaUtil::PermissionRevoked(ContentSettingsType permission, | 307 void PermissionUmaUtil::PermissionRevoked(ContentSettingsType permission, |
| 313 PermissionSourceUI source_ui, | 308 PermissionSourceUI source_ui, |
| 314 const GURL& revoked_origin, | 309 const GURL& revoked_origin, |
| 315 Profile* profile) { | 310 Profile* profile) { |
| 316 // TODO(tsergeant): Expand metrics definitions for revocation to include all | 311 // TODO(tsergeant): Expand metrics definitions for revocation to include all |
| 317 // permissions. | 312 // permissions. |
| 318 if (permission == CONTENT_SETTINGS_TYPE_NOTIFICATIONS || | 313 if (permission == CONTENT_SETTINGS_TYPE_NOTIFICATIONS || |
| 319 permission == CONTENT_SETTINGS_TYPE_GEOLOCATION || | 314 permission == CONTENT_SETTINGS_TYPE_GEOLOCATION || |
| (...skipping 16 matching lines...) Expand all Loading... |
| 336 | 331 |
| 337 void PermissionUmaUtil::RecordEmbargoPromptSuppressionFromSource( | 332 void PermissionUmaUtil::RecordEmbargoPromptSuppressionFromSource( |
| 338 PermissionStatusSource source) { | 333 PermissionStatusSource source) { |
| 339 // Explicitly switch to ensure that any new PermissionStatusSource values are | 334 // Explicitly switch to ensure that any new PermissionStatusSource values are |
| 340 // dealt with appropriately. | 335 // dealt with appropriately. |
| 341 switch (source) { | 336 switch (source) { |
| 342 case PermissionStatusSource::MULTIPLE_DISMISSALS: | 337 case PermissionStatusSource::MULTIPLE_DISMISSALS: |
| 343 PermissionUmaUtil::RecordEmbargoPromptSuppression( | 338 PermissionUmaUtil::RecordEmbargoPromptSuppression( |
| 344 PermissionEmbargoStatus::REPEATED_DISMISSALS); | 339 PermissionEmbargoStatus::REPEATED_DISMISSALS); |
| 345 break; | 340 break; |
| 341 case PermissionStatusSource::MULTIPLE_IGNORES: |
| 342 PermissionUmaUtil::RecordEmbargoPromptSuppression( |
| 343 PermissionEmbargoStatus::REPEATED_IGNORES); |
| 344 break; |
| 346 case PermissionStatusSource::SAFE_BROWSING_BLACKLIST: | 345 case PermissionStatusSource::SAFE_BROWSING_BLACKLIST: |
| 347 PermissionUmaUtil::RecordEmbargoPromptSuppression( | 346 PermissionUmaUtil::RecordEmbargoPromptSuppression( |
| 348 PermissionEmbargoStatus::PERMISSIONS_BLACKLISTING); | 347 PermissionEmbargoStatus::PERMISSIONS_BLACKLISTING); |
| 349 break; | 348 break; |
| 350 case PermissionStatusSource::UNSPECIFIED: | 349 case PermissionStatusSource::UNSPECIFIED: |
| 351 case PermissionStatusSource::KILL_SWITCH: | 350 case PermissionStatusSource::KILL_SWITCH: |
| 352 // The permission wasn't under embargo, so don't record anything. We may | 351 // The permission wasn't under embargo, so don't record anything. We may |
| 353 // embargo it later. | 352 // embargo it later. |
| 354 break; | 353 break; |
| 355 } | 354 } |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 712 | 711 |
| 713 const std::string rappor_metric = GetRapporMetric(permission, action); | 712 const std::string rappor_metric = GetRapporMetric(permission, action); |
| 714 rappor::RapporServiceImpl* rappor_service = | 713 rappor::RapporServiceImpl* rappor_service = |
| 715 g_browser_process->rappor_service(); | 714 g_browser_process->rappor_service(); |
| 716 if (!rappor_metric.empty() && rappor_service) { | 715 if (!rappor_metric.empty() && rappor_service) { |
| 717 rappor_service->RecordSampleString( | 716 rappor_service->RecordSampleString( |
| 718 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, | 717 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, |
| 719 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); | 718 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); |
| 720 } | 719 } |
| 721 } | 720 } |
| OLD | NEW |