summaryrefslogtreecommitdiffstats
path: root/src/core/api/qwebenginenavigationrequest.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/api/qwebenginenavigationrequest.h')
-rw-r--r--src/core/api/qwebenginenavigationrequest.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/core/api/qwebenginenavigationrequest.h b/src/core/api/qwebenginenavigationrequest.h
new file mode 100644
index 000000000..a810a59fe
--- /dev/null
+++ b/src/core/api/qwebenginenavigationrequest.h
@@ -0,0 +1,78 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef QWEBENGINENAVIGATIONREQUEST_H
+#define QWEBENGINENAVIGATIONREQUEST_H
+
+#include <QtWebEngineCore/qtwebenginecoreglobal.h>
+#include <QtCore/qobject.h>
+#include <QtCore/qurl.h>
+
+QT_BEGIN_NAMESPACE
+
+class QWebEngineNavigationRequestPrivate;
+
+class Q_WEBENGINECORE_EXPORT QWebEngineNavigationRequest : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QUrl url READ url CONSTANT FINAL)
+ Q_PROPERTY(bool isMainFrame READ isMainFrame CONSTANT FINAL)
+ Q_PROPERTY(bool hasFormData READ hasFormData CONSTANT REVISION(6, 8) FINAL)
+ Q_PROPERTY(NavigationType navigationType READ navigationType CONSTANT FINAL)
+
+public:
+ ~QWebEngineNavigationRequest();
+
+ // must match WebContentsAdapterClient::NavigationType
+ enum NavigationType {
+ LinkClickedNavigation,
+ TypedNavigation,
+ FormSubmittedNavigation,
+ BackForwardNavigation,
+ ReloadNavigation,
+ OtherNavigation,
+ RedirectNavigation,
+ };
+ Q_ENUM(NavigationType)
+
+ QUrl url() const;
+ bool isMainFrame() const;
+ bool hasFormData() const;
+ NavigationType navigationType() const;
+
+ Q_INVOKABLE void accept();
+ Q_INVOKABLE void reject();
+
+#if QT_DEPRECATED_SINCE(6, 2)
+ enum NavigationRequestAction {
+ AcceptRequest,
+ IgnoreRequest = 0xFF
+ };
+ Q_ENUM(NavigationRequestAction)
+
+private:
+ Q_PROPERTY(NavigationRequestAction action READ action WRITE setAction NOTIFY actionChanged FINAL)
+
+ QT_DEPRECATED NavigationRequestAction action() const;
+ QT_DEPRECATED_X("Use accept/reject methods to handle the request")
+ void setAction(NavigationRequestAction action);
+
+Q_SIGNALS:
+ QT_DEPRECATED void actionChanged();
+#endif
+
+private:
+ QWebEngineNavigationRequest(const QUrl &url, NavigationType navigationType, bool mainFrame, bool formData,
+ QObject *parent = nullptr);
+
+ friend class QWebEnginePagePrivate;
+ friend class QQuickWebEngineViewPrivate;
+ bool isAccepted() const;
+
+ Q_DECLARE_PRIVATE(QWebEngineNavigationRequest)
+ QScopedPointer<QWebEngineNavigationRequestPrivate> d_ptr;
+};
+
+QT_END_NAMESPACE
+
+#endif // QWEBENGINENAVIGATIONREQUEST_H