Index: components/domain_reliability/uploader.cc |
diff --git a/components/domain_reliability/uploader.cc b/components/domain_reliability/uploader.cc |
index a3fb91d4620f3d059ab29dfb9ef1a82b3bf4517c..e03dac68ddcda0969a01ba6dee30c440e74855c3 100644 |
--- a/components/domain_reliability/uploader.cc |
+++ b/components/domain_reliability/uploader.cc |
@@ -59,9 +59,12 @@ class DomainReliabilityUploaderImpl |
net::URLRequestContextGetter>& url_request_context_getter) |
: time_(time), |
url_request_context_getter_(url_request_context_getter), |
- discard_uploads_(true) {} |
+ discard_uploads_(true), |
+ shutdown_(false) {} |
- ~DomainReliabilityUploaderImpl() override {} |
+ ~DomainReliabilityUploaderImpl() override { |
+ DCHECK(shutdown_); |
+ } |
// DomainReliabilityUploader implementation: |
void UploadReport( |
@@ -72,7 +75,7 @@ class DomainReliabilityUploaderImpl |
VLOG(1) << "Uploading report to " << upload_url; |
VLOG(2) << "Report JSON: " << report_json; |
- if (discard_uploads_) { |
+ if (discard_uploads_ || shutdown_) { |
mmenke
2016/09/27 16:56:15
Test coverage for this?
|
VLOG(1) << "Discarding report instead of uploading."; |
UploadResult result; |
result.status = UploadResult::SUCCESS; |
@@ -103,6 +106,12 @@ class DomainReliabilityUploaderImpl |
VLOG(1) << "Setting discard_uploads to " << discard_uploads; |
} |
+ void Shutdown() override { |
+ DCHECK(!shutdown_); |
+ shutdown_ = true; |
+ upload_callbacks_.clear(); |
+ } |
+ |
// net::URLFetcherDelegate implementation: |
void OnURLFetchComplete(const net::URLFetcher* fetcher) override { |
DCHECK(fetcher); |
@@ -153,6 +162,7 @@ class DomainReliabilityUploaderImpl |
std::pair<std::unique_ptr<net::URLFetcher>, UploadCallback>> |
upload_callbacks_; |
bool discard_uploads_; |
+ bool shutdown_; |
}; |
} // namespace |
@@ -179,4 +189,6 @@ int DomainReliabilityUploader::GetURLRequestUploadDepth( |
return data->depth(); |
} |
+void DomainReliabilityUploader::Shutdown() {} |
+ |
} // namespace domain_reliability |