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

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: Addressed comments 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..a678034c66fecf4d37b663984809cb88ff56e690 100644
--- a/chrome/browser/io_thread.h
+++ b/chrome/browser/io_thread.h
@@ -19,7 +19,9 @@
class ChromeNetLog;
class ChromeURLRequestContextGetter;
class ListValue;
+class PrefProxyConfigTracker;
class PrefService;
+class URLRequestContextGetter;
namespace chrome_browser_net {
class ConnectInterceptor;
@@ -32,6 +34,7 @@ class DnsRRResolver;
class HostResolver;
class HttpAuthHandlerFactory;
class HttpTransactionFactory;
+class ProxyConfigService;
class ProxyScriptFetcher;
class ProxyService;
class SSLConfigService;
@@ -56,6 +59,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 +77,10 @@ class IOThread : public BrowserProcessSubThread {
ChromeNetLog* net_log();
+ // Triggers an asynchronous initialization of the system request context.
+ // Takes ownership of config_service. Needs to be called from UI thread.
+ void InitSystemRequestContext(net::ProxyConfigService* 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 +112,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.
@@ -115,6 +131,9 @@ class IOThread : public BrowserProcessSubThread {
net::HttpAuthHandlerFactory* CreateDefaultAuthHandlerFactory(
net::HostResolver* resolver);
+ void InitSystemRequestContextOnIOThread(
+ net::ProxyConfigService* config_service);
+
void InitNetworkPredictorOnIOThread(
bool prefetching_enabled,
base::TimeDelta max_dns_queue_delay,
@@ -165,6 +184,8 @@ class IOThread : public BrowserProcessSubThread {
// IOThread::CleanUpAfterMessageLoopDestruction().
std::list<ChromeURLRequestContextGetter*> url_request_context_getters_;
+ scoped_refptr<URLRequestContextGetter> system_url_request_context_getter_;
+
DISALLOW_COPY_AND_ASSIGN(IOThread);
};

Powered by Google App Engine
This is Rietveld 408576698