OLD | NEW |
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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 // Returns a preference validation delegate that adds incidents to the service | 91 // Returns a preference validation delegate that adds incidents to the service |
92 // for validation failures in |profile|. The delegate may outlive the service, | 92 // for validation failures in |profile|. The delegate may outlive the service, |
93 // but incidents reported by it will no longer have any effect after the | 93 // but incidents reported by it will no longer have any effect after the |
94 // service is deleted. | 94 // service is deleted. |
95 scoped_ptr<TrackedPreferenceValidationDelegate> | 95 scoped_ptr<TrackedPreferenceValidationDelegate> |
96 CreatePreferenceValidationDelegate(Profile* profile); | 96 CreatePreferenceValidationDelegate(Profile* profile); |
97 | 97 |
98 // Registers |callback| to be run after some delay following process launch. | 98 // Registers |callback| to be run after some delay following process launch. |
99 void RegisterDelayedAnalysisCallback(const DelayedAnalysisCallback& callback); | 99 void RegisterDelayedAnalysisCallback(const DelayedAnalysisCallback& callback); |
100 | 100 |
| 101 // Registers |callback| to be run after some delay following process launch if |
| 102 // a profile participating in extended reporting is found. |
| 103 void RegisterExtendedReportingOnlyDelayedAnalysisCallback( |
| 104 const DelayedAnalysisCallback& callback); |
| 105 |
101 // Adds |download_manager| to the set monitored for client download request | 106 // Adds |download_manager| to the set monitored for client download request |
102 // storage. | 107 // storage. |
103 void AddDownloadManager(content::DownloadManager* download_manager); | 108 void AddDownloadManager(content::DownloadManager* download_manager); |
104 | 109 |
105 protected: | 110 protected: |
106 // A pointer to a function that populates a protobuf with environment data. | 111 // A pointer to a function that populates a protobuf with environment data. |
107 typedef void (*CollectEnvironmentDataFn)( | 112 typedef void (*CollectEnvironmentDataFn)( |
108 ClientIncidentReport_EnvironmentData*); | 113 ClientIncidentReport_EnvironmentData*); |
109 | 114 |
110 // For testing so that the TaskRunner used for delayed analysis callbacks can | 115 // For testing so that the TaskRunner used for delayed analysis callbacks can |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 // The time at which download collection was initiated. | 331 // The time at which download collection was initiated. |
327 base::TimeTicks last_download_begin_; | 332 base::TimeTicks last_download_begin_; |
328 | 333 |
329 // Context data for all on-the-record profiles plus the process-wide (NULL) | 334 // Context data for all on-the-record profiles plus the process-wide (NULL) |
330 // context. | 335 // context. |
331 ProfileContextCollection profiles_; | 336 ProfileContextCollection profiles_; |
332 | 337 |
333 // Callbacks registered for performing delayed analysis. | 338 // Callbacks registered for performing delayed analysis. |
334 DelayedCallbackRunner delayed_analysis_callbacks_; | 339 DelayedCallbackRunner delayed_analysis_callbacks_; |
335 | 340 |
| 341 // Callbacks registered for performing delayed analysis that should only |
| 342 // be executed for safebrowsing extended reporting users. |
| 343 DelayedCallbackRunner extended_reporting_only_delayed_analysis_callbacks_; |
| 344 |
336 DownloadMetadataManager download_metadata_manager_; | 345 DownloadMetadataManager download_metadata_manager_; |
337 | 346 |
338 // The collection of uploads in progress. | 347 // The collection of uploads in progress. |
339 std::vector<scoped_ptr<UploadContext>> uploads_; | 348 std::vector<scoped_ptr<UploadContext>> uploads_; |
340 | 349 |
341 // An object that asynchronously searches for the most recent binary download. | 350 // An object that asynchronously searches for the most recent binary download. |
342 // Non-NULL while such a search is outstanding. | 351 // Non-NULL while such a search is outstanding. |
343 scoped_ptr<LastDownloadFinder> last_download_finder_; | 352 scoped_ptr<LastDownloadFinder> last_download_finder_; |
344 | 353 |
345 // True if IncidentReportingService is enabled at the process level, by a | 354 // True if IncidentReportingService is enabled at the process level, by a |
346 // field trial. | 355 // field trial. |
347 bool enabled_by_field_trial_; | 356 bool enabled_by_field_trial_; |
348 | 357 |
349 // A factory for handing out weak pointers for IncidentReceiver objects. | 358 // A factory for handing out weak pointers for IncidentReceiver objects. |
350 base::WeakPtrFactory<IncidentReportingService> receiver_weak_ptr_factory_; | 359 base::WeakPtrFactory<IncidentReportingService> receiver_weak_ptr_factory_; |
351 | 360 |
352 // A factory for handing out weak pointers for internal asynchronous tasks | 361 // A factory for handing out weak pointers for internal asynchronous tasks |
353 // that are posted during normal processing (e.g., environment collection, | 362 // that are posted during normal processing (e.g., environment collection, |
354 // safe browsing database checks, and report uploads). | 363 // safe browsing database checks, and report uploads). |
355 base::WeakPtrFactory<IncidentReportingService> weak_ptr_factory_; | 364 base::WeakPtrFactory<IncidentReportingService> weak_ptr_factory_; |
356 | 365 |
357 DISALLOW_COPY_AND_ASSIGN(IncidentReportingService); | 366 DISALLOW_COPY_AND_ASSIGN(IncidentReportingService); |
358 }; | 367 }; |
359 | 368 |
360 } // namespace safe_browsing | 369 } // namespace safe_browsing |
361 | 370 |
362 #endif // CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_INCIDENT_REPORTING_SE
RVICE_H_ | 371 #endif // CHROME_BROWSER_SAFE_BROWSING_INCIDENT_REPORTING_INCIDENT_REPORTING_SE
RVICE_H_ |
OLD | NEW |