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(); |