summaryrefslogtreecommitdiffstats
path: root/src/core/net/network_delegate_qt.cpp
diff options
context:
space:
mode:
authorMichael BrĂ¼ning <michael.bruning@qt.io>2019-01-18 16:26:29 +0100
committerMichael BrĂ¼ning <michael.bruning@qt.io>2019-01-18 16:26:29 +0100
commit819182302d5bdaba41efb68ef3c533b2acc19ae1 (patch)
treecab7a922998bc5d6e7f42b537b0c0ce1b69111f6 /src/core/net/network_delegate_qt.cpp
parent0763b7c40d3490250f5bca1e0029cefba635305c (diff)
parent3f7ea91e23d82e676aeaf157736e25cf54e5ec6b (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts: .qmake.conf src/core/net/network_delegate_qt.cpp src/core/profile_io_data_qt.cpp src/core/web_engine_context.h tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp Change-Id: Id98e3f52f548ceb5b68abd80aedd6ae59db72cc0
Diffstat (limited to 'src/core/net/network_delegate_qt.cpp')
-rw-r--r--src/core/net/network_delegate_qt.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/core/net/network_delegate_qt.cpp b/src/core/net/network_delegate_qt.cpp
index e5bbb53c7..be31b6104 100644
--- a/src/core/net/network_delegate_qt.cpp
+++ b/src/core/net/network_delegate_qt.cpp
@@ -249,15 +249,22 @@ int NetworkDelegateQt::OnBeforeURLRequest(net::URLRequest *request, net::Complet
const QUrl qUrl = toQt(request->url());
+ QUrl firstPartyUrl = QUrl();
+ if (resourceType == content::ResourceType::RESOURCE_TYPE_SUB_FRAME)
+ firstPartyUrl = toQt(request->first_party_url());
+ else
+ firstPartyUrl = toQt(request->site_for_cookies());
+
QWebEngineUrlRequestInfoPrivate *infoPrivate = new QWebEngineUrlRequestInfoPrivate(toQt(resourceType),
toQt(navigationType),
qUrl,
- toQt(request->site_for_cookies()),
+ firstPartyUrl,
QByteArray::fromStdString(request->method()));
QWebEngineUrlRequestInfo requestInfo(infoPrivate);
- if (QWebEngineUrlRequestInterceptor *interceptor = m_profileIOData->requestInterceptor()) {
+ if (QWebEngineUrlRequestInterceptor* interceptor = m_profileIOData->acquireInterceptor()) {
interceptor->interceptRequest(requestInfo);
+ m_profileIOData->releaseInterceptor();
if (requestInfo.changed()) {
int result = infoPrivate->shouldBlockRequest ? net::ERR_BLOCKED_BY_CLIENT : net::OK;
@@ -275,7 +282,8 @@ int NetworkDelegateQt::OnBeforeURLRequest(net::URLRequest *request, net::Complet
requestInfo.resetChanged();
}
- }
+ } else
+ m_profileIOData->releaseInterceptor();
if (!resourceInfo)
return net::OK;