Index: chrome/browser/net/predictor.h |
diff --git a/chrome/browser/net/predictor.h b/chrome/browser/net/predictor.h |
index 85b8d1894cd031b11c8304931530d0df54cfec86..3e2b23194bef9e07437dd8940e6ca5db2edd8fa5 100644 |
--- a/chrome/browser/net/predictor.h |
+++ b/chrome/browser/net/predictor.h |
@@ -49,6 +49,7 @@ class WaitableEvent; |
namespace net { |
class HostResolver; |
class SSLConfigService; |
+class ProxyService; |
class TransportSecurityState; |
class URLRequestContextGetter; |
} |
@@ -318,6 +319,10 @@ class Predictor { |
FRIEND_TEST_ALL_PREFIXES(PredictorTest, SingleLookupTestWithDisabledAdvisor); |
FRIEND_TEST_ALL_PREFIXES(PredictorTest, SingleLookupTestWithEnabledAdvisor); |
FRIEND_TEST_ALL_PREFIXES(PredictorTest, TestSimplePreconnectAdvisor); |
+ FRIEND_TEST_ALL_PREFIXES(PredictorTest, NoProxyService); |
+ FRIEND_TEST_ALL_PREFIXES(PredictorTest, ProxyDefinitelyEnabled); |
+ FRIEND_TEST_ALL_PREFIXES(PredictorTest, ProxyDefinitelyNotEnabled); |
+ FRIEND_TEST_ALL_PREFIXES(PredictorTest, ProxyMaybeEnabled); |
friend class WaitForResolutionHelper; // For testing. |
class LookupRequest; |
@@ -501,6 +506,13 @@ class Predictor { |
UrlInfo::ResolutionMotivation motivation, |
bool is_preconnect); |
+ // If we can determine immediately (i.e. synchronously) that requests to this |
+ // URL would go through a proxy, then return true. Otherwise, return false. |
+ // This is used to avoid issuing DNS requests when a fixed proxy configuration |
+ // is in place, which is important if the unproxied DNS may contain incorrect |
+ // entries. |
+ bool WouldDefinitelyProxyURL(const GURL& url); |
+ |
// Applies the HSTS redirect for |url|, if any. |
GURL GetHSTSRedirectOnIOThread(const GURL& url); |
@@ -558,6 +570,9 @@ class Predictor { |
// redirects). |
net::SSLConfigService* ssl_config_service_; |
+ // The ProxyService, used to determine whether preresolve is useful. |
+ net::ProxyService* proxy_service_; |
+ |
// Are we currently using preconnection, rather than just DNS resolution, for |
// subresources and omni-box search URLs. |
// This is false if and only if disabled by a command line switch. |