diff options
Diffstat (limited to 'src/core/authenticator_request_dialog_controller.h')
-rw-r--r-- | src/core/authenticator_request_dialog_controller.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/core/authenticator_request_dialog_controller.h b/src/core/authenticator_request_dialog_controller.h new file mode 100644 index 000000000..98e8dcf90 --- /dev/null +++ b/src/core/authenticator_request_dialog_controller.h @@ -0,0 +1,53 @@ +// Copyright (C) 2023 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 AUTHENTICATOR_REQUEST_DIALOG_CONTROLLER_H +#define AUTHENTICATOR_REQUEST_DIALOG_CONTROLLER_H + +#include <QtWebEngineCore/private/qtwebenginecoreglobal_p.h> +#include <QtCore/qobject.h> +#include "qwebenginewebauthuxrequest.h" + +namespace content { +class WebContents; +class RenderFrameHost; +} +namespace QtWebEngineCore { + +class AuthenticatorRequestDialogControllerPrivate; + +class Q_WEBENGINECORE_EXPORT AuthenticatorRequestDialogController : public QObject +{ + Q_OBJECT +public: + ~AuthenticatorRequestDialogController(); + void sendSelectAccountResponse(const QString &account); + void sendCollectPinResponse(const QString &pin); + QStringList userNames() const; + QWebEngineWebAuthPinRequest pinRequest(); + void reject(); + AuthenticatorRequestDialogController(AuthenticatorRequestDialogControllerPrivate *); + + QWebEngineWebAuthUxRequest::WebAuthUxState state() const; + QString relyingPartyId() const; + void retryRequest(); + QWebEngineWebAuthUxRequest::RequestFailureReason requestFailureReason() const; + +Q_SIGNALS: + void stateChanged(QWebEngineWebAuthUxRequest::WebAuthUxState state); + +private: + void selectAccount(const QStringList &userList); + void collectPin(QWebEngineWebAuthPinRequest pinRequest); + void finishCollectToken(); + void startRequest(bool bIsConditionalRequest); + void finishRequest(); + void setRelyingPartyId(const std::string &rpId); + void handleRequestFailure(QWebEngineWebAuthUxRequest::RequestFailureReason reason); + + QScopedPointer<AuthenticatorRequestDialogControllerPrivate> d_ptr; + friend class AuthenticatorRequestClientDelegateQt; +}; +} + +#endif // AUTHENTICATOR_REQUEST_DIALOG_CONTROLLER_H |