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

Unified Diff: chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc

Issue 720163003: Safe Browsing: Add Omnibox Interaction Incident Reporter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove unnecessary namespaces Created 6 years 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
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/incident_reporting/omnibox_incident_handlers.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
index 0e3eb4431eea4e96f5d2a78383d5eb3c571fa2fd..00e17202b6d2e55917fc8c96bfb03ca28b88cedd 100644
--- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
@@ -28,6 +28,8 @@
#include "chrome/browser/safe_browsing/incident_reporting/blacklist_load_incident_handlers.h"
#include "chrome/browser/safe_browsing/incident_reporting/environment_data_collection.h"
#include "chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.h"
+#include "chrome/browser/safe_browsing/incident_reporting/omnibox_incident_handlers.h"
+#include "chrome/browser/safe_browsing/incident_reporting/omnibox_watcher.h"
#include "chrome/browser/safe_browsing/incident_reporting/preference_validation_delegate.h"
#include "chrome/browser/safe_browsing/incident_reporting/tracked_preference_incident_handlers.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
@@ -49,8 +51,9 @@ enum IncidentType {
TRACKED_PREFERENCE = 1,
BINARY_INTEGRITY = 2,
BLACKLIST_LOAD = 3,
+ OMNIBOX_INTERACTION = 4,
// Values for new incident types go here.
- NUM_INCIDENT_TYPES = 4
+ NUM_INCIDENT_TYPES = 5
};
// The action taken for an incident; used for user metrics (see
@@ -93,6 +96,8 @@ size_t CountIncidents(const ClientIncidentReport_IncidentData& incident) {
++result;
if (incident.has_blacklist_load())
++result;
+ if (incident.has_omnibox_interaction())
+ ++result;
// Add detection for new incident types here.
return result;
}
@@ -106,9 +111,11 @@ IncidentType GetIncidentType(
return BINARY_INTEGRITY;
if (incident_data.has_blacklist_load())
return BLACKLIST_LOAD;
+ if (incident_data.has_omnibox_interaction())
+ return OMNIBOX_INTERACTION;
// Add detection for new incident types here.
- COMPILE_ASSERT(BLACKLIST_LOAD + 1 == NUM_INCIDENT_TYPES,
+ COMPILE_ASSERT(OMNIBOX_INTERACTION + 1 == NUM_INCIDENT_TYPES,
add_support_for_new_types);
NOTREACHED();
return NUM_INCIDENT_TYPES;
@@ -155,9 +162,13 @@ PersistentIncidentState ComputeIncidentState(
state.key = GetBlacklistLoadIncidentKey(incident);
state.digest = GetBlacklistLoadIncidentDigest(incident);
break;
+ case OMNIBOX_INTERACTION:
+ state.key = GetOmniboxIncidentKey(incident);
+ state.digest = GetOmniboxIncidentDigest(incident);
+ break;
// Add handling for new incident types here.
default:
- COMPILE_ASSERT(BLACKLIST_LOAD + 1 == NUM_INCIDENT_TYPES,
+ COMPILE_ASSERT(OMNIBOX_INTERACTION + 1 == NUM_INCIDENT_TYPES,
add_support_for_new_types);
NOTREACHED();
break;
@@ -219,6 +230,9 @@ struct IncidentReportingService::ProfileContext {
// Will contain null values for pruned incidents.
ScopedVector<ClientIncidentReport_IncidentData> incidents;
+ // Watches for suspicious omnibox interactions on this profile.
+ scoped_ptr<OmniboxWatcher> omnibox_watcher;
+
// False until PROFILE_ADDED notification is received.
bool added;
@@ -423,6 +437,11 @@ void IncidentReportingService::OnProfileAdded(Profile* profile) {
// so that the service can determine whether or not it can evaluate a
// profile's preferences at the time of incident addition.
ProfileContext* context = GetOrCreateProfileContext(profile);
+ // Start watching the profile now if necessary.
+ if (!context->omnibox_watcher) {
+ context->omnibox_watcher.reset(
+ new OmniboxWatcher(profile, GetAddIncidentCallback(profile)));
+ }
context->added = true;
const bool safe_browsing_enabled =
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/incident_reporting/omnibox_incident_handlers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698