RESOLVED FIXED313736
Digital Credentials: reject and resolve paths must queue a global task per spec
https://bugs.webkit.org/show_bug.cgi?id=313736
Summary Digital Credentials: reject and resolve paths must queue a global task per spec
Marcos Caceres
Reported 2026-04-30 05:56:59 PDT
The spec's "reject the credential request with" algorithm (https://w3c-fedid.github.io/digital-credentials/#reject-the-credential-request) requires: "Queue a global task on the DOM manipulation task source given |promise|'s relevant global object to perform the following steps: - [cleanup abort signal/algorithm] - Reject |promise| with |error| - Set active promise to null - Set interaction state to idle" Similarly, the success path in "initiate the credential request" (step 3e.iii) also requires: "Queue a global task on the DOM manipulation task source given |document|'s relevant global object to perform the following steps: - [parse JSON, create DigitalCredential, resolve promise] - Set active promise to null - Set interaction state to idle" WebKit's dismissPickerAndSettle() does not queue a global task — it runs the rejection/resolution inside the dismissDigitalCredentialsPicker completion callback. Similarly, the success path in handleDigitalCredentialsPickerResult resolves synchronously. Both paths need to be restructured to queue a global task on the DOM manipulation task source. Note: Bug 311790 covers the specific case of the non-idle rejection in "prepare credential requests" step 2. This bug is broader — it covers the shared reject algorithm and the success path, which are used by all error and success code paths.
Attachments
Marcos Caceres
Comment 1 2026-05-03 23:34:46 PDT
Marcos Caceres
Comment 2 2026-05-03 23:35:46 PDT
Marcos Caceres
Comment 3 2026-07-15 15:43:36 PDT
Marcos Caceres
Comment 4 2026-07-20 00:40:16 PDT
EWS
Comment 5 2026-08-18 18:45:33 PDT
Committed 319421@main (04257c5b7055): <https://commits.webkit.org/319421@main> Reviewed commits have been landed. Closing PR #69509 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.