| Index: chrome/browser/io_thread.h
|
| diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
|
| index f9127652a8c1538cd6137c0dfc365b04d15d3365..3d1e9e68a17e6bcf19a2f18432d4211a97b18f9b 100644
|
| --- a/chrome/browser/io_thread.h
|
| +++ b/chrome/browser/io_thread.h
|
| @@ -19,7 +19,10 @@
|
| class ChromeNetLog;
|
| class ChromeURLRequestContextGetter;
|
| class ListValue;
|
| +class PrefProxyConfigTracker;
|
| class PrefService;
|
| +class SystemURLRequestContextGetter;
|
| +class URLRequestContextGetter;
|
|
|
| namespace chrome_browser_net {
|
| class ConnectInterceptor;
|
| @@ -32,6 +35,7 @@ class DnsRRResolver;
|
| class HostResolver;
|
| class HttpAuthHandlerFactory;
|
| class HttpTransactionFactory;
|
| +class ProxyConfigService;
|
| class ProxyScriptFetcher;
|
| class ProxyService;
|
| class SSLConfigService;
|
| @@ -56,6 +60,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 +78,11 @@ class IOThread : public BrowserProcessSubThread {
|
|
|
| ChromeNetLog* net_log();
|
|
|
| + // Passes ownership of the |system_proxy_config_service| to be used by
|
| + // the |system_request_context| to the IO thread.
|
| + void SetSystemProxyConfigService(
|
| + net::ProxyConfigService* system_proxy_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 +114,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.
|
| @@ -110,11 +128,17 @@ class IOThread : public BrowserProcessSubThread {
|
| virtual void CleanUpAfterMessageLoopDestruction();
|
|
|
| private:
|
| + friend class SystemURLRequestContextGetter;
|
| +
|
| static void RegisterPrefs(PrefService* local_state);
|
|
|
| net::HttpAuthHandlerFactory* CreateDefaultAuthHandlerFactory(
|
| net::HostResolver* resolver);
|
|
|
| + // Lazy initialization of system request context for
|
| + // SystemURLRequestContextGetter. To be called on IO thread.
|
| + void InitSystemRequestContext();
|
| +
|
| void InitNetworkPredictorOnIOThread(
|
| bool prefetching_enabled,
|
| base::TimeDelta max_dns_queue_delay,
|
| @@ -165,6 +189,10 @@ class IOThread : public BrowserProcessSubThread {
|
| // IOThread::CleanUpAfterMessageLoopDestruction().
|
| std::list<ChromeURLRequestContextGetter*> url_request_context_getters_;
|
|
|
| + scoped_refptr<URLRequestContextGetter> system_url_request_context_getter_;
|
| +
|
| + scoped_ptr<net::ProxyConfigService> system_proxy_config_service_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(IOThread);
|
| };
|
|
|
|
|