From 13416b2db167dc1849e4af94391d3c6ae602ec76 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Wed, 8 Jan 2014 14:37:40 +0100 Subject: Fix QWebEngineView to page reattachment. This fixes the crash in tst_QWebEngineView::reusePage. Also add a test to check the case where show() would react incorrectly. Change-Id: I40247c7c225d74b26675b6a7fa5ff1f06d3bb3e6 Reviewed-by: Pierre Rossi --- src/webenginewidgets/api/qwebenginepage.cpp | 2 ++ src/webenginewidgets/api/qwebengineview.cpp | 4 ++++ 2 files changed, 6 insertions(+) (limited to 'src/webenginewidgets/api') diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 0178c1118..74a1692b2 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -207,6 +207,8 @@ QWebEnginePage::QWebEnginePage(QObject* parent) QWebEnginePage::~QWebEnginePage() { + Q_D(QWebEnginePage); + QWebEngineViewPrivate::bind(d->view, 0); } QWebEngineHistory *QWebEnginePage::history() const diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 4dea036b1..054925e83 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -43,6 +43,7 @@ #include "qwebengineview_p.h" #include "qwebenginepage_p.h" +#include "web_contents_adapter.h" #include #include @@ -63,6 +64,7 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page) oldView->d_func()->page = 0; } page->d_func()->view = view; + page->d_func()->adapter->reattachRWHV(); } if (view) { @@ -98,6 +100,8 @@ QWebEngineView::QWebEngineView(QWidget *parent) QWebEngineView::~QWebEngineView() { + Q_D(QWebEngineView); + QWebEngineViewPrivate::bind(0, d->page); } QWebEnginePage* QWebEngineView::page() const -- cgit v1.2.3