From c43c3c3ae46735e3d23e0ed70c31143d2556a579 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Mon, 25 Jan 2021 14:59:55 +0100 Subject: 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 --- src/core/web_contents_delegate_qt.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/core/web_contents_delegate_qt.h') diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h index cd6d901e4..5a3dff6e9 100644 --- a/src/core/web_contents_delegate_qt.h +++ b/src/core/web_contents_delegate_qt.h @@ -175,6 +175,9 @@ public: void DidFirstVisuallyNonEmptyPaint() override; void ActivateContents(content::WebContents* contents) override; bool ShouldNavigateOnBackForwardMouseButtons() override; + void ResourceLoadComplete(content::RenderFrameHost* render_frame_host, + const content::GlobalRequestID& request_id, + const blink::mojom::ResourceLoadInfo& resource_load_info) override; void didFailLoad(const QUrl &url, int errorCode, const QString &errorDescription); void overrideWebPreferences(content::WebContents *, blink::web_pref::WebPreferences*); @@ -214,7 +217,7 @@ private: 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()); + void EmitLoadFinished(bool success, const QUrl &url, bool isErrorPage = false, int errorCode = 0, const QString &errorDescription = QString(), bool triggersErrorPage = false); void EmitLoadCommitted(); LoadingState determineLoadingState(content::WebContents *contents); @@ -242,6 +245,7 @@ private: QMap m_loadProgressMap; QUrl m_lastLoadedUrl; bool m_isNavigationCommitted = false; + bool m_isDocumentEmpty = true; base::WeakPtrFactory m_weakPtrFactory { this }; }; -- cgit v1.2.3