WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
318414
Digital Credentials: a pending "wait" request is not aborted when its requesting document becomes non-fully-active
https://bugs.webkit.org/show_bug.cgi?id=318414
Summary
Digital Credentials: a pending "wait" request is not aborted when its request...
Marcos Caceres
Reported
2026-07-01 23:13:21 PDT
The Digital Credentials specification's "request a digital credential" algorithm requires that if the requesting document stops being fully active, the credential request is aborted with an AbortError DOMException (w3c-fedid.github.io/digital-credentials/, "If document stops being fully active, abort the credential request with an AbortError"). WebKit does not abort a request that is parked pending when the requesting document — such as a subframe — becomes non-fully-active (e.g. the iframe is removed or navigated). The promise is left unsettled indefinitely. This is observable with the virtual-wallet "wait" behavior used for automated testing: a pending request in a subframe that is then removed never settles. WebPageProxy::abortPendingDigitalCredentialWaitHandlers currently fires only on page close, page reset, and chooser dismissal — not when a subframe's document becomes non-fully-active. A WPT regression test (digital-credentials/wait-non-fully-active.https.html) times out because of this; it should be landed together with the fix.
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2026-07-01 23:13:27 PDT
<
rdar://problem/181201101
>
Marcos Caceres
Comment 2
2026-08-18 20:05:43 PDT
Fixed by
319421@main
. A pending request now belongs to a per-document DigitalCredentialsSession, so when the requesting document is stopped the session rejects the promise with an AbortError instead of leaving it unsettled indefinitely. digital-credentials/get-non-fully-active.https.html covers the rejection directly — its second subtest, "Promise rejects with DOMException when the document becomes non-fully active", now passes. digital-credentials/concurrent-requests.https.html separately covers the coordinator returning to idle: it parks a "wait" request in a subframe, removes the subframe, then requires a subsequent top-level request to be served.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug