-
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
Authenticator selection extension needs to define snapshotting behavior #294
Comments
Clearly the developer has done something wrong if they edit buffersource in place after makeCredential and we shouldn’t care about interoperability in this scenario so just document |
That is unacceptable. The behavior needs to be defined so that it can be interoperably implemented, because otherwise developers will in fact do this and come to depend on UA behaviors. |
A couple of questions if you please:
thx. |
Sorry for the lag here... What I term "snapshotting" is https://heycam.github.io/webidl/#dfn-get-buffer-source-copy and its behavior is defined at https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy%E2%91%A0 Like the text at that first link says (though you have to scroll up to start of paragraph to read it):
and this needs to be an explicit algorithm step that happens at some point before the bytes can be used for anything. This applies to all BufferSource uses. As for the other uses in webauthn.... Taking as an example authenticatorMakeCredential, it walks the list of PublicKeyCredentialDescriptor it has and for each one does user interaction... before returning? Or is all this running in parallel? I think this is all running in parallel.... If so, then it probably can't access a BufferSource directly and needs to have the bytes in some parallel-friendly form instead. |
I added the [technical] label because given @bzbarsky's clarification above in #294 (comment), it's pretty obvious it's technical given the phrase "this needs to be an explicit algorithm step". |
Ok, so we're thinking that in order to navigate the process shoals with our spec boat here, we can add non-normative notes to the algs that say to make copies of buffersources in implementation-appropriate fashion before going async. @jcjones is following up on this. |
Potential non-normative language. I propose adding this note to
...in both cases next to the "Note: This algorithm is synchronous" Proposed text:
|
…rces (#1074) * Issue #294 - Add a non-normative comment about snapshotting BufferSources * Add cross-link to WebIDL for "get a copy of the bytes held by the buffer source" [=get a copy of the bytes held by the buffer source=] should have autolinked to WebIDL, but it wasn't. I tried debugging it for a bit, but ultimately decided to just manually specify the link. I think if a bikeshed expert wants to fix this, go right ahead, but this works presently.
…about snapshotting BufferSources (#1074)
…about snapshotting BufferSources (#1074)
Fixed by #1074 |
I don't understand how that fixes things. This was a normative problem. How does non-normative text help? |
But also, the notes that were added don't do the right thing, afaict. They snapshot at the start of the |
@bzbarsky & @mikewest - please see this credential-management (credman) issue for a suggested solution to this issue: w3c/webappsec-credential-management#128 It'd be good to get your review of the suggested algorithm and overall approach before crafting PR(s) to incorporate it. thanks :) see also: |
Presumably it snapshots the given BufferSources. When does this happen? This needs to be defined, because other script can run during makeCredential, and modify the buffers; the only way to get interop here is to clearly define when the snapshotting happens, if it happens.
update 23-Jul-2018: @equalsJeffH added the [technical] label because given @bzbarsky's clarification above in #294 (comment), it's pretty obvious it's technical given the phrase "this needs to be an explicit algorithm step".
The text was updated successfully, but these errors were encountered: