| 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 85a19f401ad5d3bb124fdcd8a7de6a78df4321ff..dad5d84575df3fa3ddafd778784653216a31b558 100644
|
| --- a/net/url_request/url_request_context_builder.cc
|
| +++ b/net/url_request/url_request_context_builder.cc
|
| @@ -39,6 +39,8 @@
|
| #include "net/net_features.h"
|
| #include "net/nqe/network_quality_estimator.h"
|
| #include "net/quic/chromium/quic_stream_factory.h"
|
| +#include "net/reporting/reporting_policy.h"
|
| +#include "net/reporting/reporting_service.h"
|
| #include "net/ssl/channel_id_service.h"
|
| #include "net/ssl/default_channel_id_store.h"
|
| #include "net/ssl/ssl_config_service_defaults.h"
|
| @@ -144,6 +146,10 @@ class ContainerURLRequestContext final : public URLRequestContext {
|
| : file_task_runner_(file_task_runner), storage_(this) {}
|
|
|
| ~ContainerURLRequestContext() override {
|
| + // Destroy the ReportingService before the rest of the URLRequestContext, so
|
| + // it cancels any pending requests it may have.
|
| + storage_.set_reporting_service(nullptr);
|
| +
|
| // Shut down the ProxyService, as it may have pending URLRequests using this
|
| // context. Since this cancels requests, it's not safe to subclass this, as
|
| // some parts of the URLRequestContext may then be torn down before this
|
| @@ -268,6 +274,11 @@ void URLRequestContextBuilder::SetCertVerifier(
|
| cert_verifier_ = std::move(cert_verifier);
|
| }
|
|
|
| +void URLRequestContextBuilder::set_reporting_policy(
|
| + std::unique_ptr<net::ReportingPolicy> reporting_policy) {
|
| + reporting_policy_ = std::move(reporting_policy);
|
| +}
|
| +
|
| void URLRequestContextBuilder::SetInterceptors(
|
| std::vector<std::unique_ptr<URLRequestInterceptor>>
|
| url_request_interceptors) {
|
| @@ -496,7 +507,11 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
|
| url_request_interceptors_.clear();
|
| }
|
| storage->set_job_factory(std::move(top_job_factory));
|
| - // TODO(willchan): Support sdch.
|
| +
|
| + if (reporting_policy_) {
|
| + storage->set_reporting_service(
|
| + ReportingService::Create(*reporting_policy_, context.get()));
|
| + }
|
|
|
| return std::move(context);
|
| }
|
|
|