diff options
Diffstat (limited to 'chrome/browser/io_thread.h')
-rw-r--r-- | chrome/browser/io_thread.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h index d3bf4e7..2c8362d 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(). |