diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-27 10:16:52 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-27 10:16:52 +0200 |
commit | 8fbe26f467a337ffed34dc9ae2308d69950c1adf (patch) | |
tree | db3472d679143bcb3c14369586817440bfd7c67b /src/core/net | |
parent | 0f081baa31facec779057de29eec14c6f458f6a6 (diff) | |
parent | 02c01aedcc08525eea226382318f6a8585c3dae7 (diff) |
Merge remote-tracking branch 'origin/5.13' into dev
Change-Id: I70917458ba43c8fbf27fee2382eee42618588fe4
Diffstat (limited to 'src/core/net')
-rw-r--r-- | src/core/net/network_delegate_qt.cpp | 10 | ||||
-rw-r--r-- | src/core/net/url_request_notification.cpp | 13 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/core/net/network_delegate_qt.cpp b/src/core/net/network_delegate_qt.cpp index e0e3a6c16..f283df1d1 100644 --- a/src/core/net/network_delegate_qt.cpp +++ b/src/core/net/network_delegate_qt.cpp @@ -150,8 +150,14 @@ int NetworkDelegateQt::OnBeforeURLRequest(net::URLRequest *request, net::Complet if (!infoPrivate->extraHeaders.isEmpty()) { auto end = infoPrivate->extraHeaders.constEnd(); - for (auto header = infoPrivate->extraHeaders.constBegin(); header != end; ++header) - request->SetExtraRequestHeaderByName(header.key().toStdString(), header.value().toStdString(), /* overwrite */ true); + for (auto header = infoPrivate->extraHeaders.constBegin(); header != end; ++header) { + std::string h = header.key().toStdString(); + if (base::LowerCaseEqualsASCII(h, "referer")) { + request->SetReferrer(header.value().toStdString()); + } else { + request->SetExtraRequestHeaderByName(h, header.value().toStdString(), /* overwrite */ true); + } + } } if (result != net::OK) diff --git a/src/core/net/url_request_notification.cpp b/src/core/net/url_request_notification.cpp index 6da661cff..e37ad35bc 100644 --- a/src/core/net/url_request_notification.cpp +++ b/src/core/net/url_request_notification.cpp @@ -109,7 +109,8 @@ void URLRequestNotification::notify() if (m_profileAdapter) { QWebEngineUrlRequestInterceptor* interceptor = m_profileAdapter->requestInterceptor(); - interceptor->interceptRequest(m_requestInfo); + if (!interceptor->property("deprecated").toBool()) + interceptor->interceptRequest(m_requestInfo); } WebContentsAdapterClient *client = @@ -171,8 +172,14 @@ void URLRequestNotification::complete(int error) if (!m_requestInfo.d_ptr->extraHeaders.isEmpty()) { auto end = m_requestInfo.d_ptr->extraHeaders.constEnd(); - for (auto header = m_requestInfo.d_ptr->extraHeaders.constBegin(); header != end; ++header) - m_request->SetExtraRequestHeaderByName(header.key().toStdString(), header.value().toStdString(), /* overwrite */ true); + for (auto header = m_requestInfo.d_ptr->extraHeaders.constBegin(); header != end; ++header) { + std::string h = header.key().toStdString(); + if (base::LowerCaseEqualsASCII(h, "referer")) { + m_request->SetReferrer(header.value().toStdString()); + } else { + m_request->SetExtraRequestHeaderByName(h, header.value().toStdString(), /* overwrite */ true); + } + } } } |