summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-08 04:22:44 +0000
committerjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-08 04:22:44 +0000
commit0d8fa3ecb7ed0a7f6e0d9cd0a750a29bd8bed370 (patch)
treec4cb5532d0bee1567641c0cc7147d8b1ebbad5f1 /chrome/browser
parentbb39f362bd5222de3b9f3f7ab2d5bb69c2aeca39 (diff)
downloadchromium_src-0d8fa3ecb7ed0a7f6e0d9cd0a750a29bd8bed370.zip
chromium_src-0d8fa3ecb7ed0a7f6e0d9cd0a750a29bd8bed370.tar.gz
chromium_src-0d8fa3ecb7ed0a7f6e0d9cd0a750a29bd8bed370.tar.bz2
DNS prefetch experiment extension: Consider different connection count limits
This CL both enables selection of a run-time selected limit on the number of connections to a single host, and varies that limit to see how it relates to DNS prefetch latency in connections. r=wtc Review URL: http://codereview.chromium.org/62083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13339 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/browser_main.cc24
1 files changed, 19 insertions, 5 deletions
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc
index 8dc32d4..0ef576f 100644
--- a/chrome/browser/browser_main.cc
+++ b/chrome/browser/browser_main.cc
@@ -48,6 +48,7 @@
#include "grit/generated_resources.h"
#include "grit/net_resources.h"
#include "net/base/net_module.h"
+#include "net/http/http_network_session.h"
#if defined(OS_POSIX)
// TODO(port): get rid of this include. It's used just to provide declarations
@@ -316,7 +317,7 @@ int BrowserMain(const MainFunctionParams& parameters) {
if (!parsed_command_line.HasSwitch(switches::kNoErrorDialogs)) {
// Display a warning if the user is running windows 2000.
- // TODO(port). We should probably change this to a "check for minimum
+ // TODO(port): We should probably change this to a "check for minimum
// requirements" function, implemented by each platform.
CheckForWin2000();
}
@@ -439,14 +440,21 @@ int BrowserMain(const MainFunctionParams& parameters) {
net::EnsureWinsockInit();
#endif // defined(OS_WIN)
- // Set up a field trial.
+ // Set up a field trial to see what disabling DNS pre-resolution does to
+ // latency of network transactions.
FieldTrial::Probability kDIVISOR = 100;
- FieldTrial::Probability kDISABLE = 1; // 1%.
+ FieldTrial::Probability k_PROBABILITY_PER_GROUP = 10; // 10%.
scoped_refptr<FieldTrial> dns_trial = new FieldTrial("DnsImpact", kDIVISOR);
- int disabled_group = dns_trial->AppendGroup("_disabled_prefetch", kDISABLE);
+
+ dns_trial->AppendGroup("_disabled_prefetch", k_PROBABILITY_PER_GROUP);
+ int disabled_plus_4_connections = dns_trial->AppendGroup(
+ "_disabled_prefetch_4_connections", k_PROBABILITY_PER_GROUP);
+ int enabled_plus_4_connections = dns_trial->AppendGroup(
+ "_enabled_prefetch_4_connections", k_PROBABILITY_PER_GROUP);
scoped_ptr<chrome_browser_net::DnsPrefetcherInit> dns_prefetch_init;
- if (dns_trial->group() != disabled_group) {
+ if (dns_trial->group() == FieldTrial::kNotParticipating ||
+ dns_trial->group() == enabled_plus_4_connections) {
// Initialize the DNS prefetch system
dns_prefetch_init.reset(
new chrome_browser_net::DnsPrefetcherInit(user_prefs));
@@ -454,6 +462,12 @@ int BrowserMain(const MainFunctionParams& parameters) {
chrome_browser_net::RestoreSubresourceReferrers(local_state);
}
+ if (dns_trial->group() == disabled_plus_4_connections ||
+ dns_trial->group() == enabled_plus_4_connections) {
+ net::HttpNetworkSession::set_max_sockets_per_group(4);
+ }
+
+
#if defined(OS_WIN)
// Init common control sex.
INITCOMMONCONTROLSEX config;