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 ef91f6a980b91fd383a248879d98f70c9a4de6db..705694524024d73a0fa6d5f512fdeaddfc56f583 100644 |
| --- a/chrome/browser/profiles/profile_io_data.h |
| +++ b/chrome/browser/profiles/profile_io_data.h |
| @@ -78,9 +78,19 @@ class ProfileIOData { |
| content::ResourceContext* GetResourceContext() const; |
| ChromeURLDataManagerBackend* GetChromeURLDataManagerBackend() const; |
| - // These should only be called at most once each. Ownership is reversed when |
| - // they get called, from ProfileIOData owning ChromeURLRequestContext to vice |
| - // versa. |
| + // Initializes the ProfileIOData object and primes the RequestContext |
| + // generation. Must be called prior to any Get*RequestContext() methods. |
| + // The basic logic is implemented here. The specific initialization |
|
awong
2012/12/13 01:06:15
Comments on lines 83 to 85 should be moved into th
pauljensen
2012/12/13 17:58:44
Done.
|
| + // is done in InitializeInternal(), implemented by subtypes. Static helper |
| + // functions have been provided to assist in common operations. |
| + void Init( |
| + 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* GetMainRequestContext() const; |
| ChromeURLRequestContext* GetMediaRequestContext() const; |
| ChromeURLRequestContext* GetExtensionsRequestContext() const; |
| @@ -88,7 +98,13 @@ class ProfileIOData { |
| 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 +265,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 +304,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 +336,6 @@ class ProfileIOData { |
| private: |
| friend class ProfileIOData; |
| - void EnsureInitialized(); |
| - |
| ProfileIOData* const io_data_; |
| net::HostResolver* host_resolver_; |
| @@ -341,7 +353,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 InitializeInternal( |
| + 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 +371,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 +394,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, |