summaryrefslogtreecommitdiffstats
path: root/net/url_request/url_request_context_builder.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/url_request/url_request_context_builder.h')
-rw-r--r--net/url_request/url_request_context_builder.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/net/url_request/url_request_context_builder.h b/net/url_request/url_request_context_builder.h
index 2ad03ee..0f93f4a 100644
--- a/net/url_request/url_request_context_builder.h
+++ b/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"
@@ -28,6 +29,7 @@ namespace net {
class FtpTransactionFactory;
class HostResolver;
class HostMappingRules;
+class HttpAuthHandlerFactory;
class ProxyConfigService;
class URLRequestContext;
class NetworkDelegate;
@@ -111,6 +113,16 @@ 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;
@@ -131,6 +143,16 @@ class NET_EXPORT URLRequestContextBuilder {
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.
@@ -148,6 +170,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);
};