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

Unified Diff: chrome/browser/chrome_browser_main.cc

Issue 2342993002: Rearrange SetupMetricsAndFieldTrials to SetupFieldTrials and SetupMetrics (Closed)
Patch Set: CR Feedback Created 4 years, 3 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
« no previous file with comments | « chrome/browser/chrome_browser_main.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chrome_browser_main.cc
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index e18055d89cb5c8bc20ce118d7a438a14a0bad959..ae2b74a779b20e593c5a69b271bf45957b70233a 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -792,8 +792,8 @@ ChromeBrowserMainParts::~ChromeBrowserMainParts() {
}
// This will be called after the command-line has been mutated by about:flags
-void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
- TRACE_EVENT0("startup", "ChromeBrowserMainParts::SetupMetricsAndFieldTrials");
+void ChromeBrowserMainParts::SetupFieldTrials() {
+ TRACE_EVENT0("startup", "ChromeBrowserMainParts::SetupFieldTrials");
// Initialize FieldTrialList to support FieldTrials that use one-time
// randomization.
@@ -842,11 +842,6 @@ void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
about_flags::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 = browser_process_->metrics_service();
-
variations::VariationsHttpHeaderProvider* http_header_provider =
variations::VariationsHttpHeaderProvider::GetInstance();
// Force the variation ids selected in chrome://flags and/or specified using
@@ -856,7 +851,6 @@ void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
&variation_ids);
CHECK(result) << "Invalid list of variation ids specified (either in --"
<< switches::kForceVariationIds << " or in chrome://flags)";
- metrics->AddSyntheticTrialObserver(http_header_provider);
feature_list->InitializeFromCommandLine(
command_line->GetSwitchValueASCII(switches::kEnableFeatures),
@@ -896,25 +890,6 @@ void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
// deleted after the Task is executed.
field_trial_synchronizer_ = new FieldTrialSynchronizer();
- // Now that field trials have been created, initializes metrics recording.
- metrics->InitializeMetricsRecordingState();
-
- const version_info::Channel channel = chrome::GetChannel();
-
- // Enable profiler instrumentation depending on the channel.
- switch (channel) {
- case version_info::Channel::UNKNOWN:
- case version_info::Channel::CANARY:
- tracked_objects::ScopedTracker::Enable();
- break;
-
- case version_info::Channel::DEV:
- case version_info::Channel::BETA:
- case version_info::Channel::STABLE:
- // Don't enable instrumentation.
- break;
- }
-
// Register a synthetic field trial for the sampling profiler configuration
// that was already chosen.
sampling_profiler_config_.RegisterSyntheticFieldTrial();
@@ -936,7 +911,30 @@ void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
#endif // defined(OS_WIN)
}
-// ChromeBrowserMainParts: |SetupMetricsAndFieldTrials()| related --------------
+void ChromeBrowserMainParts::SetupMetrics() {
+ TRACE_EVENT0("startup", "ChromeBrowserMainParts::SetupMetrics");
+ metrics::MetricsService* metrics = browser_process_->metrics_service();
+ metrics->AddSyntheticTrialObserver(
+ variations::VariationsHttpHeaderProvider::GetInstance());
+ // Now that field trials have been created, initializes metrics recording.
+ metrics->InitializeMetricsRecordingState();
+
+ const version_info::Channel channel = chrome::GetChannel();
+
+ // Enable profiler instrumentation depending on the channel.
+ switch (channel) {
+ case version_info::Channel::UNKNOWN:
+ case version_info::Channel::CANARY:
+ tracked_objects::ScopedTracker::Enable();
+ break;
+
+ case version_info::Channel::DEV:
+ case version_info::Channel::BETA:
+ case version_info::Channel::STABLE:
+ // Don't enable instrumentation.
+ break;
+ }
+}
void ChromeBrowserMainParts::StartMetricsRecording() {
TRACE_EVENT0("startup", "ChromeBrowserMainParts::StartMetricsRecording");
@@ -1320,16 +1318,17 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() {
#if defined(OS_CHROMEOS)
// Must be done after g_browser_process is constructed, before
- // SetupMetricsAndFieldTrials().
+ // SetupFieldTrials() and SetupMetrics().
chromeos::CrosSettings::Initialize();
#endif // defined(OS_CHROMEOS)
SetupOriginTrialsCommandLine();
- // Now the command line has been mutated based on about:flags, we can setup
- // metrics and initialize field trials. The field trials are needed by
+ // Now the command line has been mutated based on about:flags, we can
+ // initialize field trials and setup metrics. The field trials are needed by
// IOThread's initialization which happens in BrowserProcess:PreCreateThreads.
- SetupMetricsAndFieldTrials();
+ SetupFieldTrials();
+ SetupMetrics();
// ChromeOS needs ResourceBundle::InitSharedInstance to be called before this.
browser_process_->PreCreateThreads();
@@ -1340,10 +1339,10 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() {
// This needs to be the last thing in PreCreateThreads() because the
// TaskScheduler needs to be created before any other threads are (by
// contract) but it creates threads itself so instantiating it earlier is also
- // incorrect. It also has to be after SetupMetricsAndFieldTrials() to allow it
- // to use field trials. Note: it could also be the first thing in
- // CreateThreads() but being in chrome/ is convenient for now as the
- // initialization uses variations parameters extensively.
+ // incorrect. It also has to be after SetupFieldTrials() to allow it to use
+ // field trials. Note: it could also be the first thing in CreateThreads() but
+ // being in chrome/ is convenient for now as the initialization uses
+ // variations parameters extensively.
//
// To maintain scoping symmetry, if this line is moved, the corresponding
// shutdown call may also need to be moved.
« no previous file with comments | « chrome/browser/chrome_browser_main.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698