/* * Copyright (c) 2025, Altomani Gianluca * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace Web::CredentialManagement { class PasswordCredential final : public Credential { WEB_PLATFORM_OBJECT(PasswordCredential, Credential); GC_DECLARE_ALLOCATOR(PasswordCredential); public: [[nodiscard]] static GC::Ref create(JS::Realm&); static WebIDL::ExceptionOr> construct_impl(JS::Realm&, HTML::HTMLFormElement const&); static WebIDL::ExceptionOr> construct_impl(JS::Realm&, PasswordCredentialData const&); virtual ~PasswordCredential() override; String const& password() { return m_password; } String type() override { return "password"_string; } private: explicit PasswordCredential(JS::Realm&); virtual void initialize(JS::Realm&) override; // TODO: Use Core::SecretString when it comes back String m_password; }; struct PasswordCredentialData : CredentialData { Optional name; Optional icon_url; String origin; String password; }; using PasswordCredentialInit = Variant>; }