diff options
Diffstat (limited to 'net/url_request/url_request_context_builder.h')
-rw-r--r-- | net/url_request/url_request_context_builder.h | 23 |
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); }; |