| 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 771bc3f25f28e91c929b3e60c4baae85ce8ca54b..7eae6bc492c8425a76273165039522b58812b18b 100644
|
| --- a/net/url_request/url_request_context_builder.cc
|
| +++ b/net/url_request/url_request_context_builder.cc
|
| @@ -26,6 +26,7 @@
|
| #include "net/http/http_network_layer.h"
|
| #include "net/http/http_network_session.h"
|
| #include "net/http/http_server_properties_impl.h"
|
| +#include "net/http/http_transaction_factory.h"
|
| #include "net/http/transport_security_persister.h"
|
| #include "net/http/transport_security_state.h"
|
| #include "net/ssl/channel_id_service.h"
|
| @@ -129,7 +130,7 @@ class BasicURLRequestContext : public URLRequestContext {
|
| const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner)
|
| : file_task_runner_(file_task_runner), storage_(this) {}
|
|
|
| - URLRequestContextStorage* storage() {
|
| + URLRequestContextStorage* storage() override {
|
| return &storage_;
|
| }
|
|
|
| @@ -203,7 +204,14 @@ URLRequestContextBuilder::URLRequestContextBuilder()
|
| #endif
|
| http_cache_enabled_(true),
|
| throttling_enabled_(false),
|
| - sdch_enabled_(false) {
|
| + sdch_enabled_(false),
|
| + net_log_unowned_(nullptr),
|
| + http_user_agent_settings_unowned_(nullptr),
|
| + host_resolver_unowned_(nullptr),
|
| + cert_transparency_verifier_unowned_(nullptr),
|
| + http_auth_handler_factory_unowned_(nullptr),
|
| + network_quality_estimator_unowned_(nullptr),
|
| + proxy_service_unowned_(nullptr) {
|
| }
|
|
|
| URLRequestContextBuilder::~URLRequestContextBuilder() {}
|
| @@ -243,6 +251,123 @@ void URLRequestContextBuilder::SetFileTaskRunner(
|
| file_task_runner_ = task_runner;
|
| }
|
|
|
| +void URLRequestContextBuilder::set_sdch_manager(SdchManager* manager) {
|
| + sdch_manager_.reset(manager);
|
| +}
|
| +
|
| +void URLRequestContextBuilder::set_job_factory(
|
| + scoped_ptr<URLRequestJobFactory> factory) {
|
| + job_factory_ = factory.Pass();
|
| +}
|
| +
|
| +URLRequestContext* URLRequestContextBuilder::BuildMainContext() {
|
| + BasicURLRequestContext* context =
|
| + new BasicURLRequestContext(file_task_runner_);
|
| + URLRequestContextStorage* storage = context->storage();
|
| +
|
| + // The ordering of the code in this function is important. For example,
|
| + // the HttpTransactionFactory cannot be created before setting the
|
| + // CertVerifier.
|
| + // Do not change the ordering unless you are sure you know what depends on
|
| + // what.
|
| + // TODO(wjmaclean): Can this function provide default creation of the
|
| + // various elements in a manner that would work for a main context?
|
| + if (fraudulent_certificate_reporter_factory_) {
|
| + storage->set_fraudulent_certificate_reporter(
|
| + fraudulent_certificate_reporter_factory_->Create(context));
|
| + } else {
|
| + NOTIMPLEMENTED();
|
| + }
|
| +
|
| + if (cert_verifier_delegate_)
|
| + context->set_cert_verifier(cert_verifier_delegate_->Get(context));
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (transport_security_state_.get())
|
| + storage->set_transport_security_state(transport_security_state_.release());
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (http_user_agent_settings_unowned_)
|
| + context->set_http_user_agent_settings(http_user_agent_settings_unowned_);
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (ssl_config_service_)
|
| + context->set_ssl_config_service(ssl_config_service_.get());
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (net_log_unowned_)
|
| + context->set_net_log(net_log_unowned_);
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (network_delegate_)
|
| + storage->set_network_delegate(network_delegate_.release());
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (http_server_properties_)
|
| + context->set_http_server_properties(http_server_properties_);
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (host_resolver_unowned_)
|
| + context->set_host_resolver(host_resolver_unowned_);
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (cert_transparency_verifier_unowned_)
|
| + context->set_cert_transparency_verifier(cert_transparency_verifier_unowned_);
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (http_auth_handler_factory_unowned_)
|
| + context->set_http_auth_handler_factory(http_auth_handler_factory_unowned_);
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (proxy_service_unowned_)
|
| + context->set_proxy_service(proxy_service_unowned_);
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (cookie_store_) {
|
| + storage->set_cookie_store(cookie_store_.get());
|
| + storage->set_channel_id_service(channel_id_service_.Pass());
|
| + } else {
|
| + NOTIMPLEMENTED();
|
| + }
|
| +
|
| +
|
| + if (http_transaction_factory_factory_) {
|
| + storage->set_http_transaction_factory(
|
| + http_transaction_factory_factory_->Create(context));
|
| + } else {
|
| + NOTIMPLEMENTED();
|
| + }
|
| +
|
| + if (sdch_manager_)
|
| + storage->set_sdch_manager(sdch_manager_.Pass());
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + if (job_factory_)
|
| + storage->set_job_factory(job_factory_.release());
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| +
|
| + if (network_quality_estimator_unowned_)
|
| + context->set_network_quality_estimator(network_quality_estimator_unowned_);
|
| + else
|
| + NOTIMPLEMENTED();
|
| +
|
| + return context;
|
| +}
|
| +
|
| URLRequestContext* URLRequestContextBuilder::Build() {
|
| BasicURLRequestContext* context =
|
| new BasicURLRequestContext(file_task_runner_);
|
|
|