Index: chrome/browser/profiles/profile_io_data.cc |
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc |
index 7d6f2a0fa55281ecb459a4eb5ccdba83955ef172..73e09f8557c09f1cfc3aa3d9ed3e194ef01025af 100644 |
--- a/chrome/browser/profiles/profile_io_data.cc |
+++ b/chrome/browser/profiles/profile_io_data.cc |
@@ -365,19 +365,13 @@ content::ResourceContext* ProfileIOData::GetResourceContext() const { |
ChromeURLDataManagerBackend* |
ProfileIOData::GetChromeURLDataManagerBackend() const { |
- LazyInitialize(); |
+ DCHECK(initialized_); |
return chrome_url_data_manager_backend_.get(); |
} |
ChromeURLRequestContext* |
-ProfileIOData::GetMainRequestContext() const { |
- LazyInitialize(); |
- return main_request_context_.get(); |
-} |
- |
-ChromeURLRequestContext* |
ProfileIOData::GetMediaRequestContext() const { |
- LazyInitialize(); |
+ DCHECK(initialized_); |
ChromeURLRequestContext* context = |
AcquireMediaRequestContext(); |
DCHECK(context); |
@@ -386,7 +380,7 @@ ProfileIOData::GetMediaRequestContext() const { |
ChromeURLRequestContext* |
ProfileIOData::GetExtensionsRequestContext() const { |
- LazyInitialize(); |
+ DCHECK(initialized_); |
return extensions_request_context_.get(); |
} |
@@ -395,15 +389,22 @@ ProfileIOData::GetIsolatedAppRequestContext( |
ChromeURLRequestContext* main_context, |
const StoragePartitionDescriptor& partition_descriptor, |
scoped_ptr<net::URLRequestJobFactory::Interceptor> |
- protocol_handler_interceptor) const { |
- LazyInitialize(); |
+ 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 { |
+ DCHECK(initialized_); |
ChromeURLRequestContext* context = NULL; |
if (ContainsKey(app_request_context_map_, partition_descriptor)) { |
context = app_request_context_map_[partition_descriptor]; |
} else { |
context = AcquireIsolatedAppRequestContext( |
- main_context, partition_descriptor, |
- protocol_handler_interceptor.Pass()); |
+ main_context, partition_descriptor, protocol_handler_interceptor.Pass(), |
+ blob_protocol_handler.Pass(), file_system_protocol_handler.Pass(), |
+ developer_protocol_handler.Pass()); |
app_request_context_map_[partition_descriptor] = context; |
} |
DCHECK(context); |
@@ -414,7 +415,7 @@ ChromeURLRequestContext* |
ProfileIOData::GetIsolatedMediaRequestContext( |
ChromeURLRequestContext* app_context, |
const StoragePartitionDescriptor& partition_descriptor) const { |
- LazyInitialize(); |
+ DCHECK(initialized_); |
ChromeURLRequestContext* context = NULL; |
if (ContainsKey(isolated_media_request_context_map_, partition_descriptor)) { |
context = isolated_media_request_context_map_[partition_descriptor]; |
@@ -488,19 +489,15 @@ ProfileIOData::ResourceContext::ResourceContext(ProfileIOData* io_data) |
ProfileIOData::ResourceContext::~ResourceContext() {} |
-void ProfileIOData::ResourceContext::EnsureInitialized() { |
- io_data_->LazyInitialize(); |
-} |
- |
net::HostResolver* ProfileIOData::ResourceContext::GetHostResolver() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- EnsureInitialized(); |
+ DCHECK(io_data_->initialized_); |
return host_resolver_; |
} |
net::URLRequestContext* ProfileIOData::ResourceContext::GetRequestContext() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- EnsureInitialized(); |
+ DCHECK(io_data_->initialized_); |
return request_context_; |
} |
@@ -515,10 +512,15 @@ std::string ProfileIOData::GetSSLSessionCacheShard() { |
return StringPrintf("profile/%u", ssl_session_cache_instance++); |
} |
-void ProfileIOData::LazyInitialize() const { |
+ChromeURLRequestContext* ProfileIOData::GetMainRequestContext( |
+ 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 { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- if (initialized_) |
- return; |
+ DCHECK(!initialized_); |
// TODO(jhawkins): Remove once crbug.com/102004 is fixed. |
CHECK(initialized_on_UI_thread_); |
@@ -590,10 +592,15 @@ void ProfileIOData::LazyInitialize() const { |
profile_params_->resource_prefetch_predictor_observer_.release()); |
} |
- LazyInitializeInternal(profile_params_.get()); |
+ LazyInitializeInternal(profile_params_.get(), |
+ blob_protocol_handler.Pass(), |
+ file_system_protocol_handler.Pass(), |
+ developer_protocol_handler.Pass()); |
profile_params_.reset(); |
initialized_ = true; |
+ |
+ return main_request_context_.get(); |
} |
void ProfileIOData::ApplyProfileParamsToContext( |