summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net/predictor.cc
diff options
context:
space:
mode:
authorjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-15 15:13:49 +0000
committerjar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-15 15:13:49 +0000
commitbff1f51a7aa9c3dd72711304b5f0f158de74d630 (patch)
tree0796aad39d2ca4b480c30249e6b709ffd38a5667 /chrome/browser/net/predictor.cc
parent30ec247e0d99a0b084a65ba63a5789b3037aa94d (diff)
downloadchromium_src-bff1f51a7aa9c3dd72711304b5f0f158de74d630.zip
chromium_src-bff1f51a7aa9c3dd72711304b5f0f158de74d630.tar.gz
chromium_src-bff1f51a7aa9c3dd72711304b5f0f158de74d630.tar.bz2
Intercept navigations, not DNS resolutions, to predict startup
Transition from using a DNS observer, to using the TCP/IP connection interceptor (which is used for preconneciton and pre-resolution) to acquire the list of hosts to resolve at startup. BUG=42694 r=mbelshe Review URL: http://codereview.chromium.org/3169006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56163 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/net/predictor.cc')
-rw-r--r--chrome/browser/net/predictor.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc
index 83c6160..c698bbc 100644
--- a/chrome/browser/net/predictor.cc
+++ b/chrome/browser/net/predictor.cc
@@ -130,9 +130,10 @@ void Predictor::Resolve(const GURL& url,
void Predictor::LearnFromNavigation(const GURL& referring_url,
const GURL& target_url) {
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
+ DCHECK(referring_url == referring_url.GetWithEmptyPath());
+ DCHECK(target_url == target_url.GetWithEmptyPath());
if (referring_url.has_host() &&
referring_url != target_url) {
- DCHECK(referring_url == referring_url.GetWithEmptyPath());
referrers_[referring_url].SuggestHost(target_url);
}
}
@@ -150,11 +151,12 @@ void Predictor::PredictFrameSubresources(const GURL& url) {
Referrers::iterator it = referrers_.find(url);
if (referrers_.end() == it)
return;
+ // Add one pass through the message loop to allow current navigation to
+ // proceed.
ChromeThread::PostTask(
ChromeThread::IO,
FROM_HERE,
- NewRunnableMethod(this,
- &Predictor::PrepareFrameSubresources, url));
+ NewRunnableMethod(this, &Predictor::PrepareFrameSubresources, url));
}
void Predictor::PrepareFrameSubresources(const GURL& url) {