diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-03-22 17:44:13 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-10 08:58:28 +0000 |
commit | 0c2beb49b858f49489fa4f1ecee6bfdd6ce57e68 (patch) | |
tree | 2d296db45a6276ed7216adc52a1ce9113da71b63 | |
parent | 0eac492b5c66b1774118c387dd527ad419e51be7 (diff) |
Add navigation type for redirects
Fixes: QTBUG-74490
Change-Id: Ia8de7dbec717021f367133cebb8c118e333388e4
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
-rw-r--r-- | src/core/api/qwebengineurlrequestinfo.cpp | 2 | ||||
-rw-r--r-- | src/core/api/qwebengineurlrequestinfo.h | 3 | ||||
-rw-r--r-- | src/core/net/network_delegate_qt.cpp | 6 | ||||
-rw-r--r-- | src/core/web_contents_adapter_client.h | 3 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginenavigationrequest.cpp | 2 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc | 1 | ||||
-rw-r--r-- | tests/auto/quick/publicapi/tst_publicapi.cpp | 1 | ||||
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 2 |
10 files changed, 18 insertions, 8 deletions
diff --git a/src/core/api/qwebengineurlrequestinfo.cpp b/src/core/api/qwebengineurlrequestinfo.cpp index 3cbb4da17..5377bf0e0 100644 --- a/src/core/api/qwebengineurlrequestinfo.cpp +++ b/src/core/api/qwebengineurlrequestinfo.cpp @@ -74,6 +74,7 @@ ASSERT_ENUMS_MATCH(QtWebEngineCore::WebContentsAdapterClient::BackForwardNavigat QWebEngineUrlRequestInfo::NavigationTypeBackForward) ASSERT_ENUMS_MATCH(QtWebEngineCore::WebContentsAdapterClient::ReloadNavigation, QWebEngineUrlRequestInfo::NavigationTypeReload) ASSERT_ENUMS_MATCH(QtWebEngineCore::WebContentsAdapterClient::OtherNavigation, QWebEngineUrlRequestInfo::NavigationTypeOther) +ASSERT_ENUMS_MATCH(QtWebEngineCore::WebContentsAdapterClient::RedirectNavigation, QWebEngineUrlRequestInfo::NavigationTypeRedirect) /*! \class QWebEngineUrlRequestInfo @@ -210,6 +211,7 @@ QWebEngineUrlRequestInfo::ResourceType QWebEngineUrlRequestInfo::resourceType() \value NavigationTypeFormSubmitted Navigation submits a form. \value NavigationTypeBackForward Navigation initiated by a history action. \value NavigationTypeReload Navigation initiated by refreshing the page. + \value NavigationTypeRedirect Navigation triggered automatically by page content or remote server. \value NavigationTypeOther None of the above. */ diff --git a/src/core/api/qwebengineurlrequestinfo.h b/src/core/api/qwebengineurlrequestinfo.h index cf5a4801d..09b74bd60 100644 --- a/src/core/api/qwebengineurlrequestinfo.h +++ b/src/core/api/qwebengineurlrequestinfo.h @@ -88,7 +88,8 @@ public: NavigationTypeFormSubmitted, NavigationTypeBackForward, NavigationTypeReload, - NavigationTypeOther + NavigationTypeOther, + NavigationTypeRedirect, }; ResourceType resourceType() const; diff --git a/src/core/net/network_delegate_qt.cpp b/src/core/net/network_delegate_qt.cpp index 31da45314..e0e3a6c16 100644 --- a/src/core/net/network_delegate_qt.cpp +++ b/src/core/net/network_delegate_qt.cpp @@ -64,13 +64,13 @@ namespace QtWebEngineCore { WebContentsAdapterClient::NavigationType pageTransitionToNavigationType(ui::PageTransition transition) { + if (ui::PageTransitionIsRedirect(transition)) + return WebContentsAdapterClient::RedirectNavigation; + int32_t qualifier = ui::PageTransitionGetQualifier(transition); if (qualifier & ui::PAGE_TRANSITION_FORWARD_BACK) return WebContentsAdapterClient::BackForwardNavigation; - // FIXME: Make redirects a separate type: - if (qualifier & ui::PAGE_TRANSITION_CLIENT_REDIRECT) - return WebContentsAdapterClient::OtherNavigation; ui::PageTransition strippedTransition = ui::PageTransitionStripQualifier(transition); diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index b388b28d0..7ba45aea8 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -381,7 +381,8 @@ public: FormSubmittedNavigation, BackForwardNavigation, ReloadNavigation, - OtherNavigation + OtherNavigation, + RedirectNavigation, }; enum JavaScriptConsoleMessageLevel { diff --git a/src/webengine/api/qquickwebenginenavigationrequest.cpp b/src/webengine/api/qquickwebenginenavigationrequest.cpp index a6e253561..03c1d3d78 100644 --- a/src/webengine/api/qquickwebenginenavigationrequest.cpp +++ b/src/webengine/api/qquickwebenginenavigationrequest.cpp @@ -143,6 +143,8 @@ QQuickWebEngineView::NavigationRequestAction QQuickWebEngineNavigationRequest::a Using navigation history to go to the previous or next page. \value WebEngineNavigationRequest.ReloadNavigation Reloading the page. + \value WebEngineNavigationRequest.RedirectNavigation + Page content or server triggered a redirection or page refresh. \value WebEngineNavigationRequest.OtherNavigation Using some other method to go to a page. */ diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index abbe40f53..efbd0e3d0 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -173,7 +173,8 @@ public: FormSubmittedNavigation, BackForwardNavigation, ReloadNavigation, - OtherNavigation + OtherNavigation, + RedirectNavigation, }; Q_ENUM(NavigationType) diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 4956877a9..dae41d0ec 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -180,7 +180,8 @@ public: NavigationTypeFormSubmitted, NavigationTypeBackForward, NavigationTypeReload, - NavigationTypeOther + NavigationTypeOther, + NavigationTypeRedirect, }; Q_ENUM(NavigationType) diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc index c451344d2..c6a97debb 100644 --- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc @@ -274,6 +274,7 @@ \value NavigationTypeFormSubmitted The navigation request resulted from a form submission. \value NavigationTypeBackForward The navigation request resulted from a back or forward action. \value NavigationTypeReload The navigation request resulted from a reload action. + \value NavigationTypeRedirect The navigation request resulted from a content or server controlled redirect. This also includes automatic reloads. (Added in Qt 5.14) \value NavigationTypeOther The navigation request was triggered by other means not covered by the above. \sa acceptNavigationRequest() diff --git a/tests/auto/quick/publicapi/tst_publicapi.cpp b/tests/auto/quick/publicapi/tst_publicapi.cpp index 787510422..096c3d2ca 100644 --- a/tests/auto/quick/publicapi/tst_publicapi.cpp +++ b/tests/auto/quick/publicapi/tst_publicapi.cpp @@ -637,6 +637,7 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineView.Prc32K --> PrintedPageSizeId" << "QQuickWebEngineView.Prc32KBig --> PrintedPageSizeId" << "QQuickWebEngineView.Quarto --> PrintedPageSizeId" + << "QQuickWebEngineView.RedirectNavigation --> NavigationType" << "QQuickWebEngineView.Redo --> WebAction" << "QQuickWebEngineView.Reload --> WebAction" << "QQuickWebEngineView.ReloadAndBypassCache --> WebAction" diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 19f9b6df1..985d3edf7 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -573,7 +573,7 @@ void tst_QWebEnginePage::acceptNavigationRequestNavigationType() << QWebEnginePage::NavigationTypeBackForward << QWebEnginePage::NavigationTypeReload << QWebEnginePage::NavigationTypeTyped - << QWebEnginePage::NavigationTypeOther; + << QWebEnginePage::NavigationTypeRedirect; QVERIFY(expectedList.count() == page.navigations.count()); for (int i = 0; i < expectedList.count(); ++i) { QCOMPARE(page.navigations[i].type, expectedList[i]); |