Index: chrome/browser/io_thread.h |
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h |
index f9127652a8c1538cd6137c0dfc365b04d15d3365..a678034c66fecf4d37b663984809cb88ff56e690 100644 |
--- a/chrome/browser/io_thread.h |
+++ b/chrome/browser/io_thread.h |
@@ -19,7 +19,9 @@ |
class ChromeNetLog; |
class ChromeURLRequestContextGetter; |
class ListValue; |
+class PrefProxyConfigTracker; |
class PrefService; |
+class URLRequestContextGetter; |
namespace chrome_browser_net { |
class ConnectInterceptor; |
@@ -32,6 +34,7 @@ class DnsRRResolver; |
class HostResolver; |
class HttpAuthHandlerFactory; |
class HttpTransactionFactory; |
+class ProxyConfigService; |
class ProxyScriptFetcher; |
class ProxyService; |
class SSLConfigService; |
@@ -56,6 +59,12 @@ class IOThread : public BrowserProcessSubThread { |
scoped_ptr<net::URLSecurityManager> url_security_manager; |
ChromeNetworkDelegate network_delegate; |
scoped_refptr<net::URLRequestContext> proxy_script_fetcher_context; |
+ scoped_ptr<net::HttpTransactionFactory> system_http_transaction_factory; |
+ scoped_refptr<net::ProxyService> system_proxy_service; |
+ // NOTE(willchan): This request context is unusable until a system |
+ // SSLConfigService is provided that doesn't rely on |
+ // Profiles. Do NOT use this yet. |
+ scoped_refptr<net::URLRequestContext> system_request_context; |
}; |
// |net_log| must either outlive the IOThread or be NULL. |
@@ -68,6 +77,10 @@ class IOThread : public BrowserProcessSubThread { |
ChromeNetLog* net_log(); |
+ // Triggers an asynchronous initialization of the system request context. |
+ // Takes ownership of config_service. Needs to be called from UI thread. |
+ void InitSystemRequestContext(net::ProxyConfigService* config_service); |
+ |
// Initializes the network predictor, which induces DNS pre-resolution and/or |
// TCP/IP preconnections. |prefetching_enabled| indicates whether or not DNS |
// prefetching should be enabled, and |preconnect_enabled| controls whether |
@@ -99,6 +112,9 @@ class IOThread : public BrowserProcessSubThread { |
// IOThread's message loop. |
void ChangedToOnTheRecord(); |
+ // Returns a getter for the URLRequestContext. Only called on the UI thread. |
+ scoped_refptr<URLRequestContextGetter> system_url_request_context_getter(); |
+ |
// Clears the host cache. Intended to be used to prevent exposing recently |
// visited sites on about:net-internals/#dns and about:dns pages. Must be |
// called on the IO thread. |
@@ -115,6 +131,9 @@ class IOThread : public BrowserProcessSubThread { |
net::HttpAuthHandlerFactory* CreateDefaultAuthHandlerFactory( |
net::HostResolver* resolver); |
+ void InitSystemRequestContextOnIOThread( |
+ net::ProxyConfigService* config_service); |
+ |
void InitNetworkPredictorOnIOThread( |
bool prefetching_enabled, |
base::TimeDelta max_dns_queue_delay, |
@@ -165,6 +184,8 @@ class IOThread : public BrowserProcessSubThread { |
// IOThread::CleanUpAfterMessageLoopDestruction(). |
std::list<ChromeURLRequestContextGetter*> url_request_context_getters_; |
+ scoped_refptr<URLRequestContextGetter> system_url_request_context_getter_; |
+ |
DISALLOW_COPY_AND_ASSIGN(IOThread); |
}; |