| Index: ios/chrome/browser/ios_chrome_main_parts.mm
|
| diff --git a/ios/chrome/browser/ios_chrome_main_parts.mm b/ios/chrome/browser/ios_chrome_main_parts.mm
|
| index 649a93bcd1d697bd14deca17c6eddb5424a96308..787ecba86401929b0867d5feb25314a875212333 100644
|
| --- a/ios/chrome/browser/ios_chrome_main_parts.mm
|
| +++ b/ios/chrome/browser/ios_chrome_main_parts.mm
|
| @@ -100,9 +100,9 @@ void IOSChromeMainParts::PreCreateThreads() {
|
| local_state_ = application_context_->GetLocalState();
|
| DCHECK(local_state_);
|
|
|
| - flags_ui::PrefServiceFlagsStorage flags_storage_(
|
| + flags_ui::PrefServiceFlagsStorage flags_storage(
|
| application_context_->GetLocalState());
|
| - ConvertFlagsToSwitches(&flags_storage_,
|
| + ConvertFlagsToSwitches(&flags_storage,
|
| base::CommandLine::ForCurrentProcess());
|
|
|
| // Initialize tracking synchronizer system.
|
| @@ -216,17 +216,26 @@ void IOSChromeMainParts::SetUpMetricsAndFieldTrials() {
|
| CHECK(result) << "Invalid --" << switches::kForceFieldTrials
|
| << " list specified.";
|
| }
|
| - if (command_line->HasSwitch(switches::kIOSForceVariationIds)) {
|
| - // Create default variation ids which will always be included in the
|
| - // X-Client-Data request header.
|
| - variations::VariationsHttpHeaderProvider* provider =
|
| - variations::VariationsHttpHeaderProvider::GetInstance();
|
| - bool result = provider->SetDefaultVariationIds(
|
| - command_line->GetSwitchValueASCII(switches::kIOSForceVariationIds));
|
| - CHECK(result) << "Invalid --" << switches::kIOSForceVariationIds
|
| - << " list specified.";
|
| - }
|
| +
|
| std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
|
| +
|
| + // Associate parameters chosen in about:flags and create trial/group for them.
|
| + flags_ui::PrefServiceFlagsStorage flags_storage(
|
| + application_context_->GetLocalState());
|
| + std::vector<std::string> variation_ids =
|
| + RegisterAllFeatureVariationParameters(&flags_storage, feature_list.get());
|
| +
|
| + variations::VariationsHttpHeaderProvider* http_header_provider =
|
| + variations::VariationsHttpHeaderProvider::GetInstance();
|
| + // Force the variation ids selected in chrome://flags and/or specified using
|
| + // the command-line flag.
|
| + bool result = http_header_provider->ForceVariationIds(
|
| + command_line->GetSwitchValueASCII(switches::kIOSForceVariationIds),
|
| + &variation_ids);
|
| + CHECK(result) << "Invalid list of variation ids specified (either in --"
|
| + << switches::kIOSForceVariationIds << " or in chrome://flags)";
|
| + metrics->AddSyntheticTrialObserver(http_header_provider);
|
| +
|
| feature_list->InitializeFromCommandLine(
|
| command_line->GetSwitchValueASCII(switches::kEnableIOSFeatures),
|
| command_line->GetSwitchValueASCII(switches::kDisableIOSFeatures));
|
|
|