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 5a7f051d528cc41134ff38794a673f3b1577ab33..4ab6a118bfdebd6563a14d84422f3ee6c4a63ff0 100644 |
--- a/ios/chrome/browser/ios_chrome_main_parts.mm |
+++ b/ios/chrome/browser/ios_chrome_main_parts.mm |
@@ -114,7 +114,8 @@ void IOSChromeMainParts::PreCreateThreads() { |
// Now the command line has been mutated based on about:flags, we can setup |
// metrics and initialize field trials that are needed by IOSChromeIOThread's |
// initialization which happens in ApplicationContext:PreCreateThreads. |
- SetUpMetricsAndFieldTrials(); |
+ SetupFieldTrials(); |
+ SetupMetrics(); |
// Initialize FieldTrialSynchronizer system. |
field_trial_synchronizer_.reset(new ios::FieldTrialSynchronizer); |
@@ -192,7 +193,7 @@ void IOSChromeMainParts::PostDestroyThreads() { |
} |
// This will be called after the command-line has been mutated by about:flags |
-void IOSChromeMainParts::SetUpMetricsAndFieldTrials() { |
+void IOSChromeMainParts::SetupFieldTrials() { |
base::SetRecordActionTaskRunner( |
web::WebThread::GetTaskRunnerForThread(web::WebThread::UI)); |
@@ -225,11 +226,6 @@ void IOSChromeMainParts::SetUpMetricsAndFieldTrials() { |
std::vector<std::string> variation_ids = |
RegisterAllFeatureVariationParameters(&flags_storage, feature_list.get()); |
- // Must initialize metrics after about:flags have been converted into |
- // switches, but before field trials are set up (so that client ID is |
- // available for one-time randomized field trials). |
- metrics::MetricsService* metrics = application_context_->GetMetricsService(); |
- |
variations::VariationsHttpHeaderProvider* http_header_provider = |
variations::VariationsHttpHeaderProvider::GetInstance(); |
// Force the variation ids selected in chrome://flags and/or specified using |
@@ -239,7 +235,6 @@ void IOSChromeMainParts::SetUpMetricsAndFieldTrials() { |
&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), |
@@ -252,9 +247,13 @@ void IOSChromeMainParts::SetUpMetricsAndFieldTrials() { |
base::FeatureList::SetInstance(std::move(feature_list)); |
- SetupFieldTrials(parsed_command_line_, |
- base::Time::FromTimeT(metrics->GetInstallDate())); |
+ SetupIOSFieldTrials(); |
+} |
+void IOSChromeMainParts::SetupMetrics() { |
+ metrics::MetricsService* metrics = application_context_->GetMetricsService(); |
+ metrics->AddSyntheticTrialObserver( |
+ variations::VariationsHttpHeaderProvider::GetInstance()); |
// Now that field trials have been created, initializes metrics recording. |
metrics->InitializeMetricsRecordingState(); |
} |