AuthenticatorCoordinator.h [plain text]
#pragma once
#if ENABLE(WEB_AUTHN)
#include "IDLTypes.h"
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
namespace WebCore {
class AbortSignal;
class AuthenticatorCoordinatorClient;
class BasicCredential;
class Document;
struct PublicKeyCredentialCreationOptions;
struct PublicKeyCredentialRequestOptions;
template<typename IDLType> class DOMPromiseDeferred;
using CredentialPromise = DOMPromiseDeferred<IDLNullable<IDLInterface<BasicCredential>>>;
class AuthenticatorCoordinator final {
WTF_MAKE_FAST_ALLOCATED;
WTF_MAKE_NONCOPYABLE(AuthenticatorCoordinator);
public:
WEBCORE_EXPORT explicit AuthenticatorCoordinator(std::unique_ptr<AuthenticatorCoordinatorClient>&&);
WEBCORE_EXPORT void setClient(std::unique_ptr<AuthenticatorCoordinatorClient>&&);
void create(const Document&, const PublicKeyCredentialCreationOptions&, bool sameOriginWithAncestors, RefPtr<AbortSignal>&&, CredentialPromise&&) const;
void discoverFromExternalSource(const Document&, const PublicKeyCredentialRequestOptions&, bool sameOriginWithAncestors, RefPtr<AbortSignal>&&, CredentialPromise&&) const;
void isUserVerifyingPlatformAuthenticatorAvailable(DOMPromiseDeferred<IDLBoolean>&&) const;
void resetUserGestureRequirement();
private:
AuthenticatorCoordinator() = default;
std::unique_ptr<AuthenticatorCoordinatorClient> m_client;
};
}
#endif // ENABLE(WEB_AUTHN)