summaryrefslogtreecommitdiffstats
path: root/chromium/net/url_request/url_request_context_builder.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/url_request/url_request_context_builder.h')
-rw-r--r--chromium/net/url_request/url_request_context_builder.h40
1 files changed, 37 insertions, 3 deletions
diff --git a/chromium/net/url_request/url_request_context_builder.h b/chromium/net/url_request/url_request_context_builder.h
index 899e74dff0e..cf7bba2c688 100644
--- a/chromium/net/url_request/url_request_context_builder.h
+++ b/chromium/net/url_request/url_request_context_builder.h
@@ -15,6 +15,7 @@
#define NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_
#include <string>
+#include <vector>
#include "base/basictypes.h"
#include "base/files/file_path.h"
@@ -22,15 +23,17 @@
#include "base/memory/scoped_ptr.h"
#include "build/build_config.h"
#include "net/base/net_export.h"
+#include "net/base/network_delegate.h"
+#include "net/dns/host_resolver.h"
+#include "net/socket/next_proto.h"
namespace net {
class FtpTransactionFactory;
-class HostResolver;
class HostMappingRules;
+class HttpAuthHandlerFactory;
class ProxyConfigService;
class URLRequestContext;
-class NetworkDelegate;
class NET_EXPORT URLRequestContextBuilder {
public:
@@ -61,10 +64,11 @@ class NET_EXPORT URLRequestContextBuilder {
// These fields mirror those in net::HttpNetworkSession::Params;
bool ignore_certificate_errors;
HostMappingRules* host_mapping_rules;
- bool http_pipelining_enabled;
uint16 testing_fixed_http_port;
uint16 testing_fixed_https_port;
+ NextProtoVector next_protos;
std::string trusted_spdy_proxy;
+ bool use_alternate_protocols;
};
URLRequestContextBuilder();
@@ -87,10 +91,12 @@ class NET_EXPORT URLRequestContextBuilder {
data_enabled_ = enable;
}
+#if !defined(DISABLE_FILE_SUPPORT)
// Control support for file:// requests. By default it's disabled.
void set_file_enabled(bool enable) {
file_enabled_ = enable;
}
+#endif
#if !defined(DISABLE_FTP_SUPPORT)
// Control support for ftp:// requests. By default it's disabled.
@@ -111,12 +117,24 @@ class NET_EXPORT URLRequestContextBuilder {
network_delegate_.reset(delegate);
}
+
+ // Adds additional auth handler factories to be used in addition to what is
+ // provided in the default |HttpAuthHandlerRegistryFactory|. The auth |scheme|
+ // and |factory| are provided. The builder takes ownership of the factory and
+ // Build() must be called after this method.
+ void add_http_auth_handler_factory(const std::string& scheme,
+ net::HttpAuthHandlerFactory* factory) {
+ extra_http_auth_handlers_.push_back(SchemeFactory(scheme, factory));
+ }
+
// By default HttpCache is enabled with a default constructed HttpCacheParams.
void EnableHttpCache(const HttpCacheParams& params) {
+ http_cache_enabled_ = true;
http_cache_params_ = params;
}
void DisableHttpCache() {
+ http_cache_enabled_ = false;
http_cache_params_ = HttpCacheParams();
}
@@ -126,15 +144,30 @@ class NET_EXPORT URLRequestContextBuilder {
http_network_session_params_ = http_network_session_params;
}
+ // Adjust |http_network_session_params_.next_protos| to enable SPDY and QUIC.
+ void SetSpdyAndQuicEnabled(bool spdy_enabled,
+ bool quic_enabled);
+
URLRequestContext* Build();
private:
+ struct SchemeFactory {
+ SchemeFactory(const std::string& scheme,
+ net::HttpAuthHandlerFactory* factory);
+ ~SchemeFactory();
+
+ std::string scheme;
+ net::HttpAuthHandlerFactory* factory;
+ };
+
std::string accept_language_;
std::string user_agent_;
// Include support for data:// requests.
bool data_enabled_;
+#if !defined(DISABLE_FILE_SUPPORT)
// Include support for file:// requests.
bool file_enabled_;
+#endif
#if !defined(DISABLE_FTP_SUPPORT)
// Include support for ftp:// requests.
bool ftp_enabled_;
@@ -146,6 +179,7 @@ class NET_EXPORT URLRequestContextBuilder {
scoped_ptr<ProxyConfigService> proxy_config_service_;
scoped_ptr<NetworkDelegate> network_delegate_;
scoped_ptr<FtpTransactionFactory> ftp_transaction_factory_;
+ std::vector<SchemeFactory> extra_http_auth_handlers_;
DISALLOW_COPY_AND_ASSIGN(URLRequestContextBuilder);
};