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 |