| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/net/predictor.h" | 5 #include "chrome/browser/net/predictor.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <sstream> | 10 #include <sstream> |
| (...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 // a frequent occurrence on Android. | 830 // a frequent occurrence on Android. |
| 831 TrimReferrersNow(); | 831 TrimReferrersNow(); |
| 832 SerializeReferrers(referral_list); | 832 SerializeReferrers(referral_list); |
| 833 | 833 |
| 834 completion->Signal(); | 834 completion->Signal(); |
| 835 } | 835 } |
| 836 | 836 |
| 837 void Predictor::PreconnectUrl(const GURL& url, | 837 void Predictor::PreconnectUrl(const GURL& url, |
| 838 const GURL& first_party_for_cookies, | 838 const GURL& first_party_for_cookies, |
| 839 UrlInfo::ResolutionMotivation motivation, | 839 UrlInfo::ResolutionMotivation motivation, |
| 840 int count) { | 840 int count, |
| 841 bool is_credentials_flag_set) { |
| 841 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || | 842 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || |
| 842 BrowserThread::CurrentlyOn(BrowserThread::IO)); | 843 BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 843 | 844 |
| 844 if (BrowserThread::CurrentlyOn(BrowserThread::IO)) { | 845 if (BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
| 845 PreconnectUrlOnIOThread(url, first_party_for_cookies, motivation, count); | 846 PreconnectUrlOnIOThread(url, |
| 847 first_party_for_cookies, |
| 848 motivation, |
| 849 count, |
| 850 is_credentials_flag_set); |
| 846 } else { | 851 } else { |
| 847 BrowserThread::PostTask( | 852 BrowserThread::PostTask( |
| 848 BrowserThread::IO, | 853 BrowserThread::IO, |
| 849 FROM_HERE, | 854 FROM_HERE, |
| 850 base::Bind(&Predictor::PreconnectUrlOnIOThread, | 855 base::Bind(&Predictor::PreconnectUrlOnIOThread, |
| 851 base::Unretained(this), url, first_party_for_cookies, | 856 base::Unretained(this), url, first_party_for_cookies, |
| 852 motivation, count)); | 857 motivation, count, is_credentials_flag_set)); |
| 853 } | 858 } |
| 854 } | 859 } |
| 855 | 860 |
| 856 void Predictor::PreconnectUrlOnIOThread( | 861 void Predictor::PreconnectUrlOnIOThread( |
| 857 const GURL& original_url, | 862 const GURL& original_url, |
| 858 const GURL& first_party_for_cookies, | 863 const GURL& first_party_for_cookies, |
| 859 UrlInfo::ResolutionMotivation motivation, | 864 UrlInfo::ResolutionMotivation motivation, |
| 860 int count) { | 865 int count, |
| 866 bool is_credentials_flag_set) { |
| 861 // Skip the HSTS redirect. | 867 // Skip the HSTS redirect. |
| 862 GURL url = GetHSTSRedirectOnIOThread(original_url); | 868 GURL url = GetHSTSRedirectOnIOThread(original_url); |
| 863 | 869 |
| 864 if (observer_) { | 870 if (observer_) { |
| 865 observer_->OnPreconnectUrl( | 871 observer_->OnPreconnectUrl( |
| 866 url, first_party_for_cookies, motivation, count); | 872 url, first_party_for_cookies, motivation, count); |
| 867 } | 873 } |
| 868 | 874 |
| 869 PreconnectOnIOThread(url, | 875 PreconnectOnIOThread(url, |
| 870 first_party_for_cookies, | 876 first_party_for_cookies, |
| 871 motivation, | 877 motivation, |
| 872 count, | 878 count, |
| 873 url_request_context_getter_.get()); | 879 url_request_context_getter_.get(), |
| 880 is_credentials_flag_set); |
| 874 } | 881 } |
| 875 | 882 |
| 876 void Predictor::PredictFrameSubresources(const GURL& url, | 883 void Predictor::PredictFrameSubresources(const GURL& url, |
| 877 const GURL& first_party_for_cookies) { | 884 const GURL& first_party_for_cookies) { |
| 878 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || | 885 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || |
| 879 BrowserThread::CurrentlyOn(BrowserThread::IO)); | 886 BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 880 if (!predictor_enabled_) | 887 if (!predictor_enabled_) |
| 881 return; | 888 return; |
| 882 if (!CanPreresolveAndPreconnect()) | 889 if (!CanPreresolveAndPreconnect()) |
| 883 return; | 890 return; |
| (...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1316 } | 1323 } |
| 1317 | 1324 |
| 1318 void SimplePredictor::ShutdownOnUIThread() { | 1325 void SimplePredictor::ShutdownOnUIThread() { |
| 1319 SetShutdown(true); | 1326 SetShutdown(true); |
| 1320 } | 1327 } |
| 1321 | 1328 |
| 1322 bool SimplePredictor::CanPrefetchAndPrerender() const { return true; } | 1329 bool SimplePredictor::CanPrefetchAndPrerender() const { return true; } |
| 1323 bool SimplePredictor::CanPreresolveAndPreconnect() const { return true; } | 1330 bool SimplePredictor::CanPreresolveAndPreconnect() const { return true; } |
| 1324 | 1331 |
| 1325 } // namespace chrome_browser_net | 1332 } // namespace chrome_browser_net |
| OLD | NEW |