From 093667a70fb2b12bb7dca333674854d2696aac27 Mon Sep 17 00:00:00 2001
From: Peter Varga <pvarga@inf.u-szeged.hu>
Date: Tue, 7 Oct 2014 10:08:27 +0200
Subject: [PATCH] Fix loadFinished signal in case of interrupting error page
 loading

If the error page loading is interrupted by loading of another page the
signals of the second page should not be suppressed.

Change-Id: I537daabf80ffed005acaaf2a6019e52a3250c523
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Adam Kallai <kadam@inf.u-szeged.hu>
---
 src/core/web_contents_delegate_qt.cpp                      | 1 +
 tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp
index ff31e081a..c2cccfedb 100644
--- a/src/core/web_contents_delegate_qt.cpp
+++ b/src/core/web_contents_delegate_qt.cpp
@@ -139,6 +139,7 @@ void WebContentsDelegateQt::DidStartProvisionalLoadForFrame(int64 frame_id, int6
     if (!is_main_frame)
         return;
 
+    m_loadingErrorFrameList.clear();
     m_viewClient->loadStarted(toQt(validated_url));
 }
 
diff --git a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
index d8ffe0124..7ad18cd0f 100644
--- a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
+++ b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
@@ -353,6 +353,7 @@ void tst_QWebEngineFrame::requestedUrlAfterSetAndLoadFailures()
     const QUrl first("http://abcdef.abcdef/");
     page.setUrl(first);
     ::waitForSignal(&page, SIGNAL(loadFinished(bool)));
+    QCOMPARE(spy.count(), 1);
     QCOMPARE(page.url(), first);
     QCOMPARE(page.requestedUrl(), first);
     QVERIFY(!spy.at(0).first().toBool());
@@ -362,6 +363,7 @@ void tst_QWebEngineFrame::requestedUrlAfterSetAndLoadFailures()
 
     page.load(second);
     ::waitForSignal(&page, SIGNAL(loadFinished(bool)));
+    QCOMPARE(spy.count(), 2);
     QCOMPARE(page.url(), first);
     QCOMPARE(page.requestedUrl(), second);
     QVERIFY(!spy.at(1).first().toBool());
-- 
GitLab