Introduce CertificateReportingService class to handle certificate reports.
This class is eventually going to handle uploading and retrying of certificate
reports.
In this CL, it contains three sub classes:
Report: A struct that represents the report to be sent.
BoundedReportList: A container that contains a bounded number of certificate
reports, ordered by report creation date. First report is the newest, last
report is the oldest.
EventObserver: A class to observe events generated by the service and reporter.
Reporter: The class that contains the actual retry logic.
CertificateReportingService is not yet wired to any certificate reporting path
and does not contain reporting logic. Those will be added in follow up CLs along
with browser tests.
BUG=554323
Review-Url: https://codereview.chromium.org/2483003003
Cr-Commit-Position: refs/heads/master@{#434540}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index b4fe367..8d49c794 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1967,6 +1967,8 @@
sources += [
"loader/data_reduction_proxy_resource_throttle_android.cc",
"loader/data_reduction_proxy_resource_throttle_android.h",
+ "safe_browsing/certificate_reporting_service.cc",
+ "safe_browsing/certificate_reporting_service.h",
"safe_browsing/permission_reporter.cc",
"safe_browsing/permission_reporter.h",
"safe_browsing/ping_manager.cc",