| 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 10fb114e3f2b56042222a6a2d68b49580819cc21..ae3dd21d0e1c13ac2825d89a6b402f4e58d4e508 100644
|
| --- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
|
| +++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
|
| @@ -18,9 +18,11 @@
|
| #include "base/threading/thread_checker.h"
|
| #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"
|
| #include "chrome/browser/safe_browsing/incident_reporting/incident_report_uploader.h"
|
| #include "chrome/browser/safe_browsing/incident_reporting/last_download_finder.h"
|
| #include "content/public/browser/notification_observer.h"
|
| @@ -36,6 +38,7 @@ class TaskRunner;
|
| }
|
|
|
| namespace content {
|
| +class DownloadManager;
|
| class NotificationDetails;
|
| class NotificationSource;
|
| }
|
| @@ -46,6 +49,7 @@ class URLRequestContextGetter;
|
|
|
| namespace safe_browsing {
|
|
|
| +class ClientDownloadRequest;
|
| class ClientIncidentReport;
|
| class ClientIncidentReport_DownloadDetails;
|
| class ClientIncidentReport_EnvironmentData;
|
| @@ -90,6 +94,10 @@ class IncidentReportingService : public content::NotificationObserver {
|
| // Registers |callback| to be run after some delay following process launch.
|
| void RegisterDelayedAnalysisCallback(const DelayedAnalysisCallback& callback);
|
|
|
| + // Adds |download_manager| to the set monitored for client download request
|
| + // storage.
|
| + void AddDownloadManager(content::DownloadManager* download_manager);
|
| +
|
| protected:
|
| // A pointer to a function that populates a protobuf with environment data.
|
| typedef void (*CollectEnvironmentDataFn)(
|
| @@ -232,6 +240,10 @@ class IncidentReportingService : public content::NotificationObserver {
|
| IncidentReportUploader::Result result,
|
| scoped_ptr<ClientIncidentResponse> response);
|
|
|
| + // DownloadProtectionService::ClientDownloadRequestCallback implementation.
|
| + void OnClientDownloadRequest(content::DownloadItem* download,
|
| + const ClientDownloadRequest* request);
|
| +
|
| // content::NotificationObserver methods.
|
| virtual void Observe(int type,
|
| const content::NotificationSource& source,
|
| @@ -260,6 +272,11 @@ class IncidentReportingService : public content::NotificationObserver {
|
| // Registrar for observing profile lifecycle notifications.
|
| content::NotificationRegistrar notification_registrar_;
|
|
|
| + // A subscription for ClientDownloadRequests, used to persist them for later
|
| + // use.
|
| + DownloadProtectionService::ClientDownloadRequestSubscription
|
| + client_download_request_subscription_;
|
| +
|
| // True when the asynchronous environment collection task has been fired off
|
| // but has not yet completed.
|
| bool environment_collection_pending_;
|
| @@ -296,6 +313,8 @@ class IncidentReportingService : public content::NotificationObserver {
|
| // Callbacks registered for performing delayed analysis.
|
| DelayedCallbackRunner delayed_analysis_callbacks_;
|
|
|
| + DownloadMetadataManager download_metadata_manager_;
|
| +
|
| // The collection of uploads in progress.
|
| ScopedVector<UploadContext> uploads_;
|
|
|
|
|