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

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 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);
};

Powered by Google App Engine
This is Rietveld 408576698