diff options
author | Liang Qi <liang.qi@qt.io> | 2017-11-03 07:31:53 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-11-03 07:31:53 +0100 |
commit | b045cf0ab9756a67a5a1037c231199ee9bf2d074 (patch) | |
tree | 43831df602905b64552cf31a233127bed9904fc8 /src/core/url_request_context_getter_qt.cpp | |
parent | 0bbaf0d5d7b2d406eda57d40370b00fb79cc0aeb (diff) | |
parent | 7f7af6290a63bdab76855da5866881c8a53f045c (diff) |
Merge remote-tracking branch 'origin/5.10' into dev
Conflicts:
src/3rdparty
Change-Id: Ie6b1922db2269e0e0561022162228a7c8609c9ba
Diffstat (limited to 'src/core/url_request_context_getter_qt.cpp')
-rw-r--r-- | src/core/url_request_context_getter_qt.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/core/url_request_context_getter_qt.cpp b/src/core/url_request_context_getter_qt.cpp index 4f30881c8..b77cd50f9 100644 --- a/src/core/url_request_context_getter_qt.cpp +++ b/src/core/url_request_context_getter_qt.cpp @@ -59,6 +59,8 @@ #include "net/dns/mapped_host_resolver.h" #include "net/extras/sqlite/sqlite_channel_id_store.h" #include "net/http/http_auth_handler_factory.h" +#include "net/http/http_auth_preferences.h" +#include "net/http/http_auth_scheme.h" #include "net/http/http_cache.h" #include "net/http/http_network_session.h" #include "net/http/http_server_properties_impl.h" @@ -209,6 +211,13 @@ void URLRequestContextGetterQt::generateAllStorage() m_updateAllStorage = false; } +static const char* const kDefaultAuthSchemes[] = { net::kBasicAuthScheme, + net::kDigestAuthScheme, +#if defined(USE_KERBEROS) && !defined(OS_ANDROID) + net::kNegotiateAuthScheme, +#endif + net::kNtlmAuthScheme }; + void URLRequestContextGetterQt::generateStorage() { Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); @@ -251,7 +260,15 @@ void URLRequestContextGetterQt::generateStorage() m_storage->set_ssl_config_service(new net::SSLConfigServiceDefaults); m_storage->set_transport_security_state(std::unique_ptr<net::TransportSecurityState>(new net::TransportSecurityState())); - m_storage->set_http_auth_handler_factory(net::HttpAuthHandlerFactory::CreateDefault(host_resolver.get())); + if (!m_httpAuthPreferences) { + std::vector<std::string> auth_types(std::begin(kDefaultAuthSchemes), std::end(kDefaultAuthSchemes)); + m_httpAuthPreferences.reset(new net::HttpAuthPreferences(auth_types +#if defined(OS_POSIX) && !defined(OS_ANDROID) + , std::string() /* gssapi library name */ +#endif + )); + } + m_storage->set_http_auth_handler_factory(net::HttpAuthHandlerRegistryFactory::Create(m_httpAuthPreferences.get(), host_resolver.get())); m_storage->set_http_server_properties(std::unique_ptr<net::HttpServerProperties>(new net::HttpServerPropertiesImpl)); // Give |m_storage| ownership at the end in case it's |mapped_host_resolver|. |