Index: chrome/common/variations/variations_util.cc |
diff --git a/chrome/common/variations/variations_util.cc b/chrome/common/variations/variations_util.cc |
index 35b5bfd0d8053e5547fe4773808d6a738c6d913e..ff7bc5d6cd0dee40dd8ccb095dd83f9d0d7f926d 100644 |
--- a/chrome/common/variations/variations_util.cc |
+++ b/chrome/common/variations/variations_util.cc |
@@ -7,9 +7,11 @@ |
#include <string> |
#include <vector> |
+#include "base/metrics/field_trial.h" |
#include "base/strings/string_split.h" |
#include "chrome/common/child_process_logging.h" |
#include "chrome/common/crash_keys.h" |
+#include "chrome/common/variations/fieldtrial_testing_config.h" |
#include "components/variations/active_field_trials.h" |
#include "components/variations/variations_associated_data.h" |
#include "net/base/escape.h" |
@@ -63,4 +65,25 @@ bool AssociateParamsFromString(const std::string& varations_string) { |
return true; |
} |
+void AssociateParamsFromFieldTrialConfig( |
+ const FieldTrialTestingConfig& config) { |
+ for (size_t i = 0; i < config.groups_size; ++i) { |
+ const FieldTrialTestingGroup& group = config.groups[i]; |
+ if (group.params_size != 0) { |
+ std::map<std::string, std::string> params; |
+ for (size_t j = 0; j < group.params_size; ++j) { |
+ const FieldTrialGroupParams& param = group.params[j]; |
+ params[param.key] = param.value; |
+ } |
+ variations::AssociateVariationParams(group.study, group.group_name, |
+ params); |
+ } |
+ base::FieldTrialList::CreateFieldTrial(group.study, group.group_name); |
+ } |
+} |
+ |
+void AssociateDefaultFieldTrialConfig() { |
+ AssociateParamsFromFieldTrialConfig(kFieldTrialConfig); |
+} |
+ |
} // namespace chrome_variations |