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 |