| Index: net/url_request/url_request_context_builder.cc
|
| diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
|
| index 28220ed7d568fe5fffcc91be493b13d153ab02a6..bd5d0e12b53b0a163933297ae22b2ebc8ef14ae1 100644
|
| --- a/net/url_request/url_request_context_builder.cc
|
| +++ b/net/url_request/url_request_context_builder.cc
|
| @@ -26,9 +26,13 @@
|
| #include "net/http/http_network_session.h"
|
| #include "net/http/http_server_properties_impl.h"
|
| #include "net/proxy/proxy_service.h"
|
| +#include "net/url_request/data_protocol_handler.h"
|
| +#include "net/url_request/file_protocol_handler.h"
|
| +#include "net/url_request/ftp_protocol_handler.h"
|
| #include "net/url_request/static_http_user_agent_settings.h"
|
| #include "net/url_request/url_request_context.h"
|
| #include "net/url_request/url_request_context_storage.h"
|
| +#include "net/url_request/url_request_job_factory_impl.h"
|
|
|
| namespace net {
|
|
|
| @@ -180,7 +184,9 @@ URLRequestContextBuilder::HttpNetworkSessionParams::~HttpNetworkSessionParams()
|
| {}
|
|
|
| URLRequestContextBuilder::URLRequestContextBuilder()
|
| - : ftp_enabled_(false),
|
| + : data_enabled_(false),
|
| + file_enabled_(false),
|
| + ftp_enabled_(false),
|
| http_cache_enabled_(true) {}
|
| URLRequestContextBuilder::~URLRequestContextBuilder() {}
|
|
|
| @@ -204,11 +210,6 @@ URLRequestContext* URLRequestContextBuilder::Build() {
|
|
|
| storage->set_host_resolver(net::HostResolver::CreateDefaultResolver(NULL));
|
|
|
| - if (ftp_enabled_) {
|
| - storage->set_ftp_transaction_factory(
|
| - new FtpNetworkLayer(context->host_resolver()));
|
| - }
|
| -
|
| context->StartFileThread();
|
|
|
| // TODO(willchan): Switch to using this code when
|
| @@ -290,6 +291,19 @@ URLRequestContext* URLRequestContextBuilder::Build() {
|
| }
|
| storage->set_http_transaction_factory(http_transaction_factory);
|
|
|
| + URLRequestJobFactoryImpl* job_factory = new URLRequestJobFactoryImpl;
|
| + if (data_enabled_)
|
| + job_factory->SetProtocolHandler("data", new DataProtocolHandler);
|
| + if (file_enabled_)
|
| + job_factory->SetProtocolHandler("file", new FileProtocolHandler);
|
| + if (ftp_enabled_) {
|
| + ftp_transaction_factory_.reset(
|
| + new FtpNetworkLayer(context->host_resolver()));
|
| + job_factory->SetProtocolHandler("ftp",
|
| + new FtpProtocolHandler(ftp_transaction_factory_.get()));
|
| + }
|
| + storage->set_job_factory(job_factory);
|
| +
|
| // TODO(willchan): Support sdch.
|
|
|
| return context;
|
|
|