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

Unified Diff: components/variations/net/variations_http_header_provider.cc

Issue 688973004: Plumbing for variations headers from synthetic field trials. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Expose another hashed API in variations_associated_data.h Created 6 years, 2 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/variations/net/variations_http_header_provider.cc
diff --git a/components/variations/net/variations_http_header_provider.cc b/components/variations/net/variations_http_header_provider.cc
index 1220fae1640fc55545dfd978226b677ab3ebb0f3..fa630cf78da685ffee277c10ead8e1001f2e8a1a 100644
--- a/components/variations/net/variations_http_header_provider.cc
+++ b/components/variations/net/variations_http_header_provider.cc
@@ -137,6 +137,20 @@ void VariationsHttpHeaderProvider::OnFieldTrialGroupFinalized(
UpdateVariationIDsHeaderValue();
}
+void VariationsHttpHeaderProvider::OnSyntheticTrialsChanged(
+ const std::vector<metrics::SyntheticTrialGroup>& groups) {
+ base::AutoLock scoped_lock(lock_);
+
+ synthetic_variation_ids_set_.clear();
+ for (const metrics::SyntheticTrialGroup& group : groups) {
+ const VariationID id =
+ GetGoogleVariationIDFromHashes(GOOGLE_WEB_PROPERTIES, group.id);
jwd 2014/10/31 18:50:26 Are there no plans to support triggering experimen
Alexei Svitkine (slow) 2014/10/31 18:51:06 Not currently. The goal is to enable analysis, not
+ if (id != EMPTY_ID)
+ synthetic_variation_ids_set_.insert(id);
+ }
+ UpdateVariationIDsHeaderValue();
+}
+
void VariationsHttpHeaderProvider::InitVariationIDsCacheIfNeeded() {
base::AutoLock scoped_lock(lock_);
if (variation_ids_cache_initialized_)
@@ -186,7 +200,8 @@ void VariationsHttpHeaderProvider::UpdateVariationIDsHeaderValue() {
variation_ids_header_.clear();
if (variation_ids_set_.empty() && default_variation_ids_set_.empty() &&
- variation_trigger_ids_set_.empty() && default_trigger_id_set_.empty()) {
+ variation_trigger_ids_set_.empty() && default_trigger_id_set_.empty() &&
+ synthetic_variation_ids_set_.empty()) {
return;
}
@@ -203,26 +218,20 @@ void VariationsHttpHeaderProvider::UpdateVariationIDsHeaderValue() {
// Merge the two sets of experiment ids.
std::set<VariationID> all_variation_ids_set = default_variation_ids_set_;
- for (std::set<VariationID>::const_iterator it = variation_ids_set_.begin();
- it != variation_ids_set_.end(); ++it) {
- all_variation_ids_set.insert(*it);
- }
- ClientVariations proto;
- for (std::set<VariationID>::const_iterator it = all_variation_ids_set.begin();
- it != all_variation_ids_set.end(); ++it) {
- proto.add_variation_id(*it);
- }
+ for (VariationID id : variation_ids_set_)
+ all_variation_ids_set.insert(id);
+ for (VariationID id : synthetic_variation_ids_set_)
+ all_variation_ids_set.insert(id);
std::set<VariationID> all_trigger_ids_set = default_trigger_id_set_;
- for (std::set<VariationID>::const_iterator it =
- variation_trigger_ids_set_.begin();
- it != variation_trigger_ids_set_.end(); ++it) {
- all_trigger_ids_set.insert(*it);
- }
- for (std::set<VariationID>::const_iterator it = all_trigger_ids_set.begin();
- it != all_trigger_ids_set.end(); ++it) {
- proto.add_trigger_variation_id(*it);
- }
+ for (VariationID id : variation_trigger_ids_set_)
+ all_trigger_ids_set.insert(id);
+
+ ClientVariations proto;
+ for (VariationID id : all_variation_ids_set)
+ proto.add_variation_id(id);
+ for (VariationID id : all_trigger_ids_set)
+ proto.add_trigger_variation_id(id);
std::string serialized;
proto.SerializeToString(&serialized);
« no previous file with comments | « components/variations/net/variations_http_header_provider.h ('k') | components/variations/variations_associated_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698