| Index: chrome/browser/chrome_browser_main.cc
|
| diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
|
| index e13c48ce280bd204cb67383da94f8901e579cdbe..335f6aeab65da03a5068fe2c5b768c2cc2ad4cb1 100644
|
| --- a/chrome/browser/chrome_browser_main.cc
|
| +++ b/chrome/browser/chrome_browser_main.cc
|
| @@ -617,6 +617,20 @@ void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
|
| metrics->ForceClientIdCreation(); // Needed below.
|
| field_trial_list_.reset(new base::FieldTrialList(metrics->GetClientId()));
|
|
|
| + // Ensure any field trials specified on the command line are initialized
|
| + // and stop the metrics service so that we don't pollute UMA.
|
| +#ifndef NDEBUG
|
| + const CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| + if (command_line->HasSwitch(switches::kForceFieldTestNameAndValue)) {
|
| + std::string persistent = command_line->GetSwitchValueASCII(
|
| + switches::kForceFieldTestNameAndValue);
|
| + bool ret = base::FieldTrialList::CreateTrialsFromString(persistent);
|
| + CHECK(ret) << "Invalid --" << switches::kForceFieldTestNameAndValue <<
|
| + " list specified.";
|
| + metrics->Stop();
|
| + }
|
| +#endif // NDEBUG
|
| +
|
| SetupFieldTrials(metrics->recording_active(),
|
| local_state_->IsManagedPreference(
|
| prefs::kMaxConnectionsPerProxy));
|
| @@ -640,7 +654,7 @@ void ChromeBrowserMainParts::ConnectionFieldTrial() {
|
|
|
| // After June 30, 2011 builds, it will always be in default group.
|
| scoped_refptr<base::FieldTrial> connect_trial(
|
| - new base::FieldTrial(
|
| + base::FieldTrial::CreateInstance(
|
| "ConnCountImpact", kConnectDivisor, "conn_count_6", 2011, 6, 30));
|
|
|
| // This (6) is the current default value. Having this group declared here
|
| @@ -693,8 +707,9 @@ void ChromeBrowserMainParts::SocketTimeoutFieldTrial() {
|
|
|
| // After June 30, 2011 builds, it will always be in default group.
|
| scoped_refptr<base::FieldTrial> socket_timeout_trial(
|
| - new base::FieldTrial("IdleSktToImpact", kIdleSocketTimeoutDivisor,
|
| - "idle_timeout_10", 2011, 6, 30));
|
| + base::FieldTrial::CreateInstance(
|
| + "IdleSktToImpact", kIdleSocketTimeoutDivisor, "idle_timeout_10",
|
| + 2011, 6, 30));
|
| const int socket_timeout_10 = socket_timeout_trial->kDefaultGroupNumber;
|
|
|
| const int socket_timeout_5 =
|
| @@ -727,7 +742,8 @@ void ChromeBrowserMainParts::ProxyConnectionsFieldTrial() {
|
|
|
| // After June 30, 2011 builds, it will always be in default group.
|
| scoped_refptr<base::FieldTrial> proxy_connection_trial(
|
| - new base::FieldTrial("ProxyConnectionImpact", kProxyConnectionsDivisor,
|
| + base::FieldTrial::CreateInstance(
|
| + "ProxyConnectionImpact", kProxyConnectionsDivisor,
|
| "proxy_connections_32", 2011, 6, 30));
|
|
|
| // This (32 connections per proxy server) is the current default value.
|
| @@ -781,9 +797,8 @@ void ChromeBrowserMainParts::SpdyFieldTrial() {
|
| base::FieldTrial::Probability npnhttp_probability = 5;
|
|
|
| // After June 30, 2013 builds, it will always be in default group.
|
| - scoped_refptr<base::FieldTrial> trial(
|
| - new base::FieldTrial(
|
| - "SpdyImpact", kSpdyDivisor, "npn_with_spdy", 2013, 6, 30));
|
| + scoped_refptr<base::FieldTrial> trial(base::FieldTrial::CreateInstance(
|
| + "SpdyImpact", kSpdyDivisor, "npn_with_spdy", 2013, 6, 30));
|
|
|
| // npn with spdy support is the default.
|
| int npn_spdy_grp = trial->kDefaultGroupNumber;
|
| @@ -816,9 +831,8 @@ void ChromeBrowserMainParts::SpdyFieldTrial() {
|
|
|
| // After June 30, 2013 builds, it will always be in default group
|
| // (cwndDynamic).
|
| - scoped_refptr<base::FieldTrial> trial(
|
| - new base::FieldTrial(
|
| - "SpdyCwnd", kSpdyCwndDivisor, "cwndDynamic", 2013, 6, 30));
|
| + scoped_refptr<base::FieldTrial> trial(base::FieldTrial::CreateInstance(
|
| + "SpdyCwnd", kSpdyCwndDivisor, "cwndDynamic", 2013, 6, 30));
|
|
|
| trial->AppendGroup("cwnd10", kSpdyCwnd10);
|
| trial->AppendGroup("cwnd16", kSpdyCwnd16);
|
| @@ -856,7 +870,7 @@ void ChromeBrowserMainParts::WarmConnectionFieldTrial() {
|
|
|
| // After January 30, 2013 builds, it will always be in default group.
|
| scoped_refptr<base::FieldTrial> warmest_socket_trial(
|
| - new base::FieldTrial(
|
| + base::FieldTrial::CreateInstance(
|
| "WarmSocketImpact", kWarmSocketDivisor, "last_accessed_socket",
|
| 2013, 1, 30));
|
|
|
| @@ -892,7 +906,7 @@ void ChromeBrowserMainParts::ConnectBackupJobsFieldTrial() {
|
| const base::FieldTrial::Probability kConnectBackupJobsProbability = 1;
|
| // After June 30, 2011 builds, it will always be in default group.
|
| scoped_refptr<base::FieldTrial> trial(
|
| - new base::FieldTrial("ConnnectBackupJobs",
|
| + base::FieldTrial::CreateInstance("ConnnectBackupJobs",
|
| kConnectBackupJobsDivisor, "ConnectBackupJobsEnabled", 2011, 6,
|
| 30));
|
| const int connect_backup_jobs_enabled = trial->kDefaultGroupNumber;
|
| @@ -912,9 +926,8 @@ void ChromeBrowserMainParts::PredictorFieldTrial() {
|
|
|
| // After June 30, 2011 builds, it will always be in default group
|
| // (default_enabled_prefetch).
|
| - scoped_refptr<base::FieldTrial> trial(
|
| - new base::FieldTrial("DnsImpact", kDivisor,
|
| - "default_enabled_prefetch", 2011, 10, 30));
|
| + scoped_refptr<base::FieldTrial> trial(base::FieldTrial::CreateInstance(
|
| + "DnsImpact", kDivisor, "default_enabled_prefetch", 2011, 10, 30));
|
|
|
| // First option is to disable prefetching completely.
|
| int disabled_prefetch = trial->AppendGroup("disabled_prefetch",
|
| @@ -1021,7 +1034,7 @@ void ChromeBrowserMainParts::ComodoDNSExperimentFieldTrial() {
|
|
|
| // After April 15, 2012 builds, it will always be in default group.
|
| scoped_refptr<base::FieldTrial> trial(
|
| - new base::FieldTrial("ComodoDNSExperiment", kDivisor,
|
| + base::FieldTrial::CreateInstance("ComodoDNSExperiment", kDivisor,
|
| "inactive", 2012, 4, 15));
|
|
|
| const int active = trial->AppendGroup("active", kProbability);
|
| @@ -1682,9 +1695,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
|
| base::FieldTrial::Probability kSDCH_DIVISOR = 1000;
|
| base::FieldTrial::Probability kSDCH_DISABLE_PROBABILITY = 1; // 0.1% prob.
|
| // After March 31, 2012 builds, it will always be in default group.
|
| - scoped_refptr<base::FieldTrial> sdch_trial(
|
| - new base::FieldTrial("GlobalSdch", kSDCH_DIVISOR, "global_enable_sdch",
|
| - 2012, 3, 31));
|
| + scoped_refptr<base::FieldTrial> sdch_trial(base::FieldTrial::CreateInstance(
|
| + "GlobalSdch", kSDCH_DIVISOR, "global_enable_sdch", 2012, 3, 31));
|
| int sdch_enabled_group = sdch_trial->kDefaultGroupNumber;
|
|
|
| sdch_trial->AppendGroup("global_disable_sdch",
|
|
|