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

Unified Diff: chrome/browser/browser_main.cc

Issue 7685009: Revert "Modifying prefetch to account for multi-profile." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 4 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
« no previous file with comments | « chrome/browser/browser_main.h ('k') | chrome/browser/browser_process_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser_main.cc
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc
index a9063cf2e1e89871779bf08d86392be96d9ae597..be43c54debf27b8983164582fbd1e55b54699995 100644
--- a/chrome/browser/browser_main.cc
+++ b/chrome/browser/browser_main.cc
@@ -55,7 +55,7 @@
#include "chrome/browser/net/chrome_dns_cert_provenance_checker.h"
#include "chrome/browser/net/chrome_dns_cert_provenance_checker_factory.h"
#include "chrome/browser/net/chrome_net_log.h"
-#include "chrome/browser/net/predictor.h"
+#include "chrome/browser/net/predictor_api.h"
#include "chrome/browser/net/sdch_dictionary_fetcher.h"
#include "chrome/browser/plugin_prefs.h"
#include "chrome/browser/policy/browser_policy_connector.h"
@@ -1172,88 +1172,6 @@ void BrowserMainParts::ConnectBackupJobsFieldTrial() {
}
}
-void BrowserMainParts::PredictorFieldTrial() {
- const base::FieldTrial::Probability kDivisor = 1000;
- // For each option (i.e., non-default), we have a fixed probability.
- // 0.1% probability.
- const base::FieldTrial::Probability kProbabilityPerGroup = 1;
-
- // After June 30, 2011 builds, it will always be in default group
- // (default_enabled_prefetch).
- scoped_refptr<base::FieldTrial> trial(
- new base::FieldTrial("DnsImpact", kDivisor,
- "default_enabled_prefetch", 2011, 10, 30));
-
- // First option is to disable prefetching completely.
- int disabled_prefetch = trial->AppendGroup("disabled_prefetch",
- kProbabilityPerGroup);
-
- // We're running two experiments at the same time. The first set of trials
- // modulates the delay-time until we declare a congestion event (and purge
- // our queue). The second modulates the number of concurrent resolutions
- // we do at any time. Users are in exactly one trial (or the default) during
- // any one run, and hence only one experiment at a time.
- // Experiment 1:
- // Set congestion detection at 250, 500, or 750ms, rather than the 1 second
- // default.
- int max_250ms_prefetch = trial->AppendGroup("max_250ms_queue_prefetch",
- kProbabilityPerGroup);
- int max_500ms_prefetch = trial->AppendGroup("max_500ms_queue_prefetch",
- kProbabilityPerGroup);
- int max_750ms_prefetch = trial->AppendGroup("max_750ms_queue_prefetch",
- kProbabilityPerGroup);
- // Set congestion detection at 2 seconds instead of the 1 second default.
- int max_2s_prefetch = trial->AppendGroup("max_2s_queue_prefetch",
- kProbabilityPerGroup);
- // Experiment 2:
- // Set max simultaneous resoultions to 2, 4, or 6, and scale the congestion
- // limit proportionally (so we don't impact average probability of asserting
- // congesion very much).
- int max_2_concurrent_prefetch = trial->AppendGroup(
- "max_2 concurrent_prefetch", kProbabilityPerGroup);
- int max_4_concurrent_prefetch = trial->AppendGroup(
- "max_4 concurrent_prefetch", kProbabilityPerGroup);
- int max_6_concurrent_prefetch = trial->AppendGroup(
- "max_6 concurrent_prefetch", kProbabilityPerGroup);
-
- if (trial->group() != disabled_prefetch) {
- // Initialize the DNS prefetch system.
- size_t max_parallel_resolves =
- chrome_browser_net::Predictor::kMaxSpeculativeParallelResolves;
- int max_queueing_delay_ms =
- chrome_browser_net::Predictor::kMaxSpeculativeResolveQueueDelayMs;
-
- if (trial->group() == max_2_concurrent_prefetch)
- max_parallel_resolves = 2;
- else if (trial->group() == max_4_concurrent_prefetch)
- max_parallel_resolves = 4;
- else if (trial->group() == max_6_concurrent_prefetch)
- max_parallel_resolves = 6;
- chrome_browser_net::Predictor::set_max_parallel_resolves(
- max_parallel_resolves);
-
- if (trial->group() == max_250ms_prefetch) {
- max_queueing_delay_ms =
- (250 * chrome_browser_net::Predictor::kTypicalSpeculativeGroupSize) /
- max_parallel_resolves;
- } else if (trial->group() == max_500ms_prefetch) {
- max_queueing_delay_ms =
- (500 * chrome_browser_net::Predictor::kTypicalSpeculativeGroupSize) /
- max_parallel_resolves;
- } else if (trial->group() == max_750ms_prefetch) {
- max_queueing_delay_ms =
- (750 * chrome_browser_net::Predictor::kTypicalSpeculativeGroupSize) /
- max_parallel_resolves;
- } else if (trial->group() == max_2s_prefetch) {
- max_queueing_delay_ms =
- (2000 * chrome_browser_net::Predictor::kTypicalSpeculativeGroupSize) /
- max_parallel_resolves;
- }
- chrome_browser_net::Predictor::set_max_queueing_delay(
- max_queueing_delay_ms);
- }
-}
-
// Test the impact on subsequent Google searches of getting suggestions from
// www.google.TLD instead of clients1.google.TLD.
void BrowserMainParts::SuggestPrefixFieldTrial() {
@@ -1354,7 +1272,6 @@ void BrowserMainParts::SetupFieldTrials(bool metrics_recording_enabled,
ConnectBackupJobsFieldTrial();
SuggestPrefixFieldTrial();
WarmConnectionFieldTrial();
- PredictorFieldTrial();
}
// -----------------------------------------------------------------------------
@@ -1927,6 +1844,20 @@ int BrowserMain(const MainFunctionParams& parameters) {
RegisterApplicationRestart(parsed_command_line);
#endif // OS_WIN
+ // Initialize and maintain network predictor module, which handles DNS
+ // pre-resolution, as well as TCP/IP connection pre-warming.
+ // This also registers an observer to discard data when closing incognito
+ // mode.
+ bool preconnect_enabled = true; // Default status (easy to change!).
+ if (parsed_command_line.HasSwitch(switches::kDisablePreconnect))
+ preconnect_enabled = false;
+ else if (parsed_command_line.HasSwitch(switches::kEnablePreconnect))
+ preconnect_enabled = true;
+ chrome_browser_net::PredictorInit dns_prefetch(
+ user_prefs,
+ local_state,
+ preconnect_enabled);
+
#if defined(OS_WIN)
base::win::ScopedCOMInitializer com_initializer;
« no previous file with comments | « chrome/browser/browser_main.h ('k') | chrome/browser/browser_process_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698