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

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)
@@ -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> nbread_trial(
+ base::FieldTrialList::FactoryGetFieldTrial("OverlappedReadImpact",
+ kDivisor, "OverlappedReadEnabled", 2013, 6, 1, NULL));
+ 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
+}
+

Powered by Google App Engine
This is Rietveld 408576698