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