Substitute enum types in dictionaries with DOMStrings - #1392
Conversation
|
This will need to rebase on #1393. |
9fbb2fa to
f17baf0
Compare
equalsJeffH
left a comment
There was a problem hiding this comment.
Overall LGTM, thx @jcjones! I've one comment below wrt consistency, and then an overall one regarding the Note: we added to 5.8.4. Authenticator Transport Enumeration (enum AuthenticatorTransport):
Note: The AuthenticatorTransport enumeration is not referenced by other parts of the Web IDL because that would preclude other values from being used without updating this specification and its implementations. It is important for backwards compatibility that client platforms and Relying Parties handle unknown values. Therefore it exists here for documentation and as a registry. Where transports are represented elsewhere, they are typed as DOMStrings, for example in transports.
...I'm thinking we ought to make that Note more general such that it applies to all the enums that are now effectively "registries", move the note somewhere, perhaps to a new subsection at the beginning of Section 5, and then have small Notes at all the enum registries that link back to the overall one.
WDYT?
…already in the document
|
where you are using the term "unset", do you mean by that "does not exist" (note link to infra spec)? |
Yes, I'll update all that wordage - thank you for the suggestion! |
…p/exists (which was unused)
equalsJeffH
left a comment
There was a problem hiding this comment.
Ok, thx @jcjones, LGTM, although, there's this one little outstanding comment #1392 (review). I suppose it's ok to land this without addressing the latter comment, tho then ISTM we ought to open an editorial issue containing that comment's substance. thx again.
|
|
||
| : <dfn>\[[transports]]</dfn> | ||
| :: This [=internal slot=] contains a sequence of zero or more unique {{DOMString}}s in lexicographical order. These values are the transports that the [=authenticator=] is believed to support, or an empty sequence if the information is unavailable. The values SHOULD be members of {{AuthenticatorTransport}} but [=[RPS]=] MUST accept unknown values. | ||
| :: This [=internal slot=] contains a sequence of zero or more unique {{DOMString}}s in lexicographical order. These values are the transports that the [=authenticator=] is believed to support, or an empty sequence if the information is unavailable. The values SHOULD be members of {{AuthenticatorTransport}} but [=[RPS]=] MUST ignore unknown values. |
There was a problem hiding this comment.
Is this right? Shouldn't the RP just pass all values through (known or unknown) and let the client ignore the ones it doesn't need?
There was a problem hiding this comment.
But what does the RP do with an unknown value?
The authenticator says it supports USB and ZWave. Does the RP need to permit ZWave, or just ignore it?
There was a problem hiding this comment.
Since this value isn't signed, the RP should never make permission decisions based on it, right (such decisions should be based on data derived from the attestation cert)? So I don't know what else the RP would do with this value other than echo it back to the client.
Addresses w3c#1392 (review) by adding a new conformance section and referring to it at the description of each enumeration type.
|
@equalsJeffH : Please take a look at 42dbe07 , as the change is perhaps larger than we had initially discussed but I like the way this ties together better. @emlun: Please see responses above. I'm OK with changing things, but maybe you can propose the changes you'd like to see? Thanks and have a good weekend! |
equalsJeffH
left a comment
There was a problem hiding this comment.
LGTM, thanks @jcjones !
we'll submit this suggestion as a issue
This fixes issue #1376, auditing all enums passed into WebAuthn to ensure that WebAuthn can be extended without causing WebIDL failures for lagging implementations.
I believe I caught them all. I prefixed all the targets with
>>in the list below:Preview | Diff