-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Let specs define their own default mediation requirement #258
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -504,6 +504,10 @@ spec:css-syntax-3; | |||||
internal slot named <dfn for="Credential" attribute>\[[origin]]</dfn>, which stores the [=origin=] | ||||||
for which the {{Credential}} may be [=effective=]. | ||||||
|
||||||
Credential interfaces can define a <dfn for="Credential" export>default get mediation</dfn> and | ||||||
<dfn for="Credential" export>default create mediation</dfn> as an {{CredentialMediationRequirement}} enum value. | ||||||
Together, they establish the default [[#mediation-requirements]] for when none are supplied by the developer. | ||||||
|
||||||
### `Credential` Internal Methods ### {#credential-internal-methods} | ||||||
|
||||||
The {{Credential}} [=interface object=] features several [=internal methods=] facilitating | ||||||
|
@@ -700,7 +704,7 @@ spec:css-syntax-3; | |||||
|
||||||
<pre class="idl"> | ||||||
dictionary CredentialRequestOptions { | ||||||
CredentialMediationRequirement mediation = "optional"; | ||||||
CredentialMediationRequirement mediation; | ||||||
AbortSignal signal; | ||||||
}; | ||||||
</pre> | ||||||
|
@@ -988,6 +992,11 @@ spec:css-syntax-3; | |||||
1. If |interfaces| is [=set/empty=], then return[=a promise rejected with=] | ||||||
a "{{NotSupportedError}}" {{DOMException}}. | ||||||
|
||||||
1. If |options|.{{CredentialRequestOptions/mediation}} was not passed, | ||||||
marcoscaceres marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: I believe
Suggested change
might be more accurate. |
||||||
set |options|.{{CredentialRequestOptions/mediation}} to one of the following values: | ||||||
1. If the |interfaces| together define a [=Credential/default get mediation=], that enum value. | ||||||
1. Otherwise, {{CredentialMediationRequirement/optional}}. | ||||||
|
||||||
1. [=set/For each=] |interface| of |interfaces|: | ||||||
|
||||||
1. If |options|.{{CredentialRequestOptions/mediation}} is | ||||||
|
@@ -1194,6 +1203,11 @@ spec:css-syntax-3; | |||||
|
||||||
1. Let |interfaces| be the [=set=] of |options|' <a>relevant credential interface objects</a>. | ||||||
|
||||||
1. If |options|.{{CredentialRequestOptions/mediation}} was not passed, | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (same) |
||||||
set |options|.{{CredentialRequestOptions/mediation}} to one of the following values: | ||||||
1. If the |interfaces| together define a [=Credential/default create mediation=], that enum value. | ||||||
1. Otherwise, {{CredentialMediationRequirement/optional}}. | ||||||
|
||||||
1. Return [=a promise rejected with=] `NotSupportedError` if any of the following statements | ||||||
are true: | ||||||
|
||||||
|
@@ -2477,6 +2491,16 @@ spec:css-syntax-3; | |||||
mediation=], define `ExampleCredential/isConditionalMediationAvailable()` | ||||||
to return a new {{Promise}} that [=resolves=] with `true`. | ||||||
|
||||||
1. Optionally, define a [=Credential/default get mediation=] and, optionally, a [=Credential/default create mediation=]. | ||||||
|
||||||
<div class="example"> | ||||||
<blockquote> | ||||||
The <strong>default get mediation</strong> for the `ExampleCredential` is "{{CredentialMediationRequirement/required}}". | ||||||
</blockquote> | ||||||
</div> | ||||||
|
||||||
Additionally, a specification can add its own set of restriction around what mediations are allowed to be passed into the API. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this should probably be more explicit about the internal methods. |
||||||
|
||||||
1. Following the procedure in [[#sctn-registry-requirements]], add an entry to the | ||||||
[[#sctn-cred-type-registry|Credential Type Registry]] for the new | ||||||
"example" [=credential type registry/credential type=] and its corresponding: | ||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens when two credential types define two different mediation types?