summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-09-21 11:04:39 +0200
committerLiang Qi <liang.qi@qt.io>2016-09-21 11:04:39 +0200
commitb04131f375a64204be962e7b92c88a3ecaf892c5 (patch)
treead3cac0a277791692eb4374af8b647cec5706cb1 /src/webenginewidgets/api
parent001ee1d6da4bf6769d702810f8ebcb05978663cc (diff)
parent0e5553a1626cb707499d82c96e136ceb79dfb54d (diff)
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts: src/3rdparty src/core/delegated_frame_node.h src/webengine/api/qquickwebenginecontextmenudata.cpp Change-Id: I163488d0d32cd981351608b2886f12e547e24672
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r--src/webenginewidgets/api/qwebenginecontextmenudata.cpp2
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp11
2 files changed, 9 insertions, 4 deletions
diff --git a/src/webenginewidgets/api/qwebenginecontextmenudata.cpp b/src/webenginewidgets/api/qwebenginecontextmenudata.cpp
index 23be32bf6..37b65403a 100644
--- a/src/webenginewidgets/api/qwebenginecontextmenudata.cpp
+++ b/src/webenginewidgets/api/qwebenginecontextmenudata.cpp
@@ -56,7 +56,7 @@ ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaTypePlugin, Q
\since 5.7
\brief The QWebEngineContextMenuData class provides context data for populating or extending a context menu with actions.
- \inmodule QtWebEngine
+ \inmodule QtWebEngineWidgets
QWebEngineContextMenuData is returned by QWebEnginePage::contextMenuData() after a context menu event,
and contains information about where the context menu event took place. This is also in the context
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 37c156e17..8911b114f 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -299,9 +299,14 @@ void QWebEnginePagePrivate::adoptNewWindow(QSharedPointer<WebContentsAdapter> ne
if (newPage->d_func() == this) {
// If createWindow returns /this/ we must delay the adoption.
Q_ASSERT(q == newPage);
- QTimer::singleShot(0, q, [this, newPage, newWebContents, initialGeometry] () {
- adoptNewWindowImpl(newPage, newWebContents, initialGeometry);
- });
+ // WebContents might be null if we just opened a new page for navigation, in that case
+ // avoid referencing newWebContents so that it is deleted and WebContentsDelegateQt::OpenURLFromTab
+ // will fall back to navigating current page.
+ if (newWebContents->webContents()) {
+ QTimer::singleShot(0, q, [this, newPage, newWebContents, initialGeometry] () {
+ adoptNewWindowImpl(newPage, newWebContents, initialGeometry);
+ });
+ }
} else {
adoptNewWindowImpl(newPage, newWebContents, initialGeometry);
}