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

Unified Diff: chrome/browser/net/predictor.cc

Issue 2871323006: Make Network Predictor skip empty urls (Closed)
Patch Set: self Created 3 years, 7 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 | « no previous file | net/http/http_stream_factory_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/predictor.cc
diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc
index 2bb76985c1f3fe406b96bded8cf87e81b314ab89..b3e96ac64e0e8cccc617213a373f50af1558391d 100644
--- a/chrome/browser/net/predictor.cc
+++ b/chrome/browser/net/predictor.cc
@@ -171,12 +171,13 @@ void Predictor::AnticipateOmniboxUrl(const GURL& url, bool preconnectable) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (!PredictorEnabled())
return;
- if (!url.is_valid() || !url.has_host())
+ GURL canonicalized_url = CanonicalizeUrl(url);
Charlie Harrison 2017/05/15 00:01:07 Here and below can you make sure we canoncalize th
xunjieli 2017/05/15 16:41:44 Done.
+ if (!canonicalized_url.is_valid() || !canonicalized_url.has_host())
return;
if (!CanPreresolveAndPreconnect())
return;
- std::string host = url.HostNoBrackets();
+ std::string host = canonicalized_url.HostNoBrackets();
bool is_new_host_request = (host != last_omnibox_host_);
last_omnibox_host_ = host;
@@ -212,7 +213,7 @@ void Predictor::AnticipateOmniboxUrl(const GURL& url, bool preconnectable) {
return; // We've done a preconnect recently.
last_omnibox_preconnect_ = now;
const int kConnectionsNeeded = 1;
- PreconnectUrl(CanonicalizeUrl(url), GURL(), motivation,
+ PreconnectUrl(canonicalized_url, GURL(), motivation,
kAllowCredentialsOnPreconnectByDefault, kConnectionsNeeded);
return; // Skip pre-resolution, since we'll open a connection.
}
@@ -235,24 +236,26 @@ void Predictor::AnticipateOmniboxUrl(const GURL& url, bool preconnectable) {
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
base::BindOnce(&Predictor::Resolve, base::Unretained(this),
- CanonicalizeUrl(url), motivation));
+ canonicalized_url, motivation));
}
void Predictor::PreconnectUrlAndSubresources(const GURL& url,
const GURL& first_party_for_cookies) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
BrowserThread::CurrentlyOn(BrowserThread::IO));
- if (!PredictorEnabled() || !url.is_valid() ||
- !url.has_host())
+ GURL canonicalized_url = CanonicalizeUrl(url);
+ if (!PredictorEnabled() || !canonicalized_url.is_valid() ||
+ !canonicalized_url.has_host())
return;
if (!CanPreresolveAndPreconnect())
return;
UrlInfo::ResolutionMotivation motivation(UrlInfo::EARLY_LOAD_MOTIVATED);
const int kConnectionsNeeded = 1;
- PreconnectUrl(CanonicalizeUrl(url), first_party_for_cookies, motivation,
+ PreconnectUrl(canonicalized_url, first_party_for_cookies, motivation,
kConnectionsNeeded, kAllowCredentialsOnPreconnectByDefault);
- PredictFrameSubresources(url.GetWithEmptyPath(), first_party_for_cookies);
+ PredictFrameSubresources(canonicalized_url.GetWithEmptyPath(),
+ first_party_for_cookies);
}
std::vector<GURL> Predictor::GetPredictedUrlListAtStartup(
@@ -725,6 +728,7 @@ void Predictor::PreconnectUrl(const GURL& url,
int count) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
BrowserThread::CurrentlyOn(BrowserThread::IO));
+ DCHECK(url.is_valid());
if (BrowserThread::CurrentlyOn(BrowserThread::IO)) {
PreconnectUrlOnIOThread(url, first_party_for_cookies, motivation,
« no previous file with comments | « no previous file | net/http/http_stream_factory_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698