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

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

Issue 2711473006: Add Precache.Fetch.MinWeight UMA. (Closed)
Patch Set: Comment clarifications. 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 1e32f6b4ea06b46f9629b9472d6e87ac189905f4..bab9bc580b1bc06ae111b212dc253cf0e62cdcf1 100644
--- a/components/precache/core/precache_fetcher.cc
+++ b/components/precache/core/precache_fetcher.cc
@@ -440,6 +440,11 @@ void PrecacheFetcher::RecordCompletionStatistics(
UMA_HISTOGRAM_CUSTOM_COUNTS("Precache.Fetch.ResponseBytes.Network",
unfinished_work.network_bytes(), 1,
kMaxResponseBytes, 100);
+
+ if (unfinished_work.has_min_weight_fetched()) {
+ UMA_HISTOGRAM_COUNTS_1000("Precache.Fetch.MinWeight",
+ unfinished_work.min_weight_fetched() * 1000);
+ }
}
// static
@@ -479,10 +484,8 @@ PrecacheFetcher::PrecacheFetcher(
// keeping track of the current resource index.
for (const auto& resource : unfinished_work->resource()) {
if (resource.has_url() && resource.has_top_host_name()) {
- // Weight doesn't matter, as the resources have already been sorted by
- // this point.
- resources_to_fetch_.emplace_back(GURL(resource.url()),
- resource.top_host_name(), 0);
+ resources_to_fetch_.emplace_back(
+ GURL(resource.url()), resource.top_host_name(), resource.weight());
}
}
unfinished_work_ = std::move(unfinished_work);
@@ -510,11 +513,13 @@ std::unique_ptr<PrecacheUnfinishedWork> PrecacheFetcher::CancelPrecaching() {
auto* new_resource = unfinished_work_->add_resource();
new_resource->set_url(resource.url.spec());
new_resource->set_top_host_name(resource.referrer);
+ new_resource->set_weight(resource.weight);
}
for (const auto& resource : resources_to_fetch_) {
auto* new_resource = unfinished_work_->add_resource();
new_resource->set_url(resource.url.spec());
new_resource->set_top_host_name(resource.referrer);
+ new_resource->set_weight(resource.weight);
}
top_hosts_fetching_.clear();
top_hosts_to_fetch_.clear();
@@ -582,9 +587,8 @@ void PrecacheFetcher::StartNextManifestFetches() {
}
}
-void PrecacheFetcher::NotifyDone(
- size_t remaining_manifest_urls_to_fetch,
- size_t remaining_resource_urls_to_fetch) {
+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);
@@ -839,9 +843,19 @@ void PrecacheFetcher::OnResourceFetchComplete(const Fetcher& source) {
source.url(), source.referrer(), base::Time::Now(),
source.was_cached(), source.response_bytes()));
- resources_fetching_.remove_if([&source](const ResourceInfo& resource) {
- return resource.url == source.url();
- });
+ auto resource =
+ std::find_if(resources_fetching_.begin(), resources_fetching_.end(),
+ [&source](const ResourceInfo& resource) {
+ return resource.url == source.url();
+ });
+ if (resource != resources_fetching_.end()) {
+ if (unfinished_work_->config_settings().global_ranking() &&
+ (!unfinished_work_->has_min_weight_fetched() ||
+ resource->weight < unfinished_work_->min_weight_fetched()))
+ unfinished_work_->set_min_weight_fetched(resource->weight);
+
+ resources_fetching_.erase(resource);
+ }
pool_.Delete(source);

Powered by Google App Engine
This is Rietveld 408576698