diff options
author | Andras Becsi <andras.becsi@digia.com> | 2014-07-25 15:53:07 +0200 |
---|---|---|
committer | Andras Becsi <andras.becsi@digia.com> | 2014-08-06 17:20:17 +0200 |
commit | ca30d0374020752d3ac367fdffef88a5c1fe4a48 (patch) | |
tree | d93bb8ca51657febaee379e86c422d91b905a68b /src/webengine/api/qquickwebengineview.cpp | |
parent | 7d90b44187cfa8f93df6a6341da41cf8192d18ad (diff) |
Add QQuick API for intercepting navigation requests
Add missing navigationRequested API to be able to intercept
navigation requests. This is useful for ignoring requests
for example in kiosk-like applications that want to restrinct
navigation to a specific url or domain, or want to disable
specific types of navigation requests (e.g. reloading, clicking
links, form submissions).
Change-Id: Ie375e635a3c3566527972d05f5d99b39489c5ca8
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index a6a11c07d..f4881e8a5 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -45,6 +45,7 @@ #include "javascript_dialog_controller.h" #include "qquickwebenginehistory_p.h" #include "qquickwebengineloadrequest_p.h" +#include "qquickwebenginenavigationrequest_p.h" #include "qquickwebenginenewviewrequest_p.h" #include "render_widget_host_view_qt_delegate_quick.h" #include "render_widget_host_view_qt_delegate_quickwindow.h" @@ -194,6 +195,15 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu return true; } +void QQuickWebEngineViewPrivate::navigationRequested(int navigationType, const QUrl &url, int &navigationRequestAction, bool isMainFrame) +{ + Q_Q(QQuickWebEngineView); + QQuickWebEngineNavigationRequest navigationRequest(url, static_cast<QQuickWebEngineView::NavigationType>(navigationType), isMainFrame); + Q_EMIT q->navigationRequested(&navigationRequest); + + navigationRequestAction = navigationRequest.action(); +} + void QQuickWebEngineViewPrivate::javascriptDialog(QSharedPointer<JavaScriptDialogController> dialog) { ui()->showDialog(dialog); |