Chromium Code Reviews| 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 0fa35ba64e95cf5ff7ea86bcf123549be1ab9a3c..d38659dcbedd7085fb0a1a46368d8fdceb1e2342 100644 |
| --- a/chrome/browser/profiles/profile_io_data.h |
| +++ b/chrome/browser/profiles/profile_io_data.h |
| @@ -81,14 +81,31 @@ class ProfileIOData { |
| // These should only be called at most once each. Ownership is reversed when |
| // they get called, from ProfileIOData owning ChromeURLRequestContext to vice |
| // versa. |
| - ChromeURLRequestContext* GetMainRequestContext() const; |
| + |
| + // Lazy initializes the ProfileIOData object the first time a request context |
| + // is requested. The lazy logic is implemented here. The actual initialization |
| + // is done in LazyInitializeInternal(), implemented by subtypes. Static helper |
| + // functions have been provided to assist in common operations. |
| + ChromeURLRequestContext* GetMainRequestContext( |
|
awong
2012/12/12 03:44:37
Should this be Init()?
GetMainRequestContext() im
pauljensen
2012/12/12 18:39:37
I agree it should be Init(). Done.
|
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + blob_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + file_system_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::Interceptor> |
| + developer_protocol_handler) const; |
| ChromeURLRequestContext* GetMediaRequestContext() const; |
| ChromeURLRequestContext* GetExtensionsRequestContext() const; |
| ChromeURLRequestContext* GetIsolatedAppRequestContext( |
| ChromeURLRequestContext* main_context, |
| const StoragePartitionDescriptor& partition_descriptor, |
| scoped_ptr<net::URLRequestJobFactory::Interceptor> |
| - protocol_handler_interceptor) const; |
| + protocol_handler_interceptor, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + blob_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + file_system_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::Interceptor> |
| + developer_protocol_handler) const; |
| ChromeURLRequestContext* GetIsolatedMediaRequestContext( |
| ChromeURLRequestContext* app_context, |
| const StoragePartitionDescriptor& partition_descriptor) const; |
| @@ -249,12 +266,6 @@ class ProfileIOData { |
| 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 |
| - // is done in LazyInitializeInternal(), implemented by subtypes. Static helper |
| - // functions have been provided to assist in common operations. |
| - void LazyInitialize() const; |
| - |
| // Called when the profile is destroyed. |
| void ShutdownOnUIThread(); |
| @@ -294,6 +305,10 @@ class ProfileIOData { |
| return load_time_stats_; |
| } |
| + bool initialized() const { |
| + return initialized_; |
| + } |
| + |
| // Destroys the ResourceContext first, to cancel any URLRequests that are |
| // using it still, before we destroy the member variables that those |
| // URLRequests may be accessing. |
| @@ -322,8 +337,6 @@ class ProfileIOData { |
| private: |
| friend class ProfileIOData; |
| - void EnsureInitialized(); |
| - |
| ProfileIOData* const io_data_; |
| net::HostResolver* host_resolver_; |
| @@ -341,7 +354,14 @@ class ProfileIOData { |
| // Does the actual initialization of the ProfileIOData subtype. Subtypes |
| // should use the static helper functions above to implement this. |
| - virtual void LazyInitializeInternal(ProfileParams* profile_params) const = 0; |
| + virtual void LazyInitializeInternal( |
| + ProfileParams* profile_params, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + blob_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + file_system_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::Interceptor> |
| + developer_protocol_handler) const = 0; |
| // Initializes the RequestContext for extensions. |
| virtual void InitializeExtensionsRequestContext( |
| @@ -352,7 +372,13 @@ class ProfileIOData { |
| ChromeURLRequestContext* main_context, |
| const StoragePartitionDescriptor& details, |
| scoped_ptr<net::URLRequestJobFactory::Interceptor> |
| - protocol_handler_interceptor) const = 0; |
| + protocol_handler_interceptor, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + blob_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + file_system_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::Interceptor> |
| + developer_protocol_handler) const = 0; |
| // Does an on-demand initialization of a media RequestContext for the given |
| // isolated app. |
| @@ -369,7 +395,13 @@ class ProfileIOData { |
| ChromeURLRequestContext* main_context, |
| const StoragePartitionDescriptor& partition_descriptor, |
| scoped_ptr<net::URLRequestJobFactory::Interceptor> |
| - protocol_handler_interceptor) const = 0; |
| + protocol_handler_interceptor, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + blob_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| + file_system_protocol_handler, |
| + scoped_ptr<net::URLRequestJobFactory::Interceptor> |
| + developer_protocol_handler) const = 0; |
| virtual ChromeURLRequestContext* |
| AcquireIsolatedMediaRequestContext( |
| ChromeURLRequestContext* app_context, |