| Index: chrome/browser/io_thread.h
|
| diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
|
| index d3bf4e70f5084e9a7ecc323a829fe66e408253ce..2c8362dd71a7db083945c70d5a43bbec4193aa8c 100644
|
| --- a/chrome/browser/io_thread.h
|
| +++ b/chrome/browser/io_thread.h
|
| @@ -19,7 +19,10 @@ class ChromeNetLog;
|
| class ChromeURLRequestContextGetter;
|
| class ExtensionEventRouterForwarder;
|
| class ListValue;
|
| +class PrefProxyConfigTracker;
|
| class PrefService;
|
| +class SystemURLRequestContextGetter;
|
| +class URLRequestContextGetter;
|
|
|
| namespace chrome_browser_net {
|
| class ConnectInterceptor;
|
| @@ -33,6 +36,7 @@ class HostResolver;
|
| class HttpAuthHandlerFactory;
|
| class HttpTransactionFactory;
|
| class NetworkDelegate;
|
| +class ProxyConfigService;
|
| class ProxyScriptFetcher;
|
| class ProxyService;
|
| class SSLConfigService;
|
| @@ -58,6 +62,12 @@ class IOThread : public BrowserProcessSubThread {
|
| proxy_script_fetcher_http_transaction_factory;
|
| scoped_ptr<net::URLSecurityManager> url_security_manager;
|
| 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;
|
| scoped_refptr<ExtensionEventRouterForwarder>
|
| extension_event_router_forwarder;
|
| };
|
| @@ -104,6 +114,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.
|
| + 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.
|
| @@ -114,11 +127,19 @@ class IOThread : public BrowserProcessSubThread {
|
| virtual void CleanUp();
|
|
|
| private:
|
| + // Provide SystemURLRequestContextGetter with access to
|
| + // InitSystemRequestContext().
|
| + 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,
|
| @@ -174,6 +195,12 @@ class IOThread : public BrowserProcessSubThread {
|
| chrome_browser_net::ConnectInterceptor* speculative_interceptor_;
|
| chrome_browser_net::Predictor* predictor_;
|
|
|
| + scoped_ptr<net::ProxyConfigService> system_proxy_config_service_;
|
| +
|
| + scoped_refptr<PrefProxyConfigTracker> pref_proxy_config_tracker_;
|
| +
|
| + scoped_refptr<URLRequestContextGetter> system_url_request_context_getter_;
|
| +
|
| // Keeps track of all live ChromeURLRequestContextGetters, so the
|
| // ChromeURLRequestContexts can be released during
|
| // IOThread::CleanUp().
|
|
|