Index: chrome/browser/chrome_browser_field_trials.cc |
=================================================================== |
--- chrome/browser/chrome_browser_field_trials.cc (revision 161340) |
+++ chrome/browser/chrome_browser_field_trials.cc (working copy) |
@@ -28,6 +28,9 @@ |
#include "net/http/http_stream_factory.h" |
#include "net/socket/client_socket_pool_base.h" |
#include "net/socket/client_socket_pool_manager.h" |
+#if defined(OS_WIN) |
+#include "net/socket/tcp_client_socket_win.h" |
+#endif // defined(OS_WIN) |
Ryan Sleevi
2012/10/12 18:53:13
style nit: Platform defines like go after the 'sta
pmeenan
2012/10/17 15:12:31
Done.
|
#include "net/spdy/spdy_session.h" |
#include "net/spdy/spdy_session_pool.h" |
#include "ui/base/layout.h" |
@@ -129,6 +132,7 @@ |
SetUpSafeBrowsingInterstitialFieldTrial(); |
SetUpInfiniteCacheFieldTrial(); |
SetUpCacheSensitivityAnalysisFieldTrial(); |
+ WindowsOverlappedTCPReadsFieldTrial(); |
#if defined(ENABLE_ONE_CLICK_SIGNIN) |
OneClickSigninHelper::InitializeFieldTrial(); |
#endif |
@@ -587,3 +591,29 @@ |
trial->AppendGroup("400A", sensitivity_analysis_probability); |
trial->AppendGroup("400B", sensitivity_analysis_probability); |
} |
+ |
+void ChromeBrowserFieldTrials::WindowsOverlappedTCPReadsFieldTrial() { |
Ryan Sleevi
2012/10/12 18:53:13
style: Please review this function for whitespace
pmeenan
2012/10/17 15:12:31
Done.
|
+#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(); |
+ } |
Ryan Sleevi
2012/10/12 18:53:13
style nit: the bracing style in this file is to om
pmeenan
2012/10/17 15:12:31
Done.
|
+ } else { |
+ const base::FieldTrial::Probability kDivisor = 2; // 1 in 2 chance |
+ const base::FieldTrial::Probability kOverlappedReadProbability = 1; |
+ scoped_refptr<base::FieldTrial> nbread_trial( |
+ base::FieldTrialList::FactoryGetFieldTrial("OverlappedReadImpact", |
+ kDivisor, "OverlappedReadEnabled", 2015, 1, 1, NULL)); |
Ryan Sleevi
2012/10/12 18:53:13
That's a really long trial. Are you sure that's th
pmeenan
2012/10/17 15:12:31
Done.
|
+ int overlapped_reads_disabled_group = |
+ nbread_trial->AppendGroup("OverlappedReadDisabled", |
+ kOverlappedReadProbability); |
+ int assigned_group = nbread_trial->group(); |
+ if (assigned_group == overlapped_reads_disabled_group) { |
+ net::TCPClientSocketWin::DisableOverlappedReads(); |
+ } |
+ } |
+#endif |
+} |
+ |