Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2035)

Unified Diff: chrome/browser/permissions/permission_uma_util.cc

Issue 2047253002: Add hooks to permission layer for permission action reporting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission-reporter-implementation
Patch Set: Add guard to permission reporting Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
}
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/ping_manager.h » ('j') | chrome/browser/safe_browsing/ping_manager.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698