Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1915)

Unified Diff: chrome/browser/io_thread.h

Issue 6292017: Extended: Add "system" URLRequestContext (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cleanup Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698