| 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 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 } else { | 171 } else { |
| 172 UMA_HISTOGRAM_ENUMERATION( | 172 UMA_HISTOGRAM_ENUMERATION( |
| 173 "Permissions.Requested.SameOrigin", | 173 "Permissions.Requested.SameOrigin", |
| 174 static_cast<base::HistogramBase::Sample>(permission), | 174 static_cast<base::HistogramBase::Sample>(permission), |
| 175 static_cast<base::HistogramBase::Sample>(PermissionType::NUM)); | 175 static_cast<base::HistogramBase::Sample>(PermissionType::NUM)); |
| 176 } | 176 } |
| 177 } | 177 } |
| 178 | 178 |
| 179 } // anonymous namespace | 179 } // anonymous namespace |
| 180 | 180 |
| 181 // PermissionReportInfo ------------------------------------------------------- |
| 182 PermissionReportInfo::PermissionReportInfo( |
| 183 const GURL& origin, |
| 184 PermissionType permission, |
| 185 PermissionAction action, |
| 186 PermissionSourceUI source_ui, |
| 187 PermissionRequestGestureType gesture_type, |
| 188 PermissionPersistDecision persist_decision, |
| 189 int num_prior_dismissals, |
| 190 int num_prior_ignores) |
| 191 : origin(origin), permission(permission), action(action), |
| 192 source_ui(source_ui), gesture_type(gesture_type), |
| 193 persist_decision(persist_decision), |
| 194 num_prior_dismissals(num_prior_dismissals), |
| 195 num_prior_ignores(num_prior_ignores) {} |
| 196 |
| 197 PermissionReportInfo::PermissionReportInfo( |
| 198 const PermissionReportInfo& other) = default; |
| 199 |
| 200 // PermissionUmaUtil ---------------------------------------------------------- |
| 201 |
| 181 const char PermissionUmaUtil::kPermissionsPromptShown[] = | 202 const char PermissionUmaUtil::kPermissionsPromptShown[] = |
| 182 "Permissions.Prompt.Shown"; | 203 "Permissions.Prompt.Shown"; |
| 183 const char PermissionUmaUtil::kPermissionsPromptShownGesture[] = | 204 const char PermissionUmaUtil::kPermissionsPromptShownGesture[] = |
| 184 "Permissions.Prompt.Shown.Gesture"; | 205 "Permissions.Prompt.Shown.Gesture"; |
| 185 const char PermissionUmaUtil::kPermissionsPromptShownNoGesture[] = | 206 const char PermissionUmaUtil::kPermissionsPromptShownNoGesture[] = |
| 186 "Permissions.Prompt.Shown.NoGesture"; | 207 "Permissions.Prompt.Shown.NoGesture"; |
| 187 const char PermissionUmaUtil::kPermissionsPromptAccepted[] = | 208 const char PermissionUmaUtil::kPermissionsPromptAccepted[] = |
| 188 "Permissions.Prompt.Accepted"; | 209 "Permissions.Prompt.Accepted"; |
| 189 const char PermissionUmaUtil::kPermissionsPromptAcceptedGesture[] = | 210 const char PermissionUmaUtil::kPermissionsPromptAcceptedGesture[] = |
| 190 "Permissions.Prompt.Accepted.Gesture"; | 211 "Permissions.Prompt.Accepted.Gesture"; |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 } | 600 } |
| 580 | 601 |
| 581 void PermissionUmaUtil::RecordPermissionAction( | 602 void PermissionUmaUtil::RecordPermissionAction( |
| 582 PermissionType permission, | 603 PermissionType permission, |
| 583 PermissionAction action, | 604 PermissionAction action, |
| 584 PermissionSourceUI source_ui, | 605 PermissionSourceUI source_ui, |
| 585 PermissionRequestGestureType gesture_type, | 606 PermissionRequestGestureType gesture_type, |
| 586 const GURL& requesting_origin, | 607 const GURL& requesting_origin, |
| 587 Profile* profile) { | 608 Profile* profile) { |
| 588 if (IsOptedIntoPermissionActionReporting(profile)) { | 609 if (IsOptedIntoPermissionActionReporting(profile)) { |
| 610 // TODO(kcarattini): Pass in the actual persist decision when it becomes |
| 611 // available. |
| 612 PermissionReportInfo report_info(requesting_origin, permission, action, |
| 613 source_ui, gesture_type, PermissionPersistDecision::UNSPECIFIED, |
| 614 PermissionDecisionAutoBlocker::GetDismissCount( |
| 615 requesting_origin, permission, profile), |
| 616 PermissionDecisionAutoBlocker::GetIgnoreCount( |
| 617 requesting_origin, permission, profile)); |
| 589 g_browser_process->safe_browsing_service() | 618 g_browser_process->safe_browsing_service() |
| 590 ->ui_manager() | 619 ->ui_manager()->ReportPermissionAction(report_info); |
| 591 ->ReportPermissionAction(requesting_origin, permission, action, | |
| 592 source_ui, gesture_type, | |
| 593 PermissionDecisionAutoBlocker::GetDismissCount( | |
| 594 requesting_origin, permission, profile), | |
| 595 PermissionDecisionAutoBlocker::GetIgnoreCount( | |
| 596 requesting_origin, permission, profile)); | |
| 597 } | 620 } |
| 598 | 621 |
| 599 bool secure_origin = content::IsOriginSecure(requesting_origin); | 622 bool secure_origin = content::IsOriginSecure(requesting_origin); |
| 600 | 623 |
| 601 switch (permission) { | 624 switch (permission) { |
| 602 case PermissionType::GEOLOCATION: | 625 case PermissionType::GEOLOCATION: |
| 603 PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.Geolocation", | 626 PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.Geolocation", |
| 604 "Permissions.Action.SecureOrigin.Geolocation", | 627 "Permissions.Action.SecureOrigin.Geolocation", |
| 605 "Permissions.Action.InsecureOrigin.Geolocation", | 628 "Permissions.Action.InsecureOrigin.Geolocation", |
| 606 action); | 629 action); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 if (!deprecated_metric.empty() && rappor_service) { | 689 if (!deprecated_metric.empty() && rappor_service) { |
| 667 rappor::SampleDomainAndRegistryFromGURL(rappor_service, deprecated_metric, | 690 rappor::SampleDomainAndRegistryFromGURL(rappor_service, deprecated_metric, |
| 668 requesting_origin); | 691 requesting_origin); |
| 669 | 692 |
| 670 std::string rappor_metric = deprecated_metric + "2"; | 693 std::string rappor_metric = deprecated_metric + "2"; |
| 671 rappor_service->RecordSample( | 694 rappor_service->RecordSample( |
| 672 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, | 695 rappor_metric, rappor::LOW_FREQUENCY_ETLD_PLUS_ONE_RAPPOR_TYPE, |
| 673 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); | 696 rappor::GetDomainAndRegistrySampleFromGURL(requesting_origin)); |
| 674 } | 697 } |
| 675 } | 698 } |
| OLD | NEW |