summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-06-30 16:06:46 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2016-06-30 15:29:26 +0000
commitf5ee1feeed2abbcbe6db2bf9757d692b38fcbcb1 (patch)
tree0a98a41a6809948ac025b3b18a9dadc015d421bd /src
parent04c1f1a0039c7e90f31f5a8245b1d78ceff3a687 (diff)
Fix invalid pointer in script collection after opening popup
The script collection has a pointer to webcontents adapter, and when a new adapter is adopted, the pointer in the script collection needs to be updated. Task-number: QTBUG-54419 Change-Id: Ia054e1281ab4db637beab570abda752074dc9280 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 45177d8d8..0d556f15b 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -288,8 +288,11 @@ void QWebEnginePagePrivate::adoptNewWindow(WebContentsAdapter *newWebContents, W
// Overwrite the new page's WebContents with ours.
if (newPage->d_func() != this) {
+ // Keep the old adapter referenced until the scriptcollection is rebound
+ QExplicitlySharedDataPointer<WebContentsAdapter> oldWebContents = newPage->d_func()->adapter;
newPage->d_func()->adapter = newWebContents;
newWebContents->initialize(newPage->d_func());
+ newPage->d_func()->scriptCollection.d->rebindToContents(newWebContents);
if (!initialGeometry.isEmpty())
emit newPage->geometryChangeRequested(initialGeometry);
}