Index: chrome/browser/profiles/profile_io_data.h |
diff --git a/chrome/browser/profiles/profile_io_data.h b/chrome/browser/profiles/profile_io_data.h |
index 22e381f1a9f61c20bbe2118c0061be7f8702e8f2..65a94f6b17a34114cf390b1a153695cc3d7d67ca 100644 |
--- a/chrome/browser/profiles/profile_io_data.h |
+++ b/chrome/browser/profiles/profile_io_data.h |
@@ -82,9 +82,11 @@ class ProfileIOData { |
ChromeURLRequestContext* GetExtensionsRequestContext() const; |
ChromeURLRequestContext* GetIsolatedAppRequestContext( |
ChromeURLRequestContext* main_context, |
- const std::string& app_id) const; |
+ const std::string& app_id, |
+ scoped_ptr<net::URLRequestJobFactory::Interceptor> |
+ protocol_handler_interceptor) const; |
ChromeURLRequestContext* GetIsolatedMediaRequestContext( |
- ChromeURLRequestContext* media_context, |
+ ChromeURLRequestContext* app_context, |
const std::string& app_id) const; |
// These are useful when the Chrome layer is called from the content layer |
@@ -146,7 +148,8 @@ class ProfileIOData { |
explicit MediaRequestContext( |
chrome_browser_net::LoadTimeStats* load_time_stats); |
- void SetHttpTransactionFactory(net::HttpTransactionFactory* http_factory); |
+ void SetHttpTransactionFactory( |
+ scoped_ptr<net::HttpTransactionFactory> http_factory); |
private: |
virtual ~MediaRequestContext(); |
@@ -162,13 +165,16 @@ class ProfileIOData { |
chrome_browser_net::LoadTimeStats* load_time_stats); |
void SetCookieStore(net::CookieStore* cookie_store); |
- void SetHttpTransactionFactory(net::HttpTransactionFactory* http_factory); |
+ void SetHttpTransactionFactory( |
+ scoped_ptr<net::HttpTransactionFactory> http_factory); |
+ void SetJobFactory(scoped_ptr<net::URLRequestJobFactory> job_factory); |
private: |
virtual ~AppRequestContext(); |
scoped_refptr<net::CookieStore> cookie_store_; |
scoped_ptr<net::HttpTransactionFactory> http_factory_; |
+ scoped_ptr<net::URLRequestJobFactory> job_factory_; |
}; |
// Created on the UI thread, read on the IO thread during ProfileIOData lazy |
@@ -198,7 +204,7 @@ class ProfileIOData { |
// the URLRequestJobFactory on the IO thread. The consumer MUST take |
// ownership of the object by calling release() on this pointer. |
scoped_ptr<net::URLRequestJobFactory::Interceptor> |
- protocol_handler_url_interceptor; |
+ protocol_handler_interceptor; |
// We need to initialize the ProxyConfigService from the UI thread |
// because on linux it relies on initializing things through gconf, |
@@ -217,7 +223,13 @@ class ProfileIOData { |
void InitializeOnUIThread(Profile* profile); |
void ApplyProfileParamsToContext(ChromeURLRequestContext* context) const; |
- void SetUpJobFactoryDefaults(net::URLRequestJobFactory* job_factory) const; |
+ void SetUpJobFactoryDefaults( |
+ net::URLRequestJobFactory* job_factory, |
+ scoped_ptr<net::URLRequestJobFactory::Interceptor> |
+ protocol_handler_interceptor, |
+ net::NetworkDelegate* network_delegate, |
+ net::FtpTransactionFactory* ftp_transaction_factory, |
+ net::FtpAuthCache* ftp_auth_cache) const; |
// Lazy initializes the ProfileIOData object the first time a request context |
// is requested. The lazy logic is implemented here. The actual initialization |
@@ -309,7 +321,9 @@ class ProfileIOData { |
// isolated app. |
virtual ChromeURLRequestContext* InitializeAppRequestContext( |
ChromeURLRequestContext* main_context, |
- const std::string& app_id) const = 0; |
+ const std::string& app_id, |
+ scoped_ptr<net::URLRequestJobFactory::Interceptor> |
+ protocol_handler_interceptor) const = 0; |
// Does an on-demand initialization of a media RequestContext for the given |
// isolated app. |
@@ -324,7 +338,9 @@ class ProfileIOData { |
virtual ChromeURLRequestContext* |
AcquireIsolatedAppRequestContext( |
ChromeURLRequestContext* main_context, |
- const std::string& app_id) const = 0; |
+ const std::string& app_id, |
+ scoped_ptr<net::URLRequestJobFactory::Interceptor> |
+ protocol_handler_interceptor) const = 0; |
virtual ChromeURLRequestContext* |
AcquireIsolatedMediaRequestContext( |
ChromeURLRequestContext* app_context, |
@@ -375,6 +391,7 @@ class ProfileIOData { |
mutable scoped_ptr<policy::URLBlacklistManager> url_blacklist_manager_; |
// Pointed to by URLRequestContext. |
+ mutable scoped_refptr<ExtensionInfoMap> extension_info_map_; |
mutable scoped_ptr<ChromeURLDataManagerBackend> |
chrome_url_data_manager_backend_; |
mutable scoped_ptr<net::ServerBoundCertService> server_bound_cert_service_; |
@@ -403,7 +420,6 @@ class ProfileIOData { |
mutable scoped_ptr<ResourceContext> resource_context_; |
- mutable scoped_refptr<ExtensionInfoMap> extension_info_map_; |
mutable scoped_refptr<CookieSettings> cookie_settings_; |
mutable scoped_ptr<chrome_browser_net::ResourcePrefetchPredictorObserver> |