diff --git a/brightray/browser/url_request_context_getter.cc b/brightray/browser/url_request_context_getter.cc index 6a92047266c..03a3fa156f7 100644 --- a/brightray/browser/url_request_context_getter.cc +++ b/brightray/browser/url_request_context_getter.cc @@ -119,6 +119,7 @@ URLRequestContextGetter::URLRequestContextGetter( base_path_(base_path), io_loop_(io_loop), file_loop_(file_loop), + url_sec_mgr_(net::URLSecurityManager::Create(NULL, NULL)), protocol_interceptors_(protocol_interceptors.Pass()) { // Must first be created on the UI thread. DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); @@ -188,11 +189,26 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { NULL, url_request_context_->network_delegate())); + + std::vector schemes; + schemes.push_back(std::string("basic")); + schemes.push_back(std::string("digest")); + schemes.push_back(std::string("ntlm")); + schemes.push_back(std::string("negotiate")); + + auto auth_handler_factory = + net::HttpAuthHandlerRegistryFactory::Create( + schemes, + url_sec_mgr_.get(), + host_resolver.get(), + std::string(), // gssapi_library_name + false, // negotiate_disable_cname_lookup + true); // negotiate_enable_port + storage_->set_cert_verifier(net::CertVerifier::CreateDefault()); storage_->set_transport_security_state(new net::TransportSecurityState); storage_->set_ssl_config_service(new net::SSLConfigServiceDefaults); - storage_->set_http_auth_handler_factory( - net::HttpAuthHandlerFactory::CreateDefault(host_resolver.get())); + storage_->set_http_auth_handler_factory(auth_handler_factory); scoped_ptr server_properties( new net::HttpServerPropertiesImpl); storage_->set_http_server_properties(server_properties.Pass()); diff --git a/brightray/browser/url_request_context_getter.h b/brightray/browser/url_request_context_getter.h index 85ed014422a..599bf6c4d22 100644 --- a/brightray/browser/url_request_context_getter.h +++ b/brightray/browser/url_request_context_getter.h @@ -9,6 +9,7 @@ #include "base/memory/scoped_ptr.h" #include "content/public/browser/content_browser_client.h" #include "net/http/http_cache.h" +#include "net/http/url_security_manager.h" #include "net/url_request/url_request_context_getter.h" namespace base { @@ -68,6 +69,7 @@ class URLRequestContextGetter : public net::URLRequestContextGetter { scoped_ptr storage_; scoped_ptr url_request_context_; scoped_ptr host_mapping_rules_; + scoped_ptr url_sec_mgr_; content::ProtocolHandlerMap protocol_handlers_; content::URLRequestInterceptorScopedVector protocol_interceptors_;