Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Unified Diff: components/precache/core/precache_fetcher.cc

Issue 2711473006: Add Precache.Fetch.MinWeight UMA. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/precache/core/precache_fetcher.cc
diff --git a/components/precache/core/precache_fetcher.cc b/components/precache/core/precache_fetcher.cc
index 0bc2e1b2b40cb1e2c17a5bfdf84000c00aec1a08..e13d85649ca576239dc99d4707687f1d53b5e614 100644
--- a/components/precache/core/precache_fetcher.cc
+++ b/components/precache/core/precache_fetcher.cc
@@ -392,7 +392,8 @@ void PrecacheFetcher::Fetcher::OnURLFetchComplete(
void PrecacheFetcher::RecordCompletionStatistics(
const PrecacheUnfinishedWork& unfinished_work,
size_t remaining_manifest_urls_to_fetch,
- size_t remaining_resource_urls_to_fetch) {
+ size_t remaining_resource_urls_to_fetch,
+ base::Optional<double> min_weight_fetched) {
// These may be unset in tests.
if (!unfinished_work.has_start_time())
return;
@@ -419,6 +420,11 @@ void PrecacheFetcher::RecordCompletionStatistics(
UMA_HISTOGRAM_CUSTOM_COUNTS("Precache.Fetch.ResponseBytes.Network",
unfinished_work.network_bytes(), 1,
kMaxResponseBytes, 100);
+
+ if (min_weight_fetched.has_value()) {
+ UMA_HISTOGRAM_COUNTS_1000("Precache.Fetch.MinWeight",
+ min_weight_fetched.value() * 1000);
twifkak 2017/02/22 18:20:00 BTW, the bucket boundaries will look approximately
+ }
}
// static
@@ -561,12 +567,12 @@ void PrecacheFetcher::StartNextManifestFetches() {
}
}
-void PrecacheFetcher::NotifyDone(
- size_t remaining_manifest_urls_to_fetch,
- size_t remaining_resource_urls_to_fetch) {
- RecordCompletionStatistics(*unfinished_work_,
- remaining_manifest_urls_to_fetch,
- remaining_resource_urls_to_fetch);
+void PrecacheFetcher::NotifyDone(size_t remaining_manifest_urls_to_fetch,
+ size_t remaining_resource_urls_to_fetch,
+ base::Optional<double> min_weight_fetched) {
+ RecordCompletionStatistics(
+ *unfinished_work_, remaining_manifest_urls_to_fetch,
+ remaining_resource_urls_to_fetch, min_weight_fetched);
precache_delegate_->OnDone();
}
@@ -578,8 +584,13 @@ void PrecacheFetcher::StartNextFetch() {
unfinished_work_->config_settings().max_bytes_total()) ||
quota_.remaining() == 0) {
pool_.DeleteAll();
+ base::Optional<double> min_weight;
+ if (unfinished_work_->config_settings().global_ranking() &&
+ !resources_to_fetch_.empty())
jamartin 2017/02/22 22:54:07 If resources_to_fetch_.empty(), shouldn't you repo
twifkak 2017/02/23 23:28:41 Yes. This is a bit of an edge case, I think. If th
+ min_weight.emplace(resources_to_fetch_.front().weight);
NotifyDone(top_hosts_to_fetch_.size() + top_hosts_fetching_.size(),
- resources_to_fetch_.size() + resources_fetching_.size());
+ resources_to_fetch_.size() + resources_fetching_.size(),
+ min_weight);
jamartin 2017/02/22 22:54:07 I wonder if we may want to report also the rank di
twifkak 2017/02/23 23:28:41 The problem is that rank 23 for host A may mean so
return;
}
@@ -588,7 +599,10 @@ void PrecacheFetcher::StartNextFetch() {
if (top_hosts_to_fetch_.empty() && resources_to_fetch_.empty() &&
pool_.IsEmpty()) {
// There are no more URLs to fetch, so end the precache cycle.
- NotifyDone(0, 0);
+ base::Optional<double> min_weight;
+ if (unfinished_work_->config_settings().global_ranking())
+ min_weight.emplace(0);
jamartin 2017/02/22 22:54:07 (nit/opt) I prefer min_weight = 0.
twifkak 2017/02/23 23:28:42 Me too. Somehow I missed operator= when scanning t
+ NotifyDone(0, 0, min_weight);
// OnDone may have deleted this PrecacheFetcher, so don't do anything after
// it is called.
}
@@ -660,7 +674,7 @@ void PrecacheFetcher::OnManifestInfoRetrieved(
// is invalid.
top_hosts_to_fetch_.clear();
unfinished_work_->set_num_manifest_urls(manifests_info.size());
- NotifyDone(manifests_info.size(), resources_to_rank_.size());
+ NotifyDone(manifests_info.size(), resources_to_rank_.size(), base::nullopt);
return;
}

Powered by Google App Engine
This is Rietveld 408576698