Details
-
Bug
-
Resolution: Duplicate
-
Not Evaluated
-
None
-
5.12.1
-
None
Description
After upgrading to Qt 5.12 from Qt 5.11, I noticed that setPage doesn't delete the old page anymore.
It causes the corresponding Qtwebengineprocess not be terminated.
The Qt 5.11 implementation:
{{void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
{
... if (view) { // Un-bind view from its current page.if (QWebEnginePage *oldPage = view->d_func()->page)
view->d_func()->page = page;
}}}
The Qt 5.12 implemenation:
{{void QWebEngineViewPrivate::pageChanged(QWebEnginePage *oldPage, QWebEnginePage *newPage)
if (newPage) {
QObject::connect(newPage, &QWebEnginePage::titleChanged, q, &QWebEngineView::titleChanged);
QObject::connect(newPage, &QWebEnginePage::urlChanged, q, &QWebEngineView::urlChanged);
QObject::connect(newPage, &QWebEnginePage::iconUrlChanged, q, &QWebEngineView::iconUrlChanged);
QObject::connect(newPage, &QWebEnginePage::iconChanged, q, &QWebEngineView::iconChanged);
QObject::connect(newPage, &QWebEnginePage::loadStarted, q, &QWebEngineView::loadStarted);
QObject::connect(newPage, &QWebEnginePage::loadProgress, q, &QWebEngineView::loadProgress);
QObject::connect(newPage, &QWebEnginePage::loadFinished, q, &QWebEngineView::loadFinished);
QObject::connect(newPage, &QWebEnginePage::selectionChanged, q, &QWebEngineView::selectionChanged);
QObject::connect(newPage, &QWebEnginePage::renderProcessTerminated, q, &QWebEngineView::renderProcessTerminated);
}
auto oldUrl = oldPage ? oldPage->url() : QUrl();
auto newUrl = newPage ? newPage->url() : QUrl(); if (oldUrl != newUrl)
Q_EMIT q->urlChanged(newUrl);
auto oldTitle = oldPage ? oldPage->title() : QString();
auto newTitle = newPage ? newPage->title() : QString(); if (oldTitle != newTitle)
Q_EMIT q->titleChanged(newTitle);
auto oldIcon = oldPage ? oldPage->iconUrl() : QUrl();
auto newIcon = newPage ? newPage->iconUrl() : QUrl(); if (oldIcon != newIcon) {
Q_EMIT q->iconUrlChanged(newIcon);
Q_EMIT q->iconChanged(newPage ? newPage->icon() : QIcon());
} if ((oldPage && oldPage->hasSelection()) || (newPage && newPage->hasSelection()))
Q_EMIT q->selectionChanged();
}}}
Attachments
Issue Links
- duplicates
-
QTBUG-75131 [REG 5.11->5.12] QWebEngineView::setPage doesn't delete old page
-
- Closed
-