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

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

Issue 1131293004: Add cross origin to Blink-driven preconnect (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Ryan's concerns Created 5 years, 5 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/net/predictor.cc
diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc
index d18979a891f0814bf1462a6c0482b02b68142a7d..c435a8c42e1552334f025c5c16a57ecfcfa8f769 100644
--- a/chrome/browser/net/predictor.cc
+++ b/chrome/browser/net/predictor.cc
@@ -87,6 +87,9 @@ const int Predictor::kMaxSpeculativeResolveQueueDelayMs =
(kExpectedResolutionTimeMs * Predictor::kTypicalSpeculativeGroupSize) /
Predictor::kMaxSpeculativeParallelResolves;
+// The default value of the credentials flag when preconnecting.
+static bool kAllowCredentialsOnPreconnectByDefault = true;
+
static int g_max_queueing_delay_ms =
Predictor::kMaxSpeculativeResolveQueueDelayMs;
static size_t g_max_parallel_resolves =
@@ -265,8 +268,9 @@ 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, kConnectionsNeeded);
+ PreconnectUrl(CanonicalizeUrl(url), GURL(), motivation,
+ kAllowCredentialsOnPreconnectByDefault,
+ kConnectionsNeeded);
return; // Skip pre-resolution, since we'll open a connection.
}
} else {
@@ -305,8 +309,8 @@ void Predictor::PreconnectUrlAndSubresources(const GURL& url,
UrlInfo::ResolutionMotivation motivation(UrlInfo::EARLY_LOAD_MOTIVATED);
const int kConnectionsNeeded = 1;
- PreconnectUrl(CanonicalizeUrl(url), first_party_for_cookies,
- motivation, kConnectionsNeeded);
+ PreconnectUrl(CanonicalizeUrl(url), first_party_for_cookies, motivation,
+ kConnectionsNeeded, kAllowCredentialsOnPreconnectByDefault);
PredictFrameSubresources(url.GetWithEmptyPath(), first_party_for_cookies);
}
@@ -840,19 +844,20 @@ void Predictor::SaveDnsPrefetchStateForNextStartupAndTrim(
void Predictor::PreconnectUrl(const GURL& url,
const GURL& first_party_for_cookies,
UrlInfo::ResolutionMotivation motivation,
+ bool allow_credentials,
int count) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
BrowserThread::CurrentlyOn(BrowserThread::IO));
if (BrowserThread::CurrentlyOn(BrowserThread::IO)) {
- PreconnectUrlOnIOThread(url, first_party_for_cookies, motivation, count);
+ PreconnectUrlOnIOThread(url, first_party_for_cookies, motivation,
+ allow_credentials, count);
} else {
BrowserThread::PostTask(
- BrowserThread::IO,
- FROM_HERE,
- base::Bind(&Predictor::PreconnectUrlOnIOThread,
- base::Unretained(this), url, first_party_for_cookies,
- motivation, count));
+ BrowserThread::IO, FROM_HERE,
+ base::Bind(&Predictor::PreconnectUrlOnIOThread, base::Unretained(this),
+ url, first_party_for_cookies, motivation, allow_credentials,
+ count));
}
}
@@ -860,6 +865,7 @@ void Predictor::PreconnectUrlOnIOThread(
const GURL& original_url,
const GURL& first_party_for_cookies,
UrlInfo::ResolutionMotivation motivation,
+ bool allow_credentials,
int count) {
// Skip the HSTS redirect.
GURL url = GetHSTSRedirectOnIOThread(original_url);
@@ -869,11 +875,8 @@ void Predictor::PreconnectUrlOnIOThread(
url, first_party_for_cookies, motivation, count);
}
- PreconnectOnIOThread(url,
- first_party_for_cookies,
- motivation,
- count,
- url_request_context_getter_.get());
+ PreconnectOnIOThread(url, first_party_for_cookies, motivation, count,
+ url_request_context_getter_.get(), allow_credentials);
}
void Predictor::PredictFrameSubresources(const GURL& url,
@@ -941,7 +944,8 @@ void Predictor::PrepareFrameSubresources(const GURL& original_url,
// provide a more carefully estimated preconnection count.
if (preconnect_enabled_) {
PreconnectUrlOnIOThread(url, first_party_for_cookies,
- UrlInfo::SELF_REFERAL_MOTIVATED, 2);
+ UrlInfo::SELF_REFERAL_MOTIVATED,
+ kAllowCredentialsOnPreconnectByDefault, 2);
}
return;
}
@@ -966,7 +970,8 @@ void Predictor::PrepareFrameSubresources(const GURL& original_url,
if (url.host() == future_url->first.host())
++count;
PreconnectUrlOnIOThread(future_url->first, first_party_for_cookies,
- motivation, count);
+ motivation,
+ kAllowCredentialsOnPreconnectByDefault, count);
} else if (connection_expectation > kDNSPreresolutionWorthyExpectedValue) {
evalution = PRERESOLUTION;
future_url->second.preresolution_increment();

Powered by Google App Engine
This is Rietveld 408576698