| 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;
|
|
|