diff --git a/index.html b/index.html index bcc9dc4..3ed4f92 100644 --- a/index.html +++ b/index.html @@ -1058,9 +1058,10 @@ comprising the first items of each top-level section. */ margin-top: 1.1rem; } - #toc .secno { + #toc#toc .secno { /* Ugh, need more specificity to override base.css */ grid-column: 1; width: auto; + margin-left: 0; } #toc .content { grid-column: 2; @@ -1211,9 +1212,8 @@ } } - + -

Credential Management Level 1

-

Editor’s Draft,

+

Editor’s Draft,

This version: @@ -1483,7 +1483,7 @@

https://github.com/w3c/webappsec-credential-management/commits/master/index.src.html
Feedback: -
public-webappsec@w3.org with subject line “[credential-management] … message topic …” (archives) +
public-webappsec@w3.org with subject line “[credential-management] … message topic …” (archives)
Editor:
(Google Inc.)
Participate: @@ -1498,8 +1498,8 @@

Abstract

This specification describes an imperative API enabling a website to request a -user’s credentials from a user agent, and to help the user agent correctly -store user credentials for future use.

+ user’s credentials from a user agent, and to help the user agent correctly + store user credentials for future use.

Status of this document

@@ -1691,14 +1691,14 @@

hodgepodge of heuristics meant to detect and fill sign-in forms, password change forms, etc.

A few problems with the status quo stand out as being particularly noteworthy:

+ - + + + +

+
do we need to explicitly free the bytes we just orphaned?
This might be the wrong model. It would be nice to support a site that wished to accept either username/passwords or webauthn-style credentials without forcing a chooser for those users who use the former, and who wish to remain signed in.
@@ -4895,6 +4950,13 @@

5.3. Credential Selection +

+
+ To create a copy of any buffer sources' data referenced by a value |V| of + [=dictionary=] type, run the following steps given |V|: + +
    + 1. Let |dictionaries| be a list consisting of |V| and all of |V|'s + [=inherited dictionaries=], in order from least to most derived. + + 2. For each dictionary |dictionary| in |dictionaries|, in order: + + 1. For each dictionary member |member| declared on + |dictionary|, in lexicographical order: + + 1. Let |key| be the [=identifier=] of |member|. + + 2. If the dictionary member named |key| is [=present=] in |V|, then: + + 1. Let |value| be the value of |member| on |V|. + + 2. If |value|'s type is a [=buffer source type=] then + [=get a copy of the bytes held by the buffer source=] and + set |values|'s value to be a reference to the copy of the bytes. + + issue: do we need to explicitly free the bytes we just orphaned? +
+
+ + ### Mediation Requirements ### {#mediation-requirements} When making a request via {{get(options)}}, developers can set a case-by-case requirement for @@ -729,8 +757,10 @@

Request a `Credential`

5. Let |sameOriginWithAncestors| be `true` if |settings| is [=same-origin with its ancestors=], and `false` otherwise. + + 6. [=Create a copy of any buffer sources' data=] referenced by |options|. - 6. Run the following steps [=in parallel=]: + 7. Run the following steps [=in parallel=]: 1. Let |credentials| be the result of collecting `Credential`s from the credential store, given |options| and @@ -775,7 +805,7 @@

Request a `Credential`

Otherwise, [=reject=] |p| with |result|. - 7. Return |p|. + 8. Return |p|.

Collect `Credential`s from the credential store

@@ -868,9 +898,11 @@

Create a `Credential`

6. If |options|.{{CredentialCreationOptions/signal}}'s [=AbortSignal/aborted flag=] is set, then return [=a promise rejected with=] an "{{AbortError}}" {{DOMException}}. - 7. Let |p| be [=a new promise=]. + 7. [=Create a copy of any buffer sources' data=] referenced by |options|. + + 8. Let |p| be [=a new promise=]. - 8. Run the following steps [=in parallel=]: + 9. Run the following steps [=in parallel=]: 1. Let |r| be the result of executing |interfaces|[0] {{Credential/[[Create]](options, sameOriginWithAncestors)}} internal method on |options| @@ -880,7 +912,7 @@

Create a `Credential`

Otherwise, [=resolve=] |p| with |r|. - 9. Return |p|. + 10. Return |p|.

Prevent Silent Access