Index: net/reporting/reporting_context.cc |
diff --git a/net/reporting/reporting_context.cc b/net/reporting/reporting_context.cc |
index c16604618f79b3fedeeacaf554d166fe2e4d7f7e..1dd255bcb1b8759b97bfc6a9be75fc2ebcd1d3ce 100644 |
--- a/net/reporting/reporting_context.cc |
+++ b/net/reporting/reporting_context.cc |
@@ -21,6 +21,7 @@ |
#include "net/reporting/reporting_endpoint_manager.h" |
#include "net/reporting/reporting_garbage_collector.h" |
#include "net/reporting/reporting_observer.h" |
+#include "net/reporting/reporting_persister.h" |
#include "net/reporting/reporting_policy.h" |
namespace net { |
@@ -54,6 +55,15 @@ std::unique_ptr<ReportingContext> ReportingContext::Create( |
ReportingContext::~ReportingContext() {} |
+void ReportingContext::Initialize() { |
+ DCHECK(!initialized_); |
+ |
+ persister_->Initialize(); |
+ garbage_collector_->Initialize(); |
+ |
+ initialized_ = true; |
+} |
+ |
void ReportingContext::AddObserver(ReportingObserver* observer) { |
DCHECK(!observers_.HasObserver(observer)); |
observers_.AddObserver(observer); |
@@ -65,6 +75,9 @@ void ReportingContext::RemoveObserver(ReportingObserver* observer) { |
} |
void ReportingContext::NotifyCacheUpdated() { |
+ if (!initialized_) |
+ return; |
+ |
for (auto& observer : observers_) |
observer.OnCacheUpdated(); |
} |
@@ -79,9 +92,11 @@ ReportingContext::ReportingContext(const ReportingPolicy& policy, |
clock_(std::move(clock)), |
tick_clock_(std::move(tick_clock)), |
uploader_(std::move(uploader)), |
+ initialized_(false), |
cache_(base::MakeUnique<ReportingCache>(this)), |
endpoint_manager_(base::MakeUnique<ReportingEndpointManager>(this)), |
delivery_agent_(base::MakeUnique<ReportingDeliveryAgent>(this)), |
+ persister_(ReportingPersister::Create(this)), |
garbage_collector_(ReportingGarbageCollector::Create(this)) {} |
} // namespace net |