Chromium Code Reviews| Index: chrome/browser/net/predictor.cc |
| diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc |
| index 9299b63358dec01e1bdd97292cf68ec474d075b8..72194996decda289eddb97d6938cda7d90c6ee0a 100644 |
| --- a/chrome/browser/net/predictor.cc |
| +++ b/chrome/browser/net/predictor.cc |
| @@ -86,6 +86,8 @@ const int Predictor::kTypicalSpeculativeGroupSize = 8; |
| const int Predictor::kMaxSpeculativeResolveQueueDelayMs = |
| (kExpectedResolutionTimeMs * Predictor::kTypicalSpeculativeGroupSize) / |
| Predictor::kMaxSpeculativeParallelResolves; |
| +const bool Predictor::kAllowCredentialsOnPreconnect = true; |
|
Ryan Sleevi
2015/06/12 21:35:59
I'm not sure I understand why this is a global sta
|
| + |
| static int g_max_queueing_delay_ms = |
| Predictor::kMaxSpeculativeResolveQueueDelayMs; |
| @@ -266,7 +268,8 @@ void Predictor::AnticipateOmniboxUrl(const GURL& url, bool preconnectable) { |
| last_omnibox_preconnect_ = now; |
| const int kConnectionsNeeded = 1; |
| PreconnectUrl( |
| - CanonicalizeUrl(url), GURL(), motivation, kConnectionsNeeded); |
| + CanonicalizeUrl(url), GURL(), motivation, kConnectionsNeeded, |
| + kAllowCredentialsOnPreconnect); |
| return; // Skip pre-resolution, since we'll open a connection. |
| } |
| } else { |
| @@ -306,7 +309,7 @@ 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); |
| + motivation, kConnectionsNeeded, kAllowCredentialsOnPreconnect); |
| PredictFrameSubresources(url.GetWithEmptyPath(), first_party_for_cookies); |
| } |
| @@ -840,19 +843,24 @@ void Predictor::SaveDnsPrefetchStateForNextStartupAndTrim( |
| void Predictor::PreconnectUrl(const GURL& url, |
| const GURL& first_party_for_cookies, |
| UrlInfo::ResolutionMotivation motivation, |
| - int count) { |
| + int count, |
| + bool allow_credentials) { |
| 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, |
| + count, |
| + allow_credentials); |
| } else { |
| BrowserThread::PostTask( |
| BrowserThread::IO, |
| FROM_HERE, |
| base::Bind(&Predictor::PreconnectUrlOnIOThread, |
| base::Unretained(this), url, first_party_for_cookies, |
| - motivation, count)); |
| + motivation, count, allow_credentials)); |
| } |
| } |
| @@ -860,7 +868,8 @@ void Predictor::PreconnectUrlOnIOThread( |
| const GURL& original_url, |
| const GURL& first_party_for_cookies, |
| UrlInfo::ResolutionMotivation motivation, |
| - int count) { |
| + int count, |
| + bool allow_credentials) { |
| // Skip the HSTS redirect. |
| GURL url = GetHSTSRedirectOnIOThread(original_url); |
| @@ -873,7 +882,8 @@ void Predictor::PreconnectUrlOnIOThread( |
| first_party_for_cookies, |
| motivation, |
| count, |
| - url_request_context_getter_.get()); |
| + url_request_context_getter_.get(), |
| + allow_credentials); |
| } |
| void Predictor::PredictFrameSubresources(const GURL& url, |
| @@ -941,7 +951,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, 2, |
| + kAllowCredentialsOnPreconnect); |
| } |
| return; |
| } |
| @@ -966,7 +977,7 @@ 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, count, kAllowCredentialsOnPreconnect); |
| } else if (connection_expectation > kDNSPreresolutionWorthyExpectedValue) { |
| evalution = PRERESOLUTION; |
| future_url->second.preresolution_increment(); |