summaryrefslogtreecommitdiff
path: root/dev-qt/qtwebengine/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-07-24 02:11:45 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-07-24 02:11:45 +0100
commitb49088575eb777ced2551f484da86317332d6087 (patch)
treebf9a151cf2d61956340d555659ffc098ee1da466 /dev-qt/qtwebengine/files
parent514d1bbe260df2521fe60f1a3ec87cfcfde1a829 (diff)
gentoo resync : 24.07.2021
Diffstat (limited to 'dev-qt/qtwebengine/files')
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210406-gcc11.patch126
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210406-icu69.patch92
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210421-qtbug-91773.patch372
3 files changed, 0 insertions, 590 deletions
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210406-gcc11.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210406-gcc11.patch
deleted file mode 100644
index 7411567e74f0..000000000000
--- a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210406-gcc11.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-diff --git a/src/3rdparty/chromium/third_party/angle/src/libANGLE/HandleAllocator.cpp b/src/3rdparty/chromium/third_party/angle/src/libANGLE/HandleAllocator.cpp
-index 013f1dfb2..3ce63c192 100644
---- a/src/3rdparty/chromium/third_party/angle/src/libANGLE/HandleAllocator.cpp
-+++ b/src/3rdparty/chromium/third_party/angle/src/libANGLE/HandleAllocator.cpp
-@@ -9,6 +9,7 @@
-
- #include "libANGLE/HandleAllocator.h"
-
-+#include <limits>
- #include <algorithm>
- #include <functional>
-
-diff --git a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc
-index fd651958f..1e8d0606c 100644
---- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc
-+++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/containers/string_pool.cc
-@@ -14,9 +14,9 @@
- * limitations under the License.
- */
-
-+#include <limits>
- #include "src/trace_processor/containers/string_pool.h"
-
--#include <limits>
-
- #include "perfetto/base/logging.h"
- #include "perfetto/ext/base/utils.h"
-diff --git a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc
-index 00496b335..0dccfeb8a 100644
---- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc
-+++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/db/column.cc
-@@ -14,6 +14,7 @@
- * limitations under the License.
- */
-
-+#include <limits>
- #include "src/trace_processor/db/column.h"
-
- #include "src/trace_processor/db/compare.h"
-diff --git a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/types/variadic.cc b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/types/variadic.cc
-index 837bfeba9..cdd56817d 100644
---- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/types/variadic.cc
-+++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/types/variadic.cc
-@@ -14,6 +14,7 @@
- * limitations under the License.
- */
-
-+#include <limits>
- #include "src/trace_processor/types/variadic.h"
-
- namespace perfetto {
-diff --git a/src/3rdparty/chromium/ui/accessibility/platform/ax_platform_atk_hyperlink.cc b/src/3rdparty/chromium/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
-index be91def6b..73f202356 100644
---- a/src/3rdparty/chromium/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
-+++ b/src/3rdparty/chromium/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
-@@ -245,7 +245,7 @@ static void AXPlatformAtkHyperlinkInit(AXPlatformAtkHyperlink* self, gpointer) {
- }
-
- GType ax_platform_atk_hyperlink_get_type() {
-- static volatile gsize type_volatile = 0;
-+ static gsize type_volatile = 0;
-
- AXPlatformNodeAuraLinux::EnsureGTypeInit();
-
-diff --git a/src/3rdparty/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc b/src/3rdparty/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc
-index 04125c6fd..6c64e5d8e 100644
---- a/src/3rdparty/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc
-+++ b/src/3rdparty/chromium/ui/accessibility/platform/ax_platform_node_auralinux.cc
-@@ -2274,7 +2274,7 @@ void ClassInit(gpointer class_pointer, gpointer /* class_data */) {
- GType GetType() {
- AXPlatformNodeAuraLinux::EnsureGTypeInit();
-
-- static volatile gsize type_volatile = 0;
-+ static gsize type_volatile = 0;
- if (g_once_init_enter(&type_volatile)) {
- static const GTypeInfo type_info = {
- sizeof(AXPlatformNodeAuraLinuxClass), // class_size
-diff --git a/src/3rdparty/chromium/ui/gtk/gtk_key_bindings_handler.cc b/src/3rdparty/chromium/ui/gtk/gtk_key_bindings_handler.cc
-index c663a2074..38a342484 100644
---- a/src/3rdparty/chromium/ui/gtk/gtk_key_bindings_handler.cc
-+++ b/src/3rdparty/chromium/ui/gtk/gtk_key_bindings_handler.cc
-@@ -141,7 +141,7 @@ void GtkKeyBindingsHandler::HandlerClassInit(HandlerClass* klass) {
- }
-
- GType GtkKeyBindingsHandler::HandlerGetType() {
-- static volatile gsize type_id_volatile = 0;
-+ static gsize type_id_volatile = 0;
- if (g_once_init_enter(&type_id_volatile)) {
- GType type_id = g_type_register_static_simple(
- GTK_TYPE_TEXT_VIEW, g_intern_static_string("GtkKeyBindingsHandler"),
---- a/src/3rdparty/chromium/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
-+++ b/src/3rdparty/chromium/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <cstddef>
- #include "components/bookmarks/browser/bookmark_expanded_state_tracker.h"
-
- #include <stdint.h>
-diff --git a/src/3rdparty/chromium/components/bookmarks/browser/base_bookmark_model_observer.cc b/src/3rdparty/chromium/components/bookmarks/browser/base_bookmark_model_observer.cc
-index 657a3c96b..ad641a082 100644
---- a/src/3rdparty/chromium/components/bookmarks/browser/base_bookmark_model_observer.cc
-+++ b/src/3rdparty/chromium/components/bookmarks/browser/base_bookmark_model_observer.cc
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <cstddef>
-+
- #include "components/bookmarks/browser/base_bookmark_model_observer.h"
-
- namespace bookmarks {
-diff --git a/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc b/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
-index 19f9aab5b..27fec2168 100644
---- a/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
-+++ b/src/3rdparty/chromium/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc
-@@ -37,6 +37,7 @@
-
- #include <algorithm>
- #include <array>
-+#include <limits>
- #include "absl/base/internal/hide_ptr.h"
- #include "absl/base/internal/raw_logging.h"
- #include "absl/base/internal/spinlock.h"
-
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210406-icu69.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210406-icu69.patch
deleted file mode 100644
index 457953671a47..000000000000
--- a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210406-icu69.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 035c305ce7761f51328b45f1bd83e26aef267c9d Mon Sep 17 00:00:00 2001
-From: Frank Tang <ftang@chromium.org>
-Date: Thu, 15 Oct 2020 22:44:27 -0700
-Subject: [PATCH] [Intl] call new ListFormatter::createInstance
-
-The one we currently using is now marked as internal and to be removed
-for 68. Migrating to the style which already avaiable in ICU 67-1.
-
-Bug: v8:11031
-Change-Id: I668382a2e1b8602ddca02bf231c5008a6c92bf2d
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477751
-Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
-Commit-Queue: Frank Tang <ftang@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#70638}
----
-
-diff --git a/src/3rdparty/chromium/v8/src/objects/js-list-format.cc b/src/3rdparty/chromium/v8/src/objects/js-list-format.cc
-index b17d38c..e48a387 100644
---- a/src/3rdparty/chromium/v8/src/objects/js-list-format.cc
-+++ b/src/3rdparty/chromium/v8/src/objects/js-list-format.cc
-@@ -29,46 +29,27 @@
- namespace internal {
-
- namespace {
--const char* kStandard = "standard";
--const char* kOr = "or";
--const char* kUnit = "unit";
--const char* kStandardShort = "standard-short";
--const char* kOrShort = "or-short";
--const char* kUnitShort = "unit-short";
--const char* kStandardNarrow = "standard-narrow";
--const char* kOrNarrow = "or-narrow";
--const char* kUnitNarrow = "unit-narrow";
-
--const char* GetIcuStyleString(JSListFormat::Style style,
-- JSListFormat::Type type) {
-+UListFormatterWidth GetIcuWidth(JSListFormat::Style style) {
-+ switch (style) {
-+ case JSListFormat::Style::LONG:
-+ return ULISTFMT_WIDTH_WIDE;
-+ case JSListFormat::Style::SHORT:
-+ return ULISTFMT_WIDTH_SHORT;
-+ case JSListFormat::Style::NARROW:
-+ return ULISTFMT_WIDTH_NARROW;
-+ }
-+ UNREACHABLE();
-+}
-+
-+UListFormatterType GetIcuType(JSListFormat::Type type) {
- switch (type) {
- case JSListFormat::Type::CONJUNCTION:
-- switch (style) {
-- case JSListFormat::Style::LONG:
-- return kStandard;
-- case JSListFormat::Style::SHORT:
-- return kStandardShort;
-- case JSListFormat::Style::NARROW:
-- return kStandardNarrow;
-- }
-+ return ULISTFMT_TYPE_AND;
- case JSListFormat::Type::DISJUNCTION:
-- switch (style) {
-- case JSListFormat::Style::LONG:
-- return kOr;
-- case JSListFormat::Style::SHORT:
-- return kOrShort;
-- case JSListFormat::Style::NARROW:
-- return kOrNarrow;
-- }
-+ return ULISTFMT_TYPE_OR;
- case JSListFormat::Type::UNIT:
-- switch (style) {
-- case JSListFormat::Style::LONG:
-- return kUnit;
-- case JSListFormat::Style::SHORT:
-- return kUnitShort;
-- case JSListFormat::Style::NARROW:
-- return kUnitNarrow;
-- }
-+ return ULISTFMT_TYPE_UNITS;
- }
- UNREACHABLE();
- }
-@@ -143,7 +124,7 @@
- icu::Locale icu_locale = r.icu_locale;
- UErrorCode status = U_ZERO_ERROR;
- icu::ListFormatter* formatter = icu::ListFormatter::createInstance(
-- icu_locale, GetIcuStyleString(style_enum, type_enum), status);
-+ icu_locale, GetIcuType(type_enum), GetIcuWidth(style_enum), status);
- if (U_FAILURE(status) || formatter == nullptr) {
- delete formatter;
- THROW_NEW_ERROR(isolate, NewRangeError(MessageTemplate::kIcuError),
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210421-qtbug-91773.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210421-qtbug-91773.patch
deleted file mode 100644
index 88e7b893e302..000000000000
--- a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210421-qtbug-91773.patch
+++ /dev/null
@@ -1,372 +0,0 @@
-diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
-index 5597c69f9..2cd48907b 100644
---- a/src/core/web_contents_adapter.cpp
-+++ b/src/core/web_contents_adapter.cpp
-@@ -716,8 +716,7 @@ void WebContentsAdapter::load(const QWebEngineHttpRequest &request)
- m_adapterClient->loadFinished(false, request.url(), false,
- net::ERR_DISALLOWED_URL_SCHEME,
- QCoreApplication::translate("WebContentsAdapter",
-- "HTTP-POST data can only be sent over HTTP(S) protocol"),
-- false);
-+ "HTTP-POST data can only be sent over HTTP(S) protocol"));
- return;
- }
- params.post_data = network::ResourceRequestBody::CreateFromBytes(
-@@ -773,7 +772,7 @@ void WebContentsAdapter::setContent(const QByteArray &data, const QString &mimeT
-
- GURL dataUrlToLoad(urlString);
- if (dataUrlToLoad.spec().size() > url::kMaxURLChars) {
-- m_adapterClient->loadFinished(false, baseUrl, false, net::ERR_ABORTED, QString(), false);
-+ m_adapterClient->loadFinished(false, baseUrl, false, net::ERR_ABORTED, QString());
- return;
- }
- content::NavigationController::LoadURLParams params((dataUrlToLoad));
-@@ -1995,6 +1994,7 @@ void WebContentsAdapter::discard()
- if (m_webContents->IsLoading()) {
- m_webContentsDelegate->didFailLoad(m_webContentsDelegate->url(webContents()), net::Error::ERR_ABORTED,
- QStringLiteral("Discarded"));
-+ m_webContentsDelegate->DidStopLoading();
- }
-
- content::WebContents::CreateParams createParams(m_profileAdapter->profile());
-diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h
-index 267266d81..afc43806a 100644
---- a/src/core/web_contents_adapter_client.h
-+++ b/src/core/web_contents_adapter_client.h
-@@ -466,8 +466,7 @@ public:
- virtual void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) = 0;
- virtual void loadCommitted() = 0;
- virtual void loadVisuallyCommitted() = 0;
-- virtual void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode,
-- const QString &errorDescription, bool triggersErrorPage) = 0;
-+ virtual void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) = 0;
- virtual void focusContainer() = 0;
- virtual void unhandledKeyEvent(QKeyEvent *event) = 0;
- virtual QSharedPointer<WebContentsAdapter>
-diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp
-index 1e92a46f8..f0e4130e8 100644
---- a/src/core/web_contents_delegate_qt.cpp
-+++ b/src/core/web_contents_delegate_qt.cpp
-@@ -259,14 +259,12 @@ void WebContentsDelegateQt::CloseContents(content::WebContents *source)
-
- void WebContentsDelegateQt::LoadProgressChanged(double progress)
- {
-- QUrl current_url(m_viewClient->webContentsAdapter()->getNavigationEntryOriginalUrl(m_viewClient->webContentsAdapter()->currentNavigationEntryIndex()));
-- int p = qMin(qRound(progress * 100), 100);
--
-- if (!m_loadingErrorFrameList.isEmpty() || !m_loadProgressMap.contains(current_url) || m_loadProgressMap[current_url] == 100 || p == 100)
-+ if (!m_loadingErrorFrameList.isEmpty() || !m_loadingInfo.isLoading()) // suppress signals that aren't between loadStarted and loadFinished
- return;
-
-- if (p > m_loadProgressMap[current_url]) { // ensure strict monotonic increase
-- m_loadProgressMap[current_url] = p;
-+ int p = qMin(qRound(progress * 100), 100);
-+ if (p > m_loadingInfo.progress) { // ensure strict monotonic increase
-+ m_loadingInfo.progress = p;
- m_viewClient->loadProgressChanged(p);
- }
- }
-@@ -339,35 +337,21 @@ void WebContentsDelegateQt::RenderViewHostChanged(content::RenderViewHost *, con
- }
- }
-
--void WebContentsDelegateQt::EmitLoadStarted(const QUrl &url, bool isErrorPage)
-+void WebContentsDelegateQt::emitLoadStarted(bool isErrorPage)
- {
-- m_isDocumentEmpty = true;
-- m_viewClient->loadStarted(url, isErrorPage);
-- m_viewClient->updateNavigationActions();
--
-- if ((url.hasFragment() || m_lastLoadedUrl.hasFragment())
-- && url.adjusted(QUrl::RemoveFragment) == m_lastLoadedUrl.adjusted(QUrl::RemoveFragment)
-- && !m_isNavigationCommitted) {
-- m_loadProgressMap.insert(url, 100);
-- m_lastLoadedUrl = url;
-- m_viewClient->loadProgressChanged(100);
-+ // only report first ever load start or separate one for error page only
-+ if (!isErrorPage && m_loadingInfo.isLoading()) // already running
- return;
-- }
-
-- if (!m_loadProgressMap.isEmpty()) {
-- QMap<QUrl, int>::iterator it = m_loadProgressMap.begin();
-- while (it != m_loadProgressMap.end()) {
-- if (it.value() == 100) {
-- it = m_loadProgressMap.erase(it);
-- continue;
-- }
-- ++it;
-- }
-+ m_isDocumentEmpty = true; // reset to default which may only be overridden on actual resource load complete
-+ if (!isErrorPage) {
-+ m_loadingInfo.progress = 0;
-+ m_viewClient->loadStarted(m_loadingInfo.url, false);
-+ m_viewClient->updateNavigationActions();
-+ m_viewClient->loadProgressChanged(0);
-+ } else {
-+ m_viewClient->loadStarted(toQt(GURL(content::kUnreachableWebDataURL)), true);
- }
--
-- m_lastLoadedUrl = url;
-- m_loadProgressMap.insert(url, 0);
-- m_viewClient->loadProgressChanged(0);
- }
-
- void WebContentsDelegateQt::DidStartNavigation(content::NavigationHandle *navigation_handle)
-@@ -375,34 +359,41 @@ void WebContentsDelegateQt::DidStartNavigation(content::NavigationHandle *naviga
- if (!webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled))
- navigation_handle->SetSilentlyIgnoreErrors();
-
-- if (!navigation_handle->IsInMainFrame())
-+ if (!navigation_handle->IsInMainFrame() || !web_contents()->IsLoadingToDifferentDocument())
- return;
-
-
- m_loadingErrorFrameList.clear();
- m_faviconManager->resetCandidates();
-- EmitLoadStarted(toQt(navigation_handle->GetURL()));
-+
-+ m_loadingInfo.url = toQt(navigation_handle->GetURL());
-+ // IsErrorPage is only set after navigation commit, so check it otherwise: error page shouldn't have navigation entry
-+ bool isErrorPage = m_loadingInfo.triggersErrorPage && !navigation_handle->GetNavigationEntry();
-+ emitLoadStarted(isErrorPage);
- }
-
--void WebContentsDelegateQt::EmitLoadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription, bool triggersErrorPage)
-+void WebContentsDelegateQt::emitLoadFinished(bool isErrorPage)
- {
-- Q_ASSERT(!isErrorPage || webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled));
-- Q_ASSERT((triggersErrorPage && webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled)) || !triggersErrorPage);
--
-- // When error page enabled we don't need to send the error page load finished signal
-- if (m_loadProgressMap[url] == 100)
-+ if (!m_loadingInfo.isLoading()) // not currently running
- return;
-
-- m_lastLoadedUrl = url;
-- m_loadProgressMap[url] = 100;
-- m_isNavigationCommitted = false;
-- m_viewClient->loadProgressChanged(100);
-+ Q_ASSERT(!isErrorPage || webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled));
-+ Q_ASSERT((m_loadingInfo.triggersErrorPage && webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled)) || !m_loadingInfo.triggersErrorPage);
-+
-+ if (!isErrorPage) {
-+ if (m_loadingInfo.progress < 100) {
-+ m_loadingInfo.progress = 100;
-+ m_viewClient->loadProgressChanged(100);
-+ }
-
-- m_viewClient->loadFinished(success, url, isErrorPage, errorCode, errorDescription, triggersErrorPage);
-- m_viewClient->updateNavigationActions();
-+ m_viewClient->loadFinished(m_loadingInfo.success, m_loadingInfo.url, false, m_loadingInfo.errorCode, m_loadingInfo.errorDescription);
-+ m_viewClient->updateNavigationActions();
-+ } else {
-+ m_viewClient->loadFinished(false, toQt(GURL(content::kUnreachableWebDataURL)), true, 0, QString());
-+ }
- }
-
--void WebContentsDelegateQt::EmitLoadCommitted()
-+void WebContentsDelegateQt::emitLoadCommitted()
- {
- m_findTextHelper->handleLoadCommitted();
- m_viewClient->loadCommitted();
-@@ -422,8 +413,7 @@ void WebContentsDelegateQt::DidFinishNavigation(content::NavigationHandle *navig
- profileAdapter->visitedLinksManager()->addUrl(url);
- }
-
-- m_isNavigationCommitted = true;
-- EmitLoadCommitted();
-+ emitLoadCommitted();
- }
-
- // Success is reported by DidFinishLoad, but DidFailLoad is now dead code and needs to be handled below
-@@ -440,11 +430,11 @@ void WebContentsDelegateQt::DidFinishNavigation(content::NavigationHandle *navig
- // Now report we are starting to load an error-page.
- m_loadingErrorFrameList.append(navigation_handle->GetRenderFrameHost()->GetRoutingID());
- m_faviconManager->resetCandidates();
-- EmitLoadStarted(toQt(GURL(content::kUnreachableWebDataURL)), true);
-+ emitLoadStarted(true);
-
- // If it is already committed we will not see another DidFinishNavigation call or a DidFinishLoad call.
- if (navigation_handle->HasCommitted())
-- EmitLoadCommitted();
-+ emitLoadCommitted();
- }
- }
-
-@@ -486,6 +476,9 @@ void WebContentsDelegateQt::DidStopLoading()
-
- if (m_loadingState == LoadingState::Loading)
- setLoadingState(LoadingState::Loaded);
-+
-+ emitLoadFinished();
-+ m_loadingInfo.clear();
- }
-
- void WebContentsDelegateQt::didFailLoad(const QUrl &url, int errorCode, const QString &errorDescription)
-@@ -495,7 +488,11 @@ void WebContentsDelegateQt::didFailLoad(const QUrl &url, int errorCode, const QS
- // Delay notifying failure until the error-page is done loading.
- // Error-pages are not loaded on failures due to abort.
- bool aborted = (errorCode == -3 /* ERR_ABORTED*/ );
-- EmitLoadFinished(false /* success */ , url, false /* isErrorPage */, errorCode, errorDescription, errorPageEnabled && !aborted);
-+ m_loadingInfo.success = false;
-+ m_loadingInfo.url = url;
-+ m_loadingInfo.errorCode = errorCode;
-+ m_loadingInfo.errorDescription = errorDescription;
-+ m_loadingInfo.triggersErrorPage = errorPageEnabled && !aborted;
- }
-
- void WebContentsDelegateQt::DidFailLoad(content::RenderFrameHost* render_frame_host, const GURL& validated_url, int error_code)
-@@ -511,8 +508,7 @@ void WebContentsDelegateQt::DidFailLoad(content::RenderFrameHost* render_frame_h
- Q_ASSERT(error_code == -3 /* ERR_ABORTED */);
- m_loadingErrorFrameList.removeOne(render_frame_host->GetRoutingID());
- m_viewClient->iconChanged(QUrl());
--
-- EmitLoadFinished(false /* success */, toQt(validated_url), true /* isErrorPage */);
-+ emitLoadFinished(/* isErrorPage = */true);
- return;
- }
- // Qt6: Consider getting rid of the error_description (Chromium already has)
-@@ -532,7 +528,7 @@ void WebContentsDelegateQt::DidFinishLoad(content::RenderFrameHost* render_frame
- // Trigger LoadFinished signal for main frame's error page only.
- if (!render_frame_host->GetParent()) {
- m_viewClient->iconChanged(QUrl());
-- EmitLoadFinished(true /* success */, toQt(validated_url), true /* isErrorPage */);
-+ emitLoadFinished(/* isErrorPage = */true);
- }
-
- return;
-@@ -550,7 +546,11 @@ void WebContentsDelegateQt::DidFinishLoad(content::RenderFrameHost* render_frame
- int http_statuscode = entry ? entry->GetHttpStatusCode() : 0;
- bool errorPageEnabled = webEngineSettings()->testAttribute(WebEngineSettings::ErrorPageEnabled);
- bool triggersErrorPage = errorPageEnabled && (http_statuscode >= 400) && m_isDocumentEmpty;
-- EmitLoadFinished(http_statuscode < 400, toQt(validated_url), false /* isErrorPage */, http_statuscode, QString(), triggersErrorPage);
-+
-+ m_loadingInfo.success = http_statuscode < 400;
-+ m_loadingInfo.url = toQt(validated_url);
-+ m_loadingInfo.errorCode = http_statuscode;
-+ m_loadingInfo.triggersErrorPage = triggersErrorPage;
- }
-
- void WebContentsDelegateQt::DidUpdateFaviconURL(content::RenderFrameHost *render_frame_host, const std::vector<blink::mojom::FaviconURLPtr> &candidates)
-diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h
-index 5a3dff6e9..7149f6bff 100644
---- a/src/core/web_contents_delegate_qt.h
-+++ b/src/core/web_contents_delegate_qt.h
-@@ -216,9 +216,9 @@ private:
- WindowOpenDisposition disposition, const gfx::Rect &initial_pos,
- const QUrl &url,
- bool user_gesture);
-- void EmitLoadStarted(const QUrl &url, bool isErrorPage = false);
-- void EmitLoadFinished(bool success, const QUrl &url, bool isErrorPage = false, int errorCode = 0, const QString &errorDescription = QString(), bool triggersErrorPage = false);
-- void EmitLoadCommitted();
-+ void emitLoadStarted(bool isErrorPage = false);
-+ void emitLoadFinished(bool isErrorPage = false);
-+ void emitLoadCommitted();
-
- LoadingState determineLoadingState(content::WebContents *contents);
- void setLoadingState(LoadingState state);
-@@ -242,9 +242,17 @@ private:
- int m_desktopStreamCount = 0;
- mutable bool m_pendingUrlUpdate = false;
-
-- QMap<QUrl, int> m_loadProgressMap;
-- QUrl m_lastLoadedUrl;
-- bool m_isNavigationCommitted = false;
-+ struct LoadingInfo {
-+ bool success = false;
-+ int progress = -1;
-+ bool isLoading() const { return progress >= 0; }
-+ QUrl url;
-+ int errorCode = 0;
-+ QString errorDescription;
-+ bool triggersErrorPage = false;
-+ void clear() { *this = LoadingInfo(); }
-+ } m_loadingInfo;
-+
- bool m_isDocumentEmpty = true;
- base::WeakPtrFactory<WebContentsDelegateQt> m_weakPtrFactory { this };
- };
-diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
-index 6ab1c97cb..1de7f1c7f 100644
---- a/src/webengine/api/qquickwebengineview.cpp
-+++ b/src/webengine/api/qquickwebengineview.cpp
-@@ -496,11 +496,9 @@ Q_STATIC_ASSERT(static_cast<int>(WebEngineError::NoErrorDomain) == static_cast<i
- Q_STATIC_ASSERT(static_cast<int>(WebEngineError::CertificateErrorDomain) == static_cast<int>(QQuickWebEngineView::CertificateErrorDomain));
- Q_STATIC_ASSERT(static_cast<int>(WebEngineError::DnsErrorDomain) == static_cast<int>(QQuickWebEngineView::DnsErrorDomain));
-
--void QQuickWebEngineViewPrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode,
-- const QString &errorDescription, bool triggersErrorPage)
-+void QQuickWebEngineViewPrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription)
- {
- Q_Q(QQuickWebEngineView);
-- Q_UNUSED(triggersErrorPage);
-
- if (isErrorPage) {
- #if QT_CONFIG(webengine_testsupport)
-diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h
-index ebe55c345..ec535298b 100644
---- a/src/webengine/api/qquickwebengineview_p_p.h
-+++ b/src/webengine/api/qquickwebengineview_p_p.h
-@@ -116,8 +116,7 @@ public:
- void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) override;
- void loadCommitted() override;
- void loadVisuallyCommitted() override;
-- void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode,
-- const QString &errorDescription, bool triggersErrorPage) override;
-+ void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) override;
- void focusContainer() override;
- void unhandledKeyEvent(QKeyEvent *event) override;
- QSharedPointer<QtWebEngineCore::WebContentsAdapter>
-diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
-index e08afed44..b32c15039 100644
---- a/src/webenginewidgets/api/qwebenginepage.cpp
-+++ b/src/webenginewidgets/api/qwebenginepage.cpp
-@@ -282,28 +282,20 @@ 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, bool triggersErrorPage)
-+void QWebEnginePagePrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription)
- {
- Q_Q(QWebEnginePage);
- Q_UNUSED(url);
- Q_UNUSED(errorCode);
- Q_UNUSED(errorDescription);
-
-- if (isErrorPage) {
-- QTimer::singleShot(0, q, [q](){
-- emit q->loadFinished(false);
-- });
-+ if (isErrorPage)
- return;
-- }
-
- isLoading = false;
-- Q_ASSERT((success && !triggersErrorPage) || !success);
-- if (!triggersErrorPage) {
-- QTimer::singleShot(0, q, [q, success](){
-- emit q->loadFinished(success);
-- });
-- }
-+ QTimer::singleShot(0, q, [q, success](){
-+ emit q->loadFinished(success);
-+ });
- }
-
- void QWebEnginePagePrivate::didPrintPageToPdf(const QString &filePath, bool success)
-diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h
-index 82ce99503..ae3ab5d25 100644
---- a/src/webenginewidgets/api/qwebenginepage_p.h
-+++ b/src/webenginewidgets/api/qwebenginepage_p.h
-@@ -107,8 +107,7 @@ public:
- void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) override;
- void loadCommitted() override { }
- void loadVisuallyCommitted() override { }
-- void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode,
-- const QString &errorDescription, bool triggersErrorPage) override;
-+ void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) override;
- void focusContainer() override;
- void unhandledKeyEvent(QKeyEvent *event) override;
- QSharedPointer<QtWebEngineCore::WebContentsAdapter>