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

Unified Diff: chrome/browser/chrome_browser_field_trials.cc

Issue 10916016: Switch the TCP reads on Windows to use non-blocking/non-async I/O. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 8 years, 2 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
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
+}
+

Powered by Google App Engine
This is Rietveld 408576698