| Index: net/url_request/url_request_context_builder.h
|
| diff --git a/net/url_request/url_request_context_builder.h b/net/url_request/url_request_context_builder.h
|
| index a104c4386550a0d43363b6d9f159c48c4866ffb6..c4e42e9389f40614d386d8b258c002d474a38dec 100644
|
| --- a/net/url_request/url_request_context_builder.h
|
| +++ b/net/url_request/url_request_context_builder.h
|
| @@ -18,6 +18,7 @@
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/callback.h"
|
| #include "base/files/file_path.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| @@ -37,14 +38,53 @@ class SingleThreadTaskRunner;
|
|
|
| namespace net {
|
|
|
| +class CertVerifier;
|
| class ChannelIDService;
|
| class CookieStore;
|
| +class CTVerifier;
|
| +class FraudulentCertificateReporter;
|
| class FtpTransactionFactory;
|
| class HostMappingRules;
|
| class HttpAuthHandlerFactory;
|
| +class HttpServerProperties;
|
| +class HttpTransactionFactory;
|
| +class HttpUserAgentSettings;
|
| +class NetworkQualityEstimator;
|
| class ProxyConfigService;
|
| +class SSLConfigService;
|
| +class SdchManager;
|
| +class TransportSecurityState;
|
| class URLRequestContext;
|
| class URLRequestInterceptor;
|
| +class URLRequestJobFactory;
|
| +
|
| +// The next threee classes are interfaces to allow callbacks during the
|
| +// construction of a main context.
|
| +// TODO(wjmaclean): Should these be combined into a single Delegate class,
|
| +// to be implemented by the creator of the main context?
|
| +class FraudulentCertificateReporterFactory {
|
| + public:
|
| + FraudulentCertificateReporterFactory() {}
|
| +
|
| + virtual FraudulentCertificateReporter* Create(
|
| + URLRequestContext* context) const = 0;
|
| +};
|
| +
|
| +class HttpTransactionFactoryFactory {
|
| + public:
|
| + HttpTransactionFactoryFactory() {}
|
| + virtual ~HttpTransactionFactoryFactory() {}
|
| +
|
| + virtual HttpTransactionFactory* Create(URLRequestContext* context) = 0;
|
| +};
|
| +
|
| +class CertVerifierDelegate {
|
| + public:
|
| + CertVerifierDelegate() {}
|
| + virtual ~CertVerifierDelegate() {}
|
| +
|
| + virtual CertVerifier* Get(URLRequestContext* context) = 0;
|
| +};
|
|
|
| class NET_EXPORT URLRequestContextBuilder {
|
| public:
|
| @@ -95,6 +135,13 @@ class NET_EXPORT URLRequestContextBuilder {
|
| void set_proxy_service(ProxyService* proxy_service) {
|
| proxy_service_.reset(proxy_service);
|
| }
|
| + void set_proxy_service_unowned(ProxyService* proxy_service) {
|
| + proxy_service_unowned_ = proxy_service;
|
| + }
|
| +
|
| + void set_ssl_config_service(SSLConfigService* service) {
|
| + ssl_config_service_ = service;
|
| + }
|
|
|
| // Call these functions to specify hard-coded Accept-Language
|
| // or User-Agent header values for all requests that don't
|
| @@ -209,6 +256,62 @@ class NET_EXPORT URLRequestContextBuilder {
|
|
|
| URLRequestContext* Build();
|
|
|
| + // Functions specific to building a main context.
|
| + void set_fraudulent_certificate_reporter_factory(
|
| + const FraudulentCertificateReporterFactory* factory) {
|
| + fraudulent_certificate_reporter_factory_ = factory;
|
| + }
|
| +
|
| + void set_net_log_unowned(NetLog* net_log) {
|
| + net_log_unowned_= net_log;
|
| + }
|
| +
|
| + void set_transport_security_state(TransportSecurityState* state){
|
| + transport_security_state_.reset(state);
|
| + }
|
| +
|
| + void set_http_user_agent_settings_unowned(HttpUserAgentSettings* settings) {
|
| + http_user_agent_settings_unowned_ = settings;
|
| + }
|
| +
|
| + void set_http_transaction_factory_factory(
|
| + HttpTransactionFactoryFactory* factory) {
|
| + http_transaction_factory_factory_.reset(factory);
|
| + }
|
| +
|
| + void set_cert_verifier_delegate(CertVerifierDelegate* cert_verifier_delegate) {
|
| + cert_verifier_delegate_.reset(cert_verifier_delegate);
|
| + }
|
| +
|
| + void set_host_resolver_unowned(HostResolver* host_resolver) {
|
| + host_resolver_unowned_ = host_resolver;
|
| + }
|
| +
|
| + void set_cert_transparency_verifier_unowned(CTVerifier* ct_verifier) {
|
| + cert_transparency_verifier_unowned_ = ct_verifier;
|
| + }
|
| +
|
| + void set_http_server_properties(
|
| + const base::WeakPtr<HttpServerProperties>& http_server_properties) {
|
| + http_server_properties_ = http_server_properties;
|
| + }
|
| +
|
| + void set_http_auth_handler_factory_unowned(
|
| + HttpAuthHandlerFactory* http_auth_handler_factory) {
|
| + http_auth_handler_factory_unowned_ = http_auth_handler_factory;
|
| + }
|
| +
|
| + void set_sdch_manager(SdchManager* manager);
|
| +
|
| + void set_job_factory(scoped_ptr<URLRequestJobFactory> factory);
|
| +
|
| + void set_network_quality_estimator_unowned(
|
| + NetworkQualityEstimator* network_quality_estimator) {
|
| + network_quality_estimator_unowned_ = network_quality_estimator;
|
| + }
|
| +
|
| + URLRequestContext* BuildMainContext();
|
| +
|
| private:
|
| struct NET_EXPORT SchemeFactory {
|
| SchemeFactory(const std::string& scheme, HttpAuthHandlerFactory* factory);
|
| @@ -249,6 +352,27 @@ class NET_EXPORT URLRequestContextBuilder {
|
| std::vector<SchemeFactory> extra_http_auth_handlers_;
|
| ScopedVector<URLRequestInterceptor> url_request_interceptors_;
|
|
|
| + // Member variables specific to building a main context.
|
| + // Names ending in 'unowned' indicate variables that will not be owned by
|
| + // the main context, If this ownership status changes, then the variable
|
| + // in question should be renamed.
|
| + const FraudulentCertificateReporterFactory*
|
| + fraudulent_certificate_reporter_factory_;
|
| + NetLog* net_log_unowned_;
|
| + scoped_ptr<TransportSecurityState> transport_security_state_;
|
| + HttpUserAgentSettings* http_user_agent_settings_unowned_;
|
| + scoped_ptr<HttpTransactionFactoryFactory> http_transaction_factory_factory_;
|
| + scoped_ptr<CertVerifierDelegate> cert_verifier_delegate_;
|
| + HostResolver* host_resolver_unowned_;
|
| + CTVerifier* cert_transparency_verifier_unowned_;
|
| + base::WeakPtr<HttpServerProperties> http_server_properties_;
|
| + HttpAuthHandlerFactory* http_auth_handler_factory_unowned_;
|
| + scoped_ptr<SdchManager> sdch_manager_;
|
| + scoped_ptr<URLRequestJobFactory> job_factory_;
|
| + NetworkQualityEstimator* network_quality_estimator_unowned_;
|
| + scoped_refptr<SSLConfigService> ssl_config_service_;
|
| + ProxyService* proxy_service_unowned_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(URLRequestContextBuilder);
|
| };
|
|
|
|
|