| 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 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 Profile* profile) { | 264 Profile* profile) { |
| 265 RecordPermissionRequest(permission, requesting_origin, embedding_origin, | 265 RecordPermissionRequest(permission, requesting_origin, embedding_origin, |
| 266 profile); | 266 profile); |
| 267 } | 267 } |
| 268 | 268 |
| 269 void PermissionUmaUtil::PermissionGranted( | 269 void PermissionUmaUtil::PermissionGranted( |
| 270 PermissionType permission, | 270 PermissionType permission, |
| 271 PermissionRequestGestureType gesture_type, | 271 PermissionRequestGestureType gesture_type, |
| 272 const GURL& requesting_origin, | 272 const GURL& requesting_origin, |
| 273 Profile* profile) { | 273 Profile* profile) { |
| 274 PermissionDecisionAutoBlocker* autoblocker = |
| 275 PermissionDecisionAutoBlocker::GetForProfile(profile); |
| 274 RecordPermissionAction(permission, GRANTED, PermissionSourceUI::PROMPT, | 276 RecordPermissionAction(permission, GRANTED, PermissionSourceUI::PROMPT, |
| 275 gesture_type, requesting_origin, profile); | 277 gesture_type, requesting_origin, profile); |
| 276 RecordPermissionPromptPriorCount( | 278 RecordPermissionPromptPriorCount( |
| 277 permission, kPermissionsPromptAcceptedPriorDismissCountPrefix, | 279 permission, kPermissionsPromptAcceptedPriorDismissCountPrefix, |
| 278 PermissionDecisionAutoBlocker::GetDismissCount(requesting_origin, | 280 autoblocker->GetDismissCount(requesting_origin, permission)); |
| 279 permission, profile)); | |
| 280 RecordPermissionPromptPriorCount( | 281 RecordPermissionPromptPriorCount( |
| 281 permission, kPermissionsPromptAcceptedPriorIgnoreCountPrefix, | 282 permission, kPermissionsPromptAcceptedPriorIgnoreCountPrefix, |
| 282 PermissionDecisionAutoBlocker::GetIgnoreCount(requesting_origin, | 283 autoblocker->GetIgnoreCount(requesting_origin, permission)); |
| 283 permission, profile)); | |
| 284 } | 284 } |
| 285 | 285 |
| 286 void PermissionUmaUtil::PermissionDenied( | 286 void PermissionUmaUtil::PermissionDenied( |
| 287 PermissionType permission, | 287 PermissionType permission, |
| 288 PermissionRequestGestureType gesture_type, | 288 PermissionRequestGestureType gesture_type, |
| 289 const GURL& requesting_origin, | 289 const GURL& requesting_origin, |
| 290 Profile* profile) { | 290 Profile* profile) { |
| 291 PermissionDecisionAutoBlocker* autoblocker = |
| 292 PermissionDecisionAutoBlocker::GetForProfile(profile); |
| 291 RecordPermissionAction(permission, DENIED, PermissionSourceUI::PROMPT, | 293 RecordPermissionAction(permission, DENIED, PermissionSourceUI::PROMPT, |
| 292 gesture_type, requesting_origin, profile); | 294 gesture_type, requesting_origin, profile); |
| 293 RecordPermissionPromptPriorCount( | 295 RecordPermissionPromptPriorCount( |
| 294 permission, kPermissionsPromptDeniedPriorDismissCountPrefix, | 296 permission, kPermissionsPromptDeniedPriorDismissCountPrefix, |
| 295 PermissionDecisionAutoBlocker::GetDismissCount(requesting_origin, | 297 autoblocker->GetDismissCount(requesting_origin, permission)); |
| 296 permission, profile)); | |
| 297 RecordPermissionPromptPriorCount( | 298 RecordPermissionPromptPriorCount( |
| 298 permission, kPermissionsPromptDeniedPriorIgnoreCountPrefix, | 299 permission, kPermissionsPromptDeniedPriorIgnoreCountPrefix, |
| 299 PermissionDecisionAutoBlocker::GetIgnoreCount(requesting_origin, | 300 autoblocker->GetIgnoreCount(requesting_origin, permission)); |
| 300 permission, profile)); | |
| 301 } | 301 } |
| 302 | 302 |
| 303 void PermissionUmaUtil::PermissionDismissed( | 303 void PermissionUmaUtil::PermissionDismissed( |
| 304 PermissionType permission, | 304 PermissionType permission, |
| 305 PermissionRequestGestureType gesture_type, | 305 PermissionRequestGestureType gesture_type, |
| 306 const GURL& requesting_origin, | 306 const GURL& requesting_origin, |
| 307 Profile* profile) { | 307 Profile* profile) { |
| 308 PermissionDecisionAutoBlocker* autoblocker = |
| 309 PermissionDecisionAutoBlocker::GetForProfile(profile); |
| 308 RecordPermissionAction(permission, DISMISSED, PermissionSourceUI::PROMPT, | 310 RecordPermissionAction(permission, DISMISSED, PermissionSourceUI::PROMPT, |
| 309 gesture_type, requesting_origin, profile); | 311 gesture_type, requesting_origin, profile); |
| 310 RecordPermissionPromptPriorCount( | 312 RecordPermissionPromptPriorCount( |
| 311 permission, kPermissionsPromptDismissedPriorDismissCountPrefix, | 313 permission, kPermissionsPromptDismissedPriorDismissCountPrefix, |
| 312 PermissionDecisionAutoBlocker::GetDismissCount(requesting_origin, | 314 autoblocker->GetDismissCount(requesting_origin, permission)); |
| 313 permission, profile)); | |
| 314 RecordPermissionPromptPriorCount( | 315 RecordPermissionPromptPriorCount( |
| 315 permission, kPermissionsPromptDismissedPriorIgnoreCountPrefix, | 316 permission, kPermissionsPromptDismissedPriorIgnoreCountPrefix, |
| 316 PermissionDecisionAutoBlocker::GetIgnoreCount(requesting_origin, | 317 autoblocker->GetIgnoreCount(requesting_origin, permission)); |
| 317 permission, profile)); | |
| 318 } | 318 } |
| 319 | 319 |
| 320 void PermissionUmaUtil::PermissionIgnored( | 320 void PermissionUmaUtil::PermissionIgnored( |
| 321 PermissionType permission, | 321 PermissionType permission, |
| 322 PermissionRequestGestureType gesture_type, | 322 PermissionRequestGestureType gesture_type, |
| 323 const GURL& requesting_origin, | 323 const GURL& requesting_origin, |
| 324 Profile* profile) { | 324 Profile* profile) { |
| 325 PermissionDecisionAutoBlocker* autoblocker = |
| 326 PermissionDecisionAutoBlocker::GetForProfile(profile); |
| 325 RecordPermissionAction(permission, IGNORED, PermissionSourceUI::PROMPT, | 327 RecordPermissionAction(permission, IGNORED, PermissionSourceUI::PROMPT, |
| 326 gesture_type, requesting_origin, profile); | 328 gesture_type, requesting_origin, profile); |
| 327 RecordPermissionPromptPriorCount( | 329 RecordPermissionPromptPriorCount( |
| 328 permission, kPermissionsPromptIgnoredPriorDismissCountPrefix, | 330 permission, kPermissionsPromptIgnoredPriorDismissCountPrefix, |
| 329 PermissionDecisionAutoBlocker::GetDismissCount(requesting_origin, | 331 autoblocker->GetDismissCount(requesting_origin, permission)); |
| 330 permission, profile)); | |
| 331 RecordPermissionPromptPriorCount( | 332 RecordPermissionPromptPriorCount( |
| 332 permission, kPermissionsPromptIgnoredPriorIgnoreCountPrefix, | 333 permission, kPermissionsPromptIgnoredPriorIgnoreCountPrefix, |
| 333 PermissionDecisionAutoBlocker::GetIgnoreCount(requesting_origin, | 334 autoblocker->GetIgnoreCount(requesting_origin, permission)); |
| 334 permission, profile)); | |
| 335 | 335 |
| 336 // RecordPermission* methods need to be called before RecordIgnore in the | 336 // RecordPermission* methods need to be called before RecordIgnore in the |
| 337 // blocker because they record the number of prior ignore and dismiss values, | 337 // blocker because they record the number of prior ignore and dismiss values, |
| 338 // and we don't want to include the current ignore. | 338 // and we don't want to include the current ignore. |
| 339 PermissionDecisionAutoBlocker::RecordIgnore(requesting_origin, permission, | 339 autoblocker->RecordIgnore(requesting_origin, permission); |
| 340 profile); | |
| 341 } | 340 } |
| 342 | 341 |
| 343 void PermissionUmaUtil::PermissionRevoked(PermissionType permission, | 342 void PermissionUmaUtil::PermissionRevoked(PermissionType permission, |
| 344 PermissionSourceUI source_ui, | 343 PermissionSourceUI source_ui, |
| 345 const GURL& revoked_origin, | 344 const GURL& revoked_origin, |
| 346 Profile* profile) { | 345 Profile* profile) { |
| 347 // TODO(tsergeant): Expand metrics definitions for revocation to include all | 346 // TODO(tsergeant): Expand metrics definitions for revocation to include all |
| 348 // permissions. | 347 // permissions. |
| 349 if (permission == PermissionType::NOTIFICATIONS || | 348 if (permission == PermissionType::NOTIFICATIONS || |
| 350 permission == PermissionType::GEOLOCATION || | 349 permission == PermissionType::GEOLOCATION || |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 } | 620 } |
| 622 | 621 |
| 623 void PermissionUmaUtil::RecordPermissionAction( | 622 void PermissionUmaUtil::RecordPermissionAction( |
| 624 PermissionType permission, | 623 PermissionType permission, |
| 625 PermissionAction action, | 624 PermissionAction action, |
| 626 PermissionSourceUI source_ui, | 625 PermissionSourceUI source_ui, |
| 627 PermissionRequestGestureType gesture_type, | 626 PermissionRequestGestureType gesture_type, |
| 628 const GURL& requesting_origin, | 627 const GURL& requesting_origin, |
| 629 Profile* profile) { | 628 Profile* profile) { |
| 630 if (IsOptedIntoPermissionActionReporting(profile)) { | 629 if (IsOptedIntoPermissionActionReporting(profile)) { |
| 630 PermissionDecisionAutoBlocker* autoblocker = |
| 631 PermissionDecisionAutoBlocker::GetForProfile(profile); |
| 631 // TODO(kcarattini): Pass in the actual persist decision when it becomes | 632 // TODO(kcarattini): Pass in the actual persist decision when it becomes |
| 632 // available. | 633 // available. |
| 633 PermissionReportInfo report_info(requesting_origin, permission, action, | 634 PermissionReportInfo report_info( |
| 634 source_ui, gesture_type, PermissionPersistDecision::UNSPECIFIED, | 635 requesting_origin, permission, action, source_ui, gesture_type, |
| 635 PermissionDecisionAutoBlocker::GetDismissCount( | 636 PermissionPersistDecision::UNSPECIFIED, |
| 636 requesting_origin, permission, profile), | 637 autoblocker->GetDismissCount(requesting_origin, permission), |
| 637 PermissionDecisionAutoBlocker::GetIgnoreCount( | 638 autoblocker->GetIgnoreCount(requesting_origin, permission)); |
| 638 requesting_origin, permission, profile)); | |
| 639 g_browser_process->safe_browsing_service() | 639 g_browser_process->safe_browsing_service() |
| 640 ->ui_manager()->ReportPermissionAction(report_info); | 640 ->ui_manager()->ReportPermissionAction(report_info); |
| 641 } | 641 } |
| 642 | 642 |
| 643 bool secure_origin = content::IsOriginSecure(requesting_origin); | 643 bool secure_origin = content::IsOriginSecure(requesting_origin); |
| 644 | 644 |
| 645 switch (permission) { | 645 switch (permission) { |
| 646 case PermissionType::GEOLOCATION: | 646 case PermissionType::GEOLOCATION: |
| 647 PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.Geolocation", | 647 PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.Geolocation", |
| 648 "Permissions.Action.SecureOrigin.Geolocation", | 648 "Permissions.Action.SecureOrigin.Geolocation", |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 716 if (!deprecated_metric.empty() && rappor_service) { | 716 if (!deprecated_metric.empty() && rappor_service) { |
| 717 rappor::SampleDomainAndRegistryFromGURL(rappor_service, deprecated_metric, | 717 rappor::SampleDomainAndRegistryFromGURL(rappor_service, deprecated_metric, |
| 718 requesting_origin); | 718 requesting_origin); |
| 719 | 719 |
| 720 std::string rappor_metric = deprecated_metric + "2"; | 720 std::string rappor_metric = deprecated_metric + "2"; |
| 721 rappor_service->RecordSampleString( | 721 rappor_service->RecordSampleString( |
| 722 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, | 722 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, |
| 723 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); | 723 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); |
| 724 } | 724 } |
| 725 } | 725 } |
| OLD | NEW |