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 c2600712950ba1bc231254906f49ec4ede7beea1..508b182d745ca856e3a7a6c18ab8f1e5a24e6699 100644 |
--- a/net/url_request/url_request_context_builder.cc |
+++ b/net/url_request/url_request_context_builder.cc |
@@ -129,6 +129,7 @@ class ContainerURLRequestContext : public URLRequestContext { |
explicit ContainerURLRequestContext( |
const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner) |
: file_task_runner_(file_task_runner), storage_(this) {} |
+ ~ContainerURLRequestContext() override { AssertNoURLRequests(); } |
URLRequestContextStorage* storage() { |
return &storage_; |
@@ -151,9 +152,6 @@ class ContainerURLRequestContext : public URLRequestContext { |
transport_security_persister = transport_security_persister.Pass(); |
} |
- protected: |
- ~ContainerURLRequestContext() override { AssertNoURLRequests(); } |
- |
private: |
// The thread should be torn down last. |
scoped_ptr<base::Thread> file_thread_; |
@@ -205,7 +203,8 @@ URLRequestContextBuilder::URLRequestContextBuilder() |
http_cache_enabled_(true), |
throttling_enabled_(false), |
backoff_enabled_(false), |
- sdch_enabled_(false) { |
+ sdch_enabled_(false), |
+ net_log_(nullptr) { |
} |
URLRequestContextBuilder::~URLRequestContextBuilder() {} |
@@ -266,9 +265,9 @@ void URLRequestContextBuilder::SetHttpServerProperties( |
http_server_properties_ = http_server_properties.Pass(); |
} |
-URLRequestContext* URLRequestContextBuilder::Build() { |
- ContainerURLRequestContext* context = |
- new ContainerURLRequestContext(file_task_runner_); |
+scoped_ptr<URLRequestContext> URLRequestContextBuilder::Build() { |
+ scoped_ptr<ContainerURLRequestContext> context( |
+ new ContainerURLRequestContext(file_task_runner_)); |
URLRequestContextStorage* storage = context->storage(); |
storage->set_http_user_agent_settings(new StaticHttpUserAgentSettings( |
@@ -280,7 +279,9 @@ URLRequestContext* URLRequestContextBuilder::Build() { |
storage->set_network_delegate(network_delegate); |
if (net_log_) { |
- storage->set_net_log(net_log_.release()); |
+ // Unlike the other builder parameters, |net_log_| is not owned by the |
+ // builder or resulting context. |
+ context->set_net_log(net_log_); |
} else { |
storage->set_net_log(new NetLog); |
} |
@@ -365,7 +366,7 @@ URLRequestContext* URLRequestContextBuilder::Build() { |
storage->set_backoff_manager(new URLRequestBackoffManager()); |
HttpNetworkSession::Params network_session_params; |
- SetHttpNetworkSessionComponents(context, &network_session_params); |
+ SetHttpNetworkSessionComponents(context.get(), &network_session_params); |
network_session_params.ignore_certificate_errors = |
http_network_session_params_.ignore_certificate_errors; |
@@ -446,7 +447,7 @@ URLRequestContext* URLRequestContextBuilder::Build() { |
storage->set_job_factory(top_job_factory.release()); |
// TODO(willchan): Support sdch. |
- return context; |
+ return context.Pass(); |
} |
} // namespace net |