Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(637)

Unified Diff: net/url_request/url_request_context_builder.cc

Issue 1239393003: Refactor main URLRequestContext creation to use URLRequestContextBuilder Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/url_request/url_request_context_builder.h ('k') | net/url_request/url_request_context_storage.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_);
« no previous file with comments | « net/url_request/url_request_context_builder.h ('k') | net/url_request/url_request_context_storage.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698