Chromium Code Reviews| Index: chrome/browser/permissions/permission_uma_util.cc |
| diff --git a/chrome/browser/permissions/permission_uma_util.cc b/chrome/browser/permissions/permission_uma_util.cc |
| index efbdf5f04b6c65ff92efbb88a5fa6d95f2c44fb1..ee9e68071138ce3a2d7685a6ce369b5566bf52bb 100644 |
| --- a/chrome/browser/permissions/permission_uma_util.cc |
| +++ b/chrome/browser/permissions/permission_uma_util.cc |
| @@ -6,13 +6,18 @@ |
| #include <utility> |
| +#include "base/command_line.h" |
| #include "base/metrics/histogram_macros.h" |
| #include "base/strings/stringprintf.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/permissions/permission_manager.h" |
| #include "chrome/browser/permissions/permission_util.h" |
| #include "chrome/browser/profiles/profile.h" |
| +#include "chrome/browser/safe_browsing/permission_reporter.h" |
| +#include "chrome/browser/safe_browsing/ping_manager.h" |
| +#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| #include "chrome/browser/ui/website_settings/permission_bubble_request.h" |
| +#include "chrome/common/chrome_switches.h" |
| #include "components/rappor/rappor_service.h" |
| #include "components/rappor/rappor_utils.h" |
| #include "content/public/browser/permission_type.h" |
| @@ -252,6 +257,22 @@ void RecordPermissionRequest(PermissionType permission, |
| } |
| } |
| +void ReportPermissionAction(const GURL& origin, |
| + PermissionType permission, |
| + PermissionAction action) { |
| + // Do not report permission action when the permission action reporting |
| + // flag is disabled. |
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kDisablePermissionActionReporting)) { |
| + return; |
| + } |
|
raymes
2016/06/14 02:47:11
We should only send a report if the enabled flag i
stefanocs
2016/06/14 03:37:37
Done.
|
| + safe_browsing::PermissionReporter* permission_reporter = |
| + g_browser_process->safe_browsing_service() |
| + ->ping_manager() |
| + ->permission_reporter(); |
| + permission_reporter->SendReport(origin, permission, action); |
| +} |
| + |
| } // anonymous namespace |
| const char PermissionUmaUtil::kPermissionsPromptShown[] = |
| @@ -282,21 +303,25 @@ void PermissionUmaUtil::PermissionRequested(PermissionType permission, |
| void PermissionUmaUtil::PermissionGranted(PermissionType permission, |
| const GURL& requesting_origin) { |
| RecordPermissionAction(permission, GRANTED, requesting_origin); |
| + ReportPermissionAction(requesting_origin, permission, GRANTED); |
| } |
| void PermissionUmaUtil::PermissionDenied(PermissionType permission, |
| const GURL& requesting_origin) { |
| RecordPermissionAction(permission, DENIED, requesting_origin); |
| + ReportPermissionAction(requesting_origin, permission, DENIED); |
| } |
| void PermissionUmaUtil::PermissionDismissed(PermissionType permission, |
| const GURL& requesting_origin) { |
| RecordPermissionAction(permission, DISMISSED, requesting_origin); |
| + ReportPermissionAction(requesting_origin, permission, DISMISSED); |
| } |
| void PermissionUmaUtil::PermissionIgnored(PermissionType permission, |
| const GURL& requesting_origin) { |
| RecordPermissionAction(permission, IGNORED, requesting_origin); |
| + ReportPermissionAction(requesting_origin, permission, IGNORED); |
| } |
| void PermissionUmaUtil::PermissionRevoked(PermissionType permission, |
| @@ -308,6 +333,7 @@ void PermissionUmaUtil::PermissionRevoked(PermissionType permission, |
| permission == PermissionType::AUDIO_CAPTURE || |
| permission == PermissionType::VIDEO_CAPTURE) { |
| RecordPermissionAction(permission, REVOKED, revoked_origin); |
| + ReportPermissionAction(revoked_origin, permission, REVOKED); |
| } |
| } |