| Index: chrome/browser/io_thread.h
|
| diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
|
| index 10cac6fa9715f5606b848e0743e1a5369e79224b..34d006bc6e86585c6d0d59e6a66657ddf57b1b4c 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.
|
| @@ -98,6 +108,9 @@ class IOThread : public BrowserProcessSubThread {
|
| // Handles changing to On The Record mode, discarding confidential data.
|
| void ChangedToOnTheRecord();
|
|
|
| + // Returns a getter for the URLRequestContext. Only called on the UI thread.
|
| + scoped_refptr<URLRequestContextGetter> system_url_request_context_getter();
|
| +
|
| // Clear all network stack history, including the host cache, as well as
|
| // speculative data about subresources of visited sites, and startup-time
|
| // navigations.
|
| @@ -109,11 +122,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,
|
| @@ -169,6 +188,15 @@ 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_;
|
| +
|
| + PrefProxyConfigTracker* pref_proxy_config_tracker_; // Weak pointer.
|
| +
|
| + // Weak pointer owned by BrowserProcessImpl, outlives IOThread.
|
| + PrefService* local_state_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(IOThread);
|
| };
|
|
|
|
|