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,7 @@ |
#include "net/http/http_stream_factory.h" |
#include "net/socket/client_socket_pool_base.h" |
#include "net/socket/client_socket_pool_manager.h" |
+#include "net/socket/tcp_client_socket_win.h" |
#include "net/spdy/spdy_session.h" |
#include "net/spdy/spdy_session_pool.h" |
#include "ui/base/layout.h" |
@@ -129,6 +130,7 @@ |
SetUpSafeBrowsingInterstitialFieldTrial(); |
SetUpInfiniteCacheFieldTrial(); |
SetUpCacheSensitivityAnalysisFieldTrial(); |
+ WindowsOverlappedTCPReadsFieldTrial(); |
#if defined(ENABLE_ONE_CLICK_SIGNIN) |
OneClickSigninHelper::InitializeFieldTrial(); |
#endif |
@@ -587,3 +589,29 @@ |
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 { |
+ base::FieldTrial::Probability kNBREAD_DIVISOR = 2; // 1 in 2 chance |
+ base::FieldTrial::Probability kNBREAD_GROUP_PROBABILITY = 1; |
Ryan Sleevi
2012/10/11 18:53:16
Because these are not declared const, please do no
|
+ scoped_refptr<base::FieldTrial> nbread_trial( |
+ base::FieldTrialList::FactoryGetFieldTrial("NBReadImpact", |
+ kNBREAD_DIVISOR, "NBReadStandard", 2015, 1, 1, NULL)); |
+ int overlapped_reads_disabled_group = |
+ nbread_trial->AppendGroup("NBReadNonBlocking", |
Ryan Sleevi
2012/10/11 18:53:16
The names of these probability groups are non-intu
|
+ kNBREAD_GROUP_PROBABILITY); |
+ int assigned_group = nbread_trial->group(); |
+ if (assigned_group == overlapped_reads_disabled_group) { |
+ net::TCPClientSocketWin::DisableOverlappedReads(); |
+ } |
+ } |
Ryan Sleevi
2012/10/11 18:53:16
nit: Please follow the C++ Guide for horizontal wh
|
+#endif |
+} |
+ |