diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/webengine/api/qquickwebenginenewviewrequest.cpp | 1 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginenewviewrequest_p.h | 1 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 4 |
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; } |