Index: components/autofill/browser/autocheckout/whitelist_manager.cc |
diff --git a/components/autofill/browser/autocheckout/whitelist_manager.cc b/components/autofill/browser/autocheckout/whitelist_manager.cc |
index aeb60f113393bfbe12ee93af31708c6632f2588a..85db78083b372d1af870d58bd736d6425583877c 100644 |
--- a/components/autofill/browser/autocheckout/whitelist_manager.cc |
+++ b/components/autofill/browser/autocheckout/whitelist_manager.cc |
@@ -74,9 +74,15 @@ void WhitelistManager::StartDownloadTimer(size_t interval_seconds) { |
&WhitelistManager::TriggerDownload); |
} |
+const AutofillMetrics& WhitelistManager::GetMetricLogger() const { |
+ return metrics_logger_; |
+} |
+ |
void WhitelistManager::TriggerDownload() { |
callback_is_pending_ = true; |
+ request_started_timestamp_ = base::Time::Now(); |
+ |
request_.reset(net::URLFetcher::Create( |
0, GURL(kWhitelistUrl), net::URLFetcher::GET, this)); |
request_->SetRequestContext(context_getter_); |
@@ -98,12 +104,20 @@ void WhitelistManager::OnURLFetchComplete( |
scoped_ptr<net::URLFetcher> old_request = request_.Pass(); |
DCHECK_EQ(source, old_request.get()); |
+ AutofillMetrics::AutocheckoutWhitelistDownloadStatus status; |
+ base::TimeDelta duration = base::Time::Now() - request_started_timestamp_; |
+ |
if (source->GetResponseCode() == net::HTTP_OK) { |
std::string data; |
source->GetResponseAsString(&data); |
BuildWhitelist(data); |
+ status = AutofillMetrics::AUTOCHECKOUT_WHITELIST_DOWNLOAD_SUCCEEDED; |
+ } else { |
+ status = AutofillMetrics::AUTOCHECKOUT_WHITELIST_DOWNLOAD_FAILED; |
} |
+ GetMetricLogger().LogAutocheckoutWhitelistDownloadDuration(duration, status); |
+ |
ScheduleDownload(kDownloadIntervalSeconds); |
} |