| Index: chrome/browser/profiles/off_the_record_profile_io_data.cc
|
| diff --git a/chrome/browser/profiles/off_the_record_profile_io_data.cc b/chrome/browser/profiles/off_the_record_profile_io_data.cc
|
| index dfe2a8b1e19b928a7da88394907faf3bccb9f12a..26b382e763d08c4d1ebac87a64b2c72bf46dc71a 100644
|
| --- a/chrome/browser/profiles/off_the_record_profile_io_data.cc
|
| +++ b/chrome/browser/profiles/off_the_record_profile_io_data.cc
|
| @@ -25,6 +25,7 @@
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/common/url_constants.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "content/public/browser/content_browser_client.h"
|
| #include "content/public/browser/resource_context.h"
|
| #include "extensions/common/constants.h"
|
| #include "net/base/default_server_bound_cert_store.h"
|
| @@ -71,15 +72,8 @@ OffTheRecordProfileIOData::Handle::GetResourceContextNoInit() const {
|
| scoped_refptr<ChromeURLRequestContextGetter>
|
| OffTheRecordProfileIOData::Handle::CreateMainRequestContextGetter(
|
| scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - blob_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - file_system_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| developer_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_devtools_protocol_handler) const {
|
| + content::ProtocolHandlerMap* protocol_handlers) const {
|
| // TODO(oshima): Re-enable when ChromeOS only accesses the profile on the UI
|
| // thread.
|
| #if !defined(OS_CHROMEOS)
|
| @@ -89,10 +83,8 @@ OffTheRecordProfileIOData::Handle::CreateMainRequestContextGetter(
|
| DCHECK(!main_request_context_getter_);
|
| main_request_context_getter_ =
|
| ChromeURLRequestContextGetter::CreateOffTheRecord(
|
| - profile_, io_data_, blob_protocol_handler.Pass(),
|
| - file_system_protocol_handler.Pass(),
|
| - developer_protocol_handler.Pass(), chrome_protocol_handler.Pass(),
|
| - chrome_devtools_protocol_handler.Pass());
|
| + profile_, io_data_, developer_protocol_handler.Pass(),
|
| + protocol_handlers);
|
| return main_request_context_getter_;
|
| }
|
|
|
| @@ -129,15 +121,8 @@ OffTheRecordProfileIOData::Handle::CreateIsolatedAppRequestContextGetter(
|
| const base::FilePath& partition_path,
|
| bool in_memory,
|
| scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - blob_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - file_system_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| developer_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_devtools_protocol_handler) const {
|
| + content::ProtocolHandlerMap* protocol_handlers) const {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| DCHECK(!partition_path.empty());
|
| LazyInitialize();
|
| @@ -153,9 +138,7 @@ OffTheRecordProfileIOData::Handle::CreateIsolatedAppRequestContextGetter(
|
| ChromeURLRequestContextGetter* context =
|
| ChromeURLRequestContextGetter::CreateOffTheRecordForIsolatedApp(
|
| profile_, io_data_, descriptor, protocol_handler_interceptor.Pass(),
|
| - blob_protocol_handler.Pass(), file_system_protocol_handler.Pass(),
|
| - developer_protocol_handler.Pass(), chrome_protocol_handler.Pass(),
|
| - chrome_devtools_protocol_handler.Pass());
|
| + developer_protocol_handler.Pass(), protocol_handlers);
|
| app_request_context_getter_map_[descriptor] = context;
|
|
|
| return context;
|
| @@ -186,15 +169,8 @@ OffTheRecordProfileIOData::~OffTheRecordProfileIOData() {
|
| void OffTheRecordProfileIOData::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::ProtocolHandler>
|
| developer_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_devtools_protocol_handler) const {
|
| + content::ProtocolHandlerMap* protocol_handlers) const {
|
| ChromeURLRequestContext* main_context = main_request_context();
|
|
|
| IOThread* const io_thread = profile_params->io_thread;
|
| @@ -254,19 +230,8 @@ void OffTheRecordProfileIOData::InitializeInternal(
|
| scoped_ptr<net::URLRequestJobFactoryImpl> main_job_factory(
|
| new net::URLRequestJobFactoryImpl());
|
|
|
| - bool set_protocol = main_job_factory->SetProtocolHandler(
|
| - chrome::kBlobScheme, blob_protocol_handler.release());
|
| - DCHECK(set_protocol);
|
| - set_protocol = main_job_factory->SetProtocolHandler(
|
| - chrome::kFileSystemScheme, file_system_protocol_handler.release());
|
| - DCHECK(set_protocol);
|
| - set_protocol = main_job_factory->SetProtocolHandler(
|
| - chrome::kChromeUIScheme, chrome_protocol_handler.release());
|
| - DCHECK(set_protocol);
|
| - set_protocol = main_job_factory->SetProtocolHandler(
|
| - chrome::kChromeDevToolsScheme,
|
| - chrome_devtools_protocol_handler.release());
|
| - DCHECK(set_protocol);
|
| + content::ContentBrowserClient::InstallProtocolHandlers(main_job_factory.get(),
|
| + protocol_handlers);
|
| main_job_factory_ = SetUpJobFactoryDefaults(
|
| main_job_factory.Pass(),
|
| profile_params->protocol_handler_interceptor.Pass(),
|
| @@ -337,15 +302,8 @@ OffTheRecordProfileIOData::InitializeAppRequestContext(
|
| scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory>
|
| protocol_handler_interceptor,
|
| scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - blob_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - file_system_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| developer_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_devtools_protocol_handler) const {
|
| + content::ProtocolHandlerMap* protocol_handlers) const {
|
| AppRequestContext* context = new AppRequestContext(load_time_stats());
|
|
|
| // Copy most state from the main context.
|
| @@ -368,19 +326,8 @@ OffTheRecordProfileIOData::InitializeAppRequestContext(
|
|
|
| scoped_ptr<net::URLRequestJobFactoryImpl> job_factory(
|
| new net::URLRequestJobFactoryImpl());
|
| - bool set_protocol = job_factory->SetProtocolHandler(
|
| - chrome::kBlobScheme, blob_protocol_handler.release());
|
| - DCHECK(set_protocol);
|
| - set_protocol = job_factory->SetProtocolHandler(
|
| - chrome::kFileSystemScheme, file_system_protocol_handler.release());
|
| - DCHECK(set_protocol);
|
| - set_protocol = job_factory->SetProtocolHandler(
|
| - chrome::kChromeUIScheme, chrome_protocol_handler.release());
|
| - DCHECK(set_protocol);
|
| - set_protocol = job_factory->SetProtocolHandler(
|
| - chrome::kChromeDevToolsScheme,
|
| - chrome_devtools_protocol_handler.release());
|
| - DCHECK(set_protocol);
|
| + content::ContentBrowserClient::InstallProtocolHandlers(job_factory.get(),
|
| + protocol_handlers);
|
| scoped_ptr<net::URLRequestJobFactory> top_job_factory;
|
| top_job_factory = SetUpJobFactoryDefaults(job_factory.Pass(),
|
| protocol_handler_interceptor.Pass(),
|
| @@ -414,24 +361,14 @@ OffTheRecordProfileIOData::AcquireIsolatedAppRequestContext(
|
| scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory>
|
| protocol_handler_interceptor,
|
| scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - blob_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - file_system_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| developer_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_protocol_handler,
|
| - scoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
|
| - chrome_devtools_protocol_handler) const {
|
| + content::ProtocolHandlerMap* protocol_handlers) const {
|
| // We create per-app contexts on demand, unlike the others above.
|
| ChromeURLRequestContext* app_request_context =
|
| InitializeAppRequestContext(main_context, partition_descriptor,
|
| protocol_handler_interceptor.Pass(),
|
| - blob_protocol_handler.Pass(),
|
| - file_system_protocol_handler.Pass(),
|
| developer_protocol_handler.Pass(),
|
| - chrome_protocol_handler.Pass(),
|
| - chrome_devtools_protocol_handler.Pass());
|
| + protocol_handlers);
|
| DCHECK(app_request_context);
|
| return app_request_context;
|
| }
|
|
|