summaryrefslogtreecommitdiff
path: root/src/webenginewidgets/api/qwebenginepage.cpp
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2021-01-25 14:59:55 +0100
committerPeter Varga <pvarga@inf.u-szeged.hu>2021-02-05 08:19:49 +0100
commitc43c3c3ae46735e3d23e0ed70c31143d2556a579 (patch)
treef24808bc3dd12c862510a994b3da8e004749b837 /src/webenginewidgets/api/qwebenginepage.cpp
parentf9885840ef2840179f589dd1f71a776df5fd34f3 (diff)
downloadqtwebengine-c43c3c3ae46735e3d23e0ed70c31143d2556a579.tar.gz
Fix loadFinished signal if page has content but server sends HTTP error
For triggering an error page 3 conditions should be fulfilled: - main frame navigation - the page's document is empty - the HTTP status code indicates an error This fix adds check for the empty document and sends loadFinished signal without expecting an error page if the document is not empty. Fixes: QTBUG-90517 Change-Id: I6463d75fb5e682932feca64b0f059f9aa475795c Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
Diffstat (limited to 'src/webenginewidgets/api/qwebenginepage.cpp')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index f6e4e9f9b..57aa413b9 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -282,7 +282,8 @@ void QWebEnginePagePrivate::loadStarted(const QUrl &provisionalUrl, bool isError
QTimer::singleShot(0, q, &QWebEnginePage::loadStarted);
}
-void QWebEnginePagePrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription)
+void QWebEnginePagePrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode,
+ const QString &errorDescription, bool triggersErrorPage)
{
Q_Q(QWebEnginePage);
Q_UNUSED(url);
@@ -297,9 +298,8 @@ void QWebEnginePagePrivate::loadFinished(bool success, const QUrl &url, bool isE
}
isLoading = false;
- // Delay notifying failure until the error-page is done loading.
- // Error-pages are not loaded on failures due to abort.
- if (success || errorCode == -3 /* ERR_ABORTED*/ || !settings->testAttribute(QWebEngineSettings::ErrorPageEnabled)) {
+ Q_ASSERT((success && !triggersErrorPage) || !success);
+ if (!triggersErrorPage) {
QTimer::singleShot(0, q, [q, success](){
emit q->loadFinished(success);
});