| Index: chrome/browser/chrome_browser_field_trials.cc
|
| ===================================================================
|
| --- chrome/browser/chrome_browser_field_trials.cc (revision 163292)
|
| +++ chrome/browser/chrome_browser_field_trials.cc (working copy)
|
| @@ -33,6 +33,7 @@
|
| #include "ui/base/layout.h"
|
|
|
| #if defined(OS_WIN)
|
| +#include "net/socket/tcp_client_socket_win.h"
|
| #include "ui/base/win/dpi.h" // For DisableNewTabFieldTrialIfNecesssary.
|
| #endif // defined(OS_WIN)
|
|
|
| @@ -64,7 +65,7 @@
|
| base::FieldTrialList::FactoryGetFieldTrial(
|
| trial_name, divisor, kDefaultGroupName, 2015, 1, 1, NULL));
|
| if (one_time_randomized)
|
| - trial->UseOneTimeRandomization();
|
| + trial->UseOneTimeRandomization();
|
| chrome_variations::AssociateGoogleVariationID(trial_name, kDefaultGroupName,
|
| trial_base_id);
|
| // Loop starts with group 1 because the field trial automatically creates a
|
| @@ -129,6 +130,7 @@
|
| SetUpSafeBrowsingInterstitialFieldTrial();
|
| SetUpInfiniteCacheFieldTrial();
|
| SetUpCacheSensitivityAnalysisFieldTrial();
|
| + WindowsOverlappedTCPReadsFieldTrial();
|
| #if defined(ENABLE_ONE_CLICK_SIGNIN)
|
| OneClickSigninHelper::InitializeFieldTrial();
|
| #endif
|
| @@ -587,3 +589,27 @@
|
| trial->AppendGroup("400A", sensitivity_analysis_probability);
|
| trial->AppendGroup("400B", sensitivity_analysis_probability);
|
| }
|
| +
|
| +void ChromeBrowserFieldTrials::WindowsOverlappedTCPReadsFieldTrial() {
|
| +#if defined(OS_WIN)
|
| + if (parsed_command_line_.HasSwitch(switches::kOverlappedRead)) {
|
| + std::string option =
|
| + parsed_command_line_.GetSwitchValueASCII(switches::kOverlappedRead);
|
| + if (LowerCaseEqualsASCII(option, "off"))
|
| + net::TCPClientSocketWin::DisableOverlappedReads();
|
| + } else {
|
| + const base::FieldTrial::Probability kDivisor = 2; // 1 in 2 chance
|
| + const base::FieldTrial::Probability kOverlappedReadProbability = 1;
|
| + scoped_refptr<base::FieldTrial> overlapped_reads_trial(
|
| + base::FieldTrialList::FactoryGetFieldTrial("OverlappedReadImpact",
|
| + kDivisor, "OverlappedReadEnabled", 2013, 6, 1, NULL));
|
| + int overlapped_reads_disabled_group =
|
| + overlapped_reads_trial->AppendGroup("OverlappedReadDisabled",
|
| + kOverlappedReadProbability);
|
| + int assigned_group = overlapped_reads_trial->group();
|
| + if (assigned_group == overlapped_reads_disabled_group)
|
| + net::TCPClientSocketWin::DisableOverlappedReads();
|
| + }
|
| +#endif
|
| +}
|
| +
|
|
|