diff --git a/index.bs b/index.bs index 663a8bc..0f9ea80 100644 --- a/index.bs +++ b/index.bs @@ -322,6 +322,7 @@ spec:css-syntax-3; Appropriate Interface Object Get Permissions Policy Create Permissions Policy + Types allowed in the same {{CredentialsContainer/get()}} request Specification Requestor Contact @@ -332,6 +333,7 @@ spec:css-syntax-3; {{DigitalCredential}} digital-credentials-get null + [=set/empty=] [[DIGITAL-CREDENTIALS]] WICG @@ -341,6 +343,7 @@ spec:css-syntax-3; {{FederatedCredential}} null null + password This specification: [[#federated]] W3C @@ -350,6 +353,7 @@ spec:css-syntax-3; {{IdentityCredential}} [=identity-credentials-get=] null + [=set/empty=] [[FEDCM]] W3C @@ -359,6 +363,7 @@ spec:css-syntax-3; {{OTPCredential}} [=otp-credentials-feature|otp-credentials=] null + [=set/empty=] [[WEB-OTP]] WICG @@ -368,6 +373,7 @@ spec:css-syntax-3; {{PasswordCredential}} null null + federated This specification: [[#passwords]] W3C @@ -377,6 +383,7 @@ spec:css-syntax-3; {{PublicKeyCredential}} [=publickey-credentials-get-feature|publickey-credentials-get=] [=publickey-credentials-create-feature|publickey-credentials-create=] + [=set/empty=] [[WEBAUTHN]] W3C @@ -406,6 +413,12 @@ spec:css-syntax-3; used when executing Create a `Credential` for a [=credential type registry/credential type=], or null if no [=Document/permissions policy=] is specified. + * Although {{CredentialsContainer/get()}} requests support querying for multiple types in the same request, + not all combintations are allowed. Each registry entry must state a [=set=] of [=credential type registry/credential types=] + that denotes the [=credential type registry/types allowed in the same get() request=] for that [=credential type registry/credential type=], + or [=set/empty=] if it cannot be mixed with any other type in the same {{CredentialsContainer/get()}} request. + Every [=credential type registry/credential type=] can mixed with itself in the same {{CredentialsContainer/get()}} request. + * Each registry entry must include a link that references a publicly available specification defining the [=credential type registry/credential type=] and the [=dictionary member=] [=identifier=]. @@ -985,9 +998,22 @@ spec:css-syntax-3; 1. Let |interfaces| be |options|'s [=relevant credential interface objects=]. - 1. If |interfaces| is [=set/empty=], then return[=a promise rejected with=] + 1. If |interfaces| is [=set/empty=], then return [=a promise rejected with=] a "{{NotSupportedError}}" {{DOMException}}. + 1. [=set/For each=] |interface1| of |interfaces|: + + 1. Let |type1| be |interface1|'s {{Credential/[[type]]}} + + 1. [=set/For each=] |interface2| of |interfaces|: + + 1. Let |type2| be |interface2|'s {{Credential/[[type]]}}. + + 1. If |type1| equals |type2|, then continue. + + 1. If |type1|'s list of [=credential type registry/types allowed in the same get() request=] doesn't [=set/contain=] |type2|, + then return [=a promise rejected with=] a "{{NotSupportedError}}" {{DOMException}}. + 1. [=set/For each=] |interface| of |interfaces|: 1. If |options|.{{CredentialRequestOptions/mediation}} is