mirror of
https://github.com/servo/servo.git
synced 2025-09-27 15:20:09 +01:00
script: Initial stubs for Credential Management API (#38839)
Stubs `Credential`, `CredentialContainer`, and `PasswordCredential` and adds the credentials attribute to navigator. Testing: WPT Fixes: Partially #38788 --------- Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
This commit is contained in:
parent
643ac08cf0
commit
3ac8875697
11 changed files with 347 additions and 0 deletions
16
components/script_bindings/webidls/Credential.webidl
Normal file
16
components/script_bindings/webidls/Credential.webidl
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://www.w3.org/TR/credential-management-1/#the-credential-interface
|
||||
*/
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#credential
|
||||
[Pref="dom_credential_management_enabled", Exposed=Window, SecureContext]
|
||||
interface Credential {
|
||||
readonly attribute USVString id;
|
||||
readonly attribute DOMString type;
|
||||
static Promise<boolean> isConditionalMediationAvailable();
|
||||
static Promise<undefined> willRequestConditionalCreation();
|
||||
};
|
|
@ -0,0 +1,52 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://www.w3.org/TR/credential-management-1/#framework-credential-management
|
||||
*/
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#framework-credential-management
|
||||
partial interface Navigator {
|
||||
[SecureContext, SameObject, Pref="dom_credential_management_enabled"] readonly attribute CredentialsContainer credentials;
|
||||
};
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#credentialscontainer
|
||||
[Pref="dom_credential_management_enabled", Exposed=Window, SecureContext]
|
||||
interface CredentialsContainer {
|
||||
[Throws] Promise<Credential?> get(optional CredentialRequestOptions options = {});
|
||||
[Throws] Promise<undefined> store(Credential credential);
|
||||
[Throws] Promise<Credential?> create(optional CredentialCreationOptions options = {});
|
||||
[Throws] Promise<undefined> preventSilentAccess();
|
||||
};
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#credentialrequestoptions-dictionary
|
||||
dictionary CredentialRequestOptions {
|
||||
CredentialMediationRequirement mediation = "optional";
|
||||
AbortSignal signal;
|
||||
// FIXME: This should be part of a partial dictionary, but that is not implemented yet
|
||||
// From PasswordCredential.webidl
|
||||
boolean password = false;
|
||||
};
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#dictdef-credentialcreationoptions
|
||||
dictionary CredentialCreationOptions {
|
||||
CredentialMediationRequirement mediation = "optional";
|
||||
AbortSignal signal;
|
||||
// FIXME: This should be part of a partial dictionary, but that is not implemented yet
|
||||
// From PasswordCredential.webidl
|
||||
PasswordCredentialInit password;
|
||||
};
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#dictdef-credentialdata
|
||||
dictionary CredentialData {
|
||||
required USVString id;
|
||||
};
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#enumdef-credentialmediationrequirement
|
||||
enum CredentialMediationRequirement {
|
||||
"silent",
|
||||
"optional",
|
||||
"conditional",
|
||||
"required"
|
||||
};
|
25
components/script_bindings/webidls/PasswordCredential.webidl
Normal file
25
components/script_bindings/webidls/PasswordCredential.webidl
Normal file
|
@ -0,0 +1,25 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
/*
|
||||
* The origin of this IDL file is
|
||||
* https://www.w3.org/TR/credential-management-1/#passwordcredential-interface
|
||||
*/
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#passwordcredential-interface
|
||||
[Pref="dom_credential_management_enabled", Exposed=Window, SecureContext]
|
||||
interface PasswordCredential : Credential {
|
||||
[Throws] constructor(HTMLFormElement form);
|
||||
[Throws] constructor(PasswordCredentialData data);
|
||||
readonly attribute USVString password;
|
||||
};
|
||||
|
||||
// https://www.w3.org/TR/credential-management-1/#dictdef-passwordcredentialdata
|
||||
dictionary PasswordCredentialData : CredentialData {
|
||||
USVString name;
|
||||
USVString iconURL;
|
||||
required USVString origin;
|
||||
required USVString password;
|
||||
};
|
||||
|
||||
typedef (PasswordCredentialData or HTMLFormElement) PasswordCredentialInit;
|
Loading…
Add table
Add a link
Reference in a new issue