-
Notifications
You must be signed in to change notification settings - Fork 180
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
Substitute enum types in dictionaries with DOMStrings #1392
Conversation
This will need to rebase on #1393. |
9fbb2fa
to
f17baf0
Compare
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.
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)
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.
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.
@@ -2335,7 +2335,7 @@ during registration. | |||
:: This operation returns the value of {{AuthenticatorAttestationResponse/[[transports]]}}. | |||
|
|||
: <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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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! |
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.
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