| Index: chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
|
| diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
|
| index 1fac481b235621ffb0d58638d0bbe122f543729f..e638da6b837b44d16e35a1d7b40f8a2b5c78bf31 100644
|
| --- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
|
| +++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
|
| @@ -19,7 +19,6 @@
|
| #include "base/time/time.h"
|
| #include "base/timer/timer.h"
|
| #include "chrome/browser/safe_browsing/download_protection_service.h"
|
| -#include "chrome/browser/safe_browsing/incident_reporting/add_incident_callback.h"
|
| #include "chrome/browser/safe_browsing/incident_reporting/delayed_analysis_callback.h"
|
| #include "chrome/browser/safe_browsing/incident_reporting/delayed_callback_runner.h"
|
| #include "chrome/browser/safe_browsing/incident_reporting/download_metadata_manager.h"
|
| @@ -54,6 +53,8 @@ class ClientIncidentReport;
|
| class ClientIncidentReport_DownloadDetails;
|
| class ClientIncidentReport_EnvironmentData;
|
| class ClientIncidentReport_IncidentData;
|
| +class Incident;
|
| +class IncidentReceiver;
|
|
|
| // A class that manages the collection of incidents and submission of incident
|
| // reports to the safe browsing client-side detection service. The service
|
| @@ -77,17 +78,15 @@ class IncidentReportingService : public content::NotificationObserver {
|
| // dropped at destruction.
|
| ~IncidentReportingService() override;
|
|
|
| - // Returns a callback by which external components can add an incident to the
|
| - // service on behalf of |profile|. The callback may outlive the service, but
|
| - // will no longer have any effect after the service is deleted. The callback
|
| - // must not be run after |profile| has been destroyed.
|
| - AddIncidentCallback GetAddIncidentCallback(Profile* profile);
|
| + // Returns an object by which external components can add an incident to the
|
| + // service. The object may outlive the service, but will no longer have any
|
| + // effect after the service is deleted.
|
| + scoped_ptr<IncidentReceiver> GetIncidentReceiver();
|
|
|
| // Returns a preference validation delegate that adds incidents to the service
|
| // for validation failures in |profile|. The delegate may outlive the service,
|
| // but incidents reported by it will no longer have any effect after the
|
| - // service is deleted. The lifetime of the delegate should not extend beyond
|
| - // that of the profile it services.
|
| + // service is deleted.
|
| scoped_ptr<TrackedPreferenceValidationDelegate>
|
| CreatePreferenceValidationDelegate(Profile* profile);
|
|
|
| @@ -143,6 +142,7 @@ class IncidentReportingService : public content::NotificationObserver {
|
| private:
|
| struct ProfileContext;
|
| class UploadContext;
|
| + class Receiver;
|
|
|
| // A mapping of profiles to contexts holding state about received incidents.
|
| typedef std::map<Profile*, ProfileContext*> ProfileContextCollection;
|
| @@ -161,8 +161,7 @@ class IncidentReportingService : public content::NotificationObserver {
|
| // participating in extended safe browsing are preferred.
|
| Profile* FindEligibleProfile() const;
|
|
|
| - // Adds |incident_data| to the service. The incident_time_msec field is
|
| - // populated with the current time if the caller has not already done so.
|
| + // Adds |incident_data| relating to the optional |profile| to the service.
|
| void AddIncident(Profile* profile, scoped_ptr<Incident> incident);
|
|
|
| // Begins processing a report. If processing is already underway, ensures that
|
| @@ -321,7 +320,7 @@ class IncidentReportingService : public content::NotificationObserver {
|
| // Non-NULL while such a search is outstanding.
|
| scoped_ptr<LastDownloadFinder> last_download_finder_;
|
|
|
| - // A factory for handing out weak pointers for AddIncident callbacks.
|
| + // A factory for handing out weak pointers for IncidentReceiver objects.
|
| base::WeakPtrFactory<IncidentReportingService> receiver_weak_ptr_factory_;
|
|
|
| // A factory for handing out weak pointers for internal asynchronous tasks
|
|
|