Index: components/domain_reliability/monitor.cc |
diff --git a/components/domain_reliability/monitor.cc b/components/domain_reliability/monitor.cc |
index d09aa217f610c8cd936b604df8dd8bb221988161..410121329a07ae3829458034c93dec59358e2721 100644 |
--- a/components/domain_reliability/monitor.cc |
+++ b/components/domain_reliability/monitor.cc |
@@ -68,7 +68,9 @@ DomainReliabilityMonitor::DomainReliabilityMonitor( |
DomainReliabilityScheduler::Params::GetFromFieldTrialsOrDefaults()), |
dispatcher_(time_.get()), |
uploader_( |
- DomainReliabilityUploader::Create(url_request_context_getter_)) { |
+ DomainReliabilityUploader::Create(url_request_context_getter_)), |
+ was_cleared_(false), |
+ cleared_mode_(MAX_CLEAR_MODE) { |
DCHECK(OnIOThread()); |
} |
@@ -87,13 +89,15 @@ DomainReliabilityMonitor::DomainReliabilityMonitor( |
DomainReliabilityScheduler::Params::GetFromFieldTrialsOrDefaults()), |
dispatcher_(time_.get()), |
uploader_( |
- DomainReliabilityUploader::Create(url_request_context_getter_)) { |
+ DomainReliabilityUploader::Create(url_request_context_getter_)), |
+ was_cleared_(false), |
+ cleared_mode_(MAX_CLEAR_MODE) { |
DCHECK(OnIOThread()); |
} |
DomainReliabilityMonitor::~DomainReliabilityMonitor() { |
DCHECK(OnIOThread()); |
- STLDeleteContainerPairSecondPointers(contexts_.begin(), contexts_.end()); |
+ ClearContexts(); |
} |
void DomainReliabilityMonitor::AddBakedInConfigs() { |
@@ -131,6 +135,28 @@ void DomainReliabilityMonitor::OnCompleted(net::URLRequest* request, |
} |
} |
+void DomainReliabilityMonitor::ClearBrowsingData( |
+ DomainReliabilityClearMode mode) { |
+ DCHECK(OnIOThread()); |
+ |
+ was_cleared_ = true; |
+ cleared_mode_ = mode; |
+ |
+ switch (mode) { |
+ case CLEAR_BEACONS: { |
+ ContextMap::const_iterator it; |
+ for (it = contexts_.begin(); it != contexts_.end(); ++it) |
+ it->second->ClearBeacons(); |
+ break; |
+ }; |
+ case CLEAR_CONTEXTS: |
+ ClearContexts(); |
+ break; |
+ case MAX_CLEAR_MODE: |
+ NOTREACHED(); |
+ } |
+} |
+ |
DomainReliabilityContext* DomainReliabilityMonitor::AddContextForTesting( |
scoped_ptr<const DomainReliabilityConfig> config) { |
return AddContext(config.Pass()); |
@@ -179,6 +205,12 @@ DomainReliabilityContext* DomainReliabilityMonitor::AddContext( |
return map_it.first->second; |
} |
+void DomainReliabilityMonitor::ClearContexts() { |
+ STLDeleteContainerPairSecondPointers( |
+ contexts_.begin(), contexts_.end()); |
+ contexts_.clear(); |
+} |
+ |
void DomainReliabilityMonitor::OnRequestLegComplete( |
const RequestInfo& request) { |
int response_code; |