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

Side by Side Diff: chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h

Issue 1420053005: Move code in components/safe_browsing_db and chrome/browser/s_b/ under the safe_browsing namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@02_components_move
Patch Set: Bring back anon namespace. Remove safe_browsing:: wherever not needed. Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
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 #ifndef CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_INCIDENT_REPORTING_SERVI CE_H_ 5 #ifndef CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_INCIDENT_REPORTING_SERVI CE_H_
6 #define CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_INCIDENT_REPORTING_SERVI CE_H_ 6 #define CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_INCIDENT_REPORTING_SERVI CE_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 10 matching lines...) Expand all
21 #include "chrome/browser/safe_browsing/download_protection_service.h" 21 #include "chrome/browser/safe_browsing/download_protection_service.h"
22 #include "chrome/browser/safe_browsing/incident_reporting/delayed_analysis_callb ack.h" 22 #include "chrome/browser/safe_browsing/incident_reporting/delayed_analysis_callb ack.h"
23 #include "chrome/browser/safe_browsing/incident_reporting/delayed_callback_runne r.h" 23 #include "chrome/browser/safe_browsing/incident_reporting/delayed_callback_runne r.h"
24 #include "chrome/browser/safe_browsing/incident_reporting/download_metadata_mana ger.h" 24 #include "chrome/browser/safe_browsing/incident_reporting/download_metadata_mana ger.h"
25 #include "chrome/browser/safe_browsing/incident_reporting/incident_report_upload er.h" 25 #include "chrome/browser/safe_browsing/incident_reporting/incident_report_upload er.h"
26 #include "chrome/browser/safe_browsing/incident_reporting/last_download_finder.h " 26 #include "chrome/browser/safe_browsing/incident_reporting/last_download_finder.h "
27 #include "content/public/browser/notification_observer.h" 27 #include "content/public/browser/notification_observer.h"
28 #include "content/public/browser/notification_registrar.h" 28 #include "content/public/browser/notification_registrar.h"
29 29
30 class Profile; 30 class Profile;
31 class SafeBrowsingDatabaseManager;
32 class SafeBrowsingService;
33 class TrackedPreferenceValidationDelegate; 31 class TrackedPreferenceValidationDelegate;
34 32
35 namespace base { 33 namespace base {
36 class TaskRunner; 34 class TaskRunner;
37 } 35 }
38 36
39 namespace content { 37 namespace content {
40 class DownloadManager; 38 class DownloadManager;
41 class NotificationDetails; 39 class NotificationDetails;
42 class NotificationSource; 40 class NotificationSource;
43 } 41 }
44 42
45 namespace net { 43 namespace net {
46 class URLRequestContextGetter; 44 class URLRequestContextGetter;
47 } 45 }
48 46
49 namespace safe_browsing { 47 namespace safe_browsing {
50 48
51 class ClientDownloadRequest; 49 class ClientDownloadRequest;
52 class ClientIncidentReport; 50 class ClientIncidentReport;
53 class ClientIncidentReport_DownloadDetails; 51 class ClientIncidentReport_DownloadDetails;
54 class ClientIncidentReport_EnvironmentData; 52 class ClientIncidentReport_EnvironmentData;
55 class ClientIncidentReport_ExtensionData; 53 class ClientIncidentReport_ExtensionData;
56 class ClientIncidentReport_IncidentData; 54 class ClientIncidentReport_IncidentData;
57 class Incident; 55 class Incident;
58 class IncidentReceiver; 56 class IncidentReceiver;
57 class SafeBrowsingDatabaseManager;
58 class SafeBrowsingService;
59 59
60 // A class that manages the collection of incidents and submission of incident 60 // A class that manages the collection of incidents and submission of incident
61 // reports to the safe browsing client-side detection service. The service 61 // reports to the safe browsing client-side detection service. The service
62 // begins operation when an incident is reported via the AddIncident method. 62 // begins operation when an incident is reported via the AddIncident method.
63 // Incidents reported from a profile that is loading are held until the profile 63 // Incidents reported from a profile that is loading are held until the profile
64 // is fully created. Incidents originating from profiles that do not participate 64 // is fully created. Incidents originating from profiles that do not participate
65 // in safe browsing are dropped. Process-wide incidents are affiliated with a 65 // in safe browsing are dropped. Process-wide incidents are affiliated with a
66 // profile that participates in safe browsing when one becomes available. 66 // profile that participates in safe browsing when one becomes available.
67 // Following the addition of an incident that is not dropped, the service 67 // Following the addition of an incident that is not dropped, the service
68 // collects environmental data, finds the most recent binary download, and waits 68 // collects environmental data, finds the most recent binary download, and waits
69 // a bit. Additional incidents that arrive during this time are collated with 69 // a bit. Additional incidents that arrive during this time are collated with
70 // the initial incident. Finally, already-reported incidents are pruned and any 70 // the initial incident. Finally, already-reported incidents are pruned and any
71 // remaining are uploaded in an incident report. 71 // remaining are uploaded in an incident report.
72 class IncidentReportingService : public content::NotificationObserver { 72 class IncidentReportingService : public content::NotificationObserver {
73 public: 73 public:
74 IncidentReportingService(SafeBrowsingService* safe_browsing_service, 74 IncidentReportingService(
75 const scoped_refptr<net::URLRequestContextGetter>& 75 safe_browsing::SafeBrowsingService* safe_browsing_service,
Nathan Parker 2015/11/11 21:23:36 Can rm safe_browsing:: here and below.
vakh (old account. dont use) 2015/11/11 23:22:46 Done.
76 request_context_getter); 76 const scoped_refptr<net::URLRequestContextGetter>&
77 request_context_getter);
77 78
78 // All incident collection, data collection, and uploads in progress are 79 // All incident collection, data collection, and uploads in progress are
79 // dropped at destruction. 80 // dropped at destruction.
80 ~IncidentReportingService() override; 81 ~IncidentReportingService() override;
81 82
82 // Returns true if incident reporting is enabled for the given profile. 83 // Returns true if incident reporting is enabled for the given profile.
83 static bool IsEnabledForProfile(Profile* profile); 84 static bool IsEnabledForProfile(Profile* profile);
84 85
85 // Returns an object by which external components can add an incident to the 86 // Returns an object by which external components can add an incident to the
86 // service. The object may outlive the service, but will no longer have any 87 // service. The object may outlive the service, but will no longer have any
(...skipping 15 matching lines...) Expand all
102 void AddDownloadManager(content::DownloadManager* download_manager); 103 void AddDownloadManager(content::DownloadManager* download_manager);
103 104
104 protected: 105 protected:
105 // A pointer to a function that populates a protobuf with environment data. 106 // A pointer to a function that populates a protobuf with environment data.
106 typedef void (*CollectEnvironmentDataFn)( 107 typedef void (*CollectEnvironmentDataFn)(
107 ClientIncidentReport_EnvironmentData*); 108 ClientIncidentReport_EnvironmentData*);
108 109
109 // For testing so that the TaskRunner used for delayed analysis callbacks can 110 // For testing so that the TaskRunner used for delayed analysis callbacks can
110 // be specified. 111 // be specified.
111 IncidentReportingService( 112 IncidentReportingService(
112 SafeBrowsingService* safe_browsing_service, 113 safe_browsing::SafeBrowsingService* safe_browsing_service,
113 const scoped_refptr<net::URLRequestContextGetter>& request_context_getter, 114 const scoped_refptr<net::URLRequestContextGetter>& request_context_getter,
114 base::TimeDelta delayed_task_interval, 115 base::TimeDelta delayed_task_interval,
115 const scoped_refptr<base::TaskRunner>& delayed_task_runner); 116 const scoped_refptr<base::TaskRunner>& delayed_task_runner);
116 117
117 // Sets the function called by the service to collect environment data and the 118 // Sets the function called by the service to collect environment data and the
118 // task runner on which it is called. Used by unit tests to provide a fake 119 // task runner on which it is called. Used by unit tests to provide a fake
119 // environment data collector. 120 // environment data collector.
120 void SetCollectEnvironmentHook( 121 void SetCollectEnvironmentHook(
121 CollectEnvironmentDataFn collect_environment_data_hook, 122 CollectEnvironmentDataFn collect_environment_data_hook,
122 const scoped_refptr<base::TaskRunner>& task_runner); 123 const scoped_refptr<base::TaskRunner>& task_runner);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 263
263 // content::NotificationObserver methods. 264 // content::NotificationObserver methods.
264 void Observe(int type, 265 void Observe(int type,
265 const content::NotificationSource& source, 266 const content::NotificationSource& source,
266 const content::NotificationDetails& details) override; 267 const content::NotificationDetails& details) override;
267 268
268 base::ThreadChecker thread_checker_; 269 base::ThreadChecker thread_checker_;
269 270
270 // The safe browsing database manager, through which the whitelist killswitch 271 // The safe browsing database manager, through which the whitelist killswitch
271 // is checked. 272 // is checked.
272 scoped_refptr<SafeBrowsingDatabaseManager> database_manager_; 273 scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> database_manager_;
273 274
274 // Accessor for an URL context with which reports will be sent. 275 // Accessor for an URL context with which reports will be sent.
275 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; 276 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
276 277
277 // A pointer to a function that collects environment data. The function will 278 // A pointer to a function that collects environment data. The function will
278 // be run by |environment_collection_task_runner_|. This is ordinarily 279 // be run by |environment_collection_task_runner_|. This is ordinarily
279 // CollectEnvironmentData, but may be overridden by tests; see 280 // CollectEnvironmentData, but may be overridden by tests; see
280 // SetCollectEnvironmentHook. 281 // SetCollectEnvironmentHook.
281 CollectEnvironmentDataFn collect_environment_data_fn_; 282 CollectEnvironmentDataFn collect_environment_data_fn_;
282 283
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 // that are posted during normal processing (e.g., environment collection, 350 // that are posted during normal processing (e.g., environment collection,
350 // safe browsing database checks, and report uploads). 351 // safe browsing database checks, and report uploads).
351 base::WeakPtrFactory<IncidentReportingService> weak_ptr_factory_; 352 base::WeakPtrFactory<IncidentReportingService> weak_ptr_factory_;
352 353
353 DISALLOW_COPY_AND_ASSIGN(IncidentReportingService); 354 DISALLOW_COPY_AND_ASSIGN(IncidentReportingService);
354 }; 355 };
355 356
356 } // namespace safe_browsing 357 } // namespace safe_browsing
357 358
358 #endif // CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_INCIDENT_REPORTING_SE RVICE_H_ 359 #endif // CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_INCIDENT_REPORTING_SE RVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698