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

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

Issue 2037523002: Select precache resources based on field trial experiment group (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 eb9aeba0a15504b0b22cd635a144f74766f478f2..7db10e6a8e10278cd046d8b1d56819a166654aef 100644
--- a/components/precache/core/precache_fetcher.cc
+++ b/components/precache/core/precache_fetcher.cc
@@ -306,12 +306,14 @@ PrecacheFetcher::PrecacheFetcher(
const GURL& config_url,
const std::string& manifest_url_prefix,
std::unique_ptr<PrecacheUnfinishedWork> unfinished_work,
+ uint32_t experiment_id,
PrecacheFetcher::PrecacheDelegate* precache_delegate)
: request_context_(request_context),
config_url_(config_url),
manifest_url_prefix_(manifest_url_prefix),
precache_delegate_(precache_delegate),
- pool_(kMaxParallelFetches) {
+ pool_(kMaxParallelFetches),
+ experiment_id_(experiment_id) {
DCHECK(request_context_.get()); // Request context must be non-NULL.
DCHECK(precache_delegate_); // Precache delegate must be non-NULL.
@@ -521,8 +523,12 @@ void PrecacheFetcher::OnManifestFetchComplete(const Fetcher& source) {
const int32_t len =
std::min(manifest.resource_size(),
unfinished_work_->config_settings().top_resources_count());
+ const uint64_t resource_bitset = manifest.experiments()
+ .resources_by_experiment_group()
+ .at(experiment_id_)
+ .bitset();
for (int i = 0; i < len; ++i) {
- if (manifest.resource(i).has_url())
+ if (((0x1 << i) & resource_bitset) && manifest.resource(i).has_url())
resource_urls_to_fetch_.push_back(GURL(manifest.resource(i).url()));
}
}

Powered by Google App Engine
This is Rietveld 408576698