From daf3a688306f95a12969837e3d2b7d84ae30359a Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Wed, 3 Sep 2014 16:59:37 +0200 Subject: Fix url stored in LoadRequest The test_urlProperty() qml test has failed because the active url was stored in LoadRequest in case of LoadFailedStatus. With this fix the loadRequest stores the url of that page which implies the request. Change-Id: I6aab814a4a7d3b47043b03fccde3d9995b40d8fa Reviewed-by: Pierre Rossi --- src/core/web_contents_adapter_client.h | 2 +- src/core/web_contents_delegate_qt.cpp | 6 +++--- src/webengine/api/qquickwebengineview.cpp | 18 +++++++++--------- src/webengine/api/qquickwebengineview_p_p.h | 2 +- src/webenginewidgets/api/qwebenginepage.cpp | 7 ++++--- src/webenginewidgets/api/qwebenginepage_p.h | 2 +- 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index 215942f8f..8fd401fe4 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -151,7 +151,7 @@ public: virtual void loadStarted(const QUrl &provisionalUrl) = 0; virtual void loadCommitted() = 0; virtual void loadVisuallyCommitted() = 0; - virtual void loadFinished(bool success, int error_code = 0, const QString &error_description = QString()) = 0; + virtual void loadFinished(bool success, const QUrl &url, int errorCode = 0, const QString &errorDescription = QString()) = 0; virtual void focusContainer() = 0; virtual void adoptNewWindow(WebContentsAdapter *newWebContents, WindowOpenDisposition disposition, bool userGesture, const QRect & initialGeometry) = 0; virtual void close() = 0; diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index 5de433b3b..b30fcb1e3 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -153,11 +153,11 @@ void WebContentsDelegateQt::DidFailProvisionalLoad(int64 frame_id, const base::s DidFailLoad(frame_id, validated_url, is_main_frame, error_code, error_description, render_view_host); } -void WebContentsDelegateQt::DidFailLoad(int64, const GURL&, bool is_main_frame, int error_code, const base::string16 &error_description, content::RenderViewHost *rvh) +void WebContentsDelegateQt::DidFailLoad(int64, const GURL &validated_url, bool is_main_frame, int error_code, const base::string16 &error_description, content::RenderViewHost *rvh) { if (!is_main_frame || m_isLoadingErrorPage) return; - m_viewClient->loadFinished(false, error_code, toQt(error_description)); + m_viewClient->loadFinished(false, toQt(validated_url), error_code, toQt(error_description)); m_viewClient->loadProgressChanged(0); } @@ -171,7 +171,7 @@ void WebContentsDelegateQt::DidFinishLoad(int64, const GURL &url, bool is_main_f if (is_main_frame) { m_viewClient->loadProgressChanged(100); - m_viewClient->loadFinished(true); + m_viewClient->loadFinished(true, toQt(url)); content::NavigationEntry *entry = web_contents()->GetController().GetActiveEntry(); if (!entry) diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index bc9a0258e..c3fb6c6c9 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -298,29 +298,29 @@ Q_STATIC_ASSERT(static_cast(WebEngineError::NoErrorDomain) == static_cast(WebEngineError::CertificateErrorDomain) == static_cast(QQuickWebEngineView::CertificateErrorDomain)); Q_STATIC_ASSERT(static_cast(WebEngineError::DnsErrorDomain) == static_cast(QQuickWebEngineView::DnsErrorDomain)); -void QQuickWebEngineViewPrivate::loadFinished(bool success, int error_code, const QString &error_description) +void QQuickWebEngineViewPrivate::loadFinished(bool success, const QUrl &url, int errorCode, const QString &errorDescription) { Q_Q(QQuickWebEngineView); isLoading = false; m_history->reset(); - if (error_code == WebEngineError::UserAbortedError) { - QQuickWebEngineLoadRequest loadRequest(q->url(), QQuickWebEngineView::LoadStoppedStatus); + if (errorCode == WebEngineError::UserAbortedError) { + QQuickWebEngineLoadRequest loadRequest(url, QQuickWebEngineView::LoadStoppedStatus); Q_EMIT q->loadingChanged(&loadRequest); return; } if (success) { - QQuickWebEngineLoadRequest loadRequest(q->url(), QQuickWebEngineView::LoadSucceededStatus); + QQuickWebEngineLoadRequest loadRequest(url, QQuickWebEngineView::LoadSucceededStatus); Q_EMIT q->loadingChanged(&loadRequest); return; } - Q_ASSERT(error_code); + Q_ASSERT(errorCode); QQuickWebEngineLoadRequest loadRequest( - q->url(), + url, QQuickWebEngineView::LoadFailedStatus, - error_description, - error_code, - static_cast(WebEngineError::toQtErrorDomain(error_code))); + errorDescription, + errorCode, + static_cast(WebEngineError::toQtErrorDomain(errorCode))); Q_EMIT q->loadingChanged(&loadRequest); return; } diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index 7f43d7fe6..ac8b8564f 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -157,7 +157,7 @@ public: virtual void loadStarted(const QUrl &provisionalUrl) Q_DECL_OVERRIDE; virtual void loadCommitted() Q_DECL_OVERRIDE; virtual void loadVisuallyCommitted() Q_DECL_OVERRIDE; - virtual void loadFinished(bool success, int error_code = 0, const QString &error_description = QString()) Q_DECL_OVERRIDE; + virtual void loadFinished(bool success, const QUrl &url, int errorCode = 0, const QString &errorDescription = QString()) Q_DECL_OVERRIDE; virtual void focusContainer() Q_DECL_OVERRIDE; virtual void adoptNewWindow(WebContentsAdapter *newWebContents, WindowOpenDisposition disposition, bool userGesture, const QRect &) Q_DECL_OVERRIDE; virtual void close() Q_DECL_OVERRIDE; diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index ac677a8c6..543e0c4ab 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -248,11 +248,12 @@ void QWebEnginePagePrivate::loadCommitted() updateNavigationActions(); } -void QWebEnginePagePrivate::loadFinished(bool success, int error_code, const QString &error_description) +void QWebEnginePagePrivate::loadFinished(bool success, const QUrl &url, int errorCode, const QString &errorDescription) { Q_Q(QWebEnginePage); - Q_UNUSED(error_code); - Q_UNUSED(error_description); + Q_UNUSED(url); + Q_UNUSED(errorCode); + Q_UNUSED(errorDescription); isLoading = false; if (success) m_explicitUrl = QUrl(); diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index fab4a2139..ccbfb2bc1 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -117,7 +117,7 @@ public: virtual void loadStarted(const QUrl &provisionalUrl) Q_DECL_OVERRIDE; virtual void loadCommitted() Q_DECL_OVERRIDE; virtual void loadVisuallyCommitted() Q_DECL_OVERRIDE { } - virtual void loadFinished(bool success, int error_code, const QString &error_description = QString()) Q_DECL_OVERRIDE; + virtual void loadFinished(bool success, const QUrl &url, int errorCode = 0, const QString &errorDescription = QString()) Q_DECL_OVERRIDE; virtual void focusContainer() Q_DECL_OVERRIDE; virtual void adoptNewWindow(WebContentsAdapter *newWebContents, WindowOpenDisposition disposition, bool userGesture, const QRect &initialGeometry) Q_DECL_OVERRIDE; virtual void close() Q_DECL_OVERRIDE; -- cgit v1.2.3