Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 04257c5b705566a06a8b9877caec36eeac51588d
https://github.com/WebKit/WebKit/commit/04257c5b705566a06a8b9877caec36eeac51588d
Author: Marcos Caceres <[email protected]>
Date: 2026-08-18 (Tue, 18 Aug 2026)
Changed paths:
M
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/concurrent-requests.https-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/concurrent-requests.https.html
M
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/get-non-fully-active.https-expected.txt
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp
M Source/WebCore/Modules/identity/CredentialRequestCoordinator.h
A Source/WebCore/Modules/identity/DigitalCredentialsSession.cpp
A Source/WebCore/Modules/identity/DigitalCredentialsSession.h
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebKit/UIProcess/DigitalCredentials/WKDigitalCredentialsPicker.mm
Log Message:
-----------
Digital Credentials: reject and resolve paths must queue a global task per
spec
https://bugs.webkit.org/show_bug.cgi?id=313736
rdar://182678875
Reviewed by Pascoe.
A credential request's promise is now settled from a queued task, as the spec
requires. It
used to settle straight away, or from inside the picker's dismissal callback.
The promise,
the abort signal and the abort algorithm also move off the per-page coordinator
and onto a
new DigitalCredentialsSession, which belongs to the document that asked for the
credential.
The coordinator said it was an ActiveDOMObject, but it is created before the
main frame has
a document, so it was never really registered as one. That meant nothing told
it when a
document was stopped or suspended, which is why get-non-fully-active.https.html
kept
failing (webkit.org/b/317884). Its mac-wk2 and ios expectations are removed.
When the picker returns an answer we no longer ask it to dismiss, because it
dismisses
itself in the same call. The abort path still asks it to, since nothing there
guarantees the
picker is gone before the promise settles. There is no test for a document that
is suspended
and then destroyed. This also stops the picker reporting a good response twice.
Canonical link: https://commits.webkit.org/319421@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications