summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/webengine/api/qquickwebenginenewviewrequest.cpp1
-rw-r--r--src/webengine/api/qquickwebenginenewviewrequest_p.h1
-rw-r--r--src/webengine/api/qquickwebengineview.cpp4
3 files changed, 6 insertions, 0 deletions
diff --git a/src/webengine/api/qquickwebenginenewviewrequest.cpp b/src/webengine/api/qquickwebenginenewviewrequest.cpp
index 0af943de8..78ae1622a 100644
--- a/src/webengine/api/qquickwebenginenewviewrequest.cpp
+++ b/src/webengine/api/qquickwebenginenewviewrequest.cpp
@@ -117,5 +117,6 @@ void QQuickWebEngineNewViewRequest::openIn(QQuickWebEngineView *view)
view->d_func()->adoptWebContents(m_adapter.data());
else
view->setUrl(m_requestedUrl);
+ m_isRequestHandled = true;
m_adapter.reset();
}
diff --git a/src/webengine/api/qquickwebenginenewviewrequest_p.h b/src/webengine/api/qquickwebenginenewviewrequest_p.h
index e21f76111..d4686b291 100644
--- a/src/webengine/api/qquickwebenginenewviewrequest_p.h
+++ b/src/webengine/api/qquickwebenginenewviewrequest_p.h
@@ -77,6 +77,7 @@ private:
QQuickWebEngineNewViewRequest();
QQuickWebEngineView::NewViewDestination m_destination;
bool m_isUserInitiated;
+ bool m_isRequestHandled = false;
QSharedPointer<QtWebEngineCore::WebContentsAdapter> m_adapter;
QUrl m_requestedUrl;
friend class QQuickWebEngineView;
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index aeb202c6a..7b875bf55 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -554,6 +554,7 @@ QQuickWebEngineViewPrivate::adoptNewWindow(QSharedPointer<WebContentsAdapter> ne
const QRect &, const QUrl &targetUrl)
{
Q_Q(QQuickWebEngineView);
+ Q_ASSERT(newWebContents);
QQuickWebEngineNewViewRequest request;
request.m_adapter = newWebContents;
request.m_isUserInitiated = userGesture;
@@ -578,6 +579,9 @@ QQuickWebEngineViewPrivate::adoptNewWindow(QSharedPointer<WebContentsAdapter> ne
Q_EMIT q->newViewRequested(&request);
+ if (!request.m_isRequestHandled)
+ return nullptr;
+
return newWebContents;
}