Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 73c1e36647e4ce1c512d24ebf50c9c4cf2a29fbd
https://github.com/WebKit/WebKit/commit/73c1e36647e4ce1c512d24ebf50c9c4cf2a29fbd
Author: Marcos Caceres <[email protected]>
Date: 2026-07-14 (Tue, 14 Jul 2026)
Changed paths:
M LayoutTests/TestExpectations
A
LayoutTests/http/wpt/identity/formats/ISO18013/response-handling.https-expected.txt
A
LayoutTests/http/wpt/identity/formats/ISO18013/valid-roundtrip.https-expected.txt
A
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
A
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get-mdoc.https-expected.txt
A
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get-mdoc.https.html
A
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get-openid4vp.https.html
R
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get.https.html
M
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/w3c-import.log
M LayoutTests/resources/testdriver-vendor.js
M Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp
M Source/WebKit/UIProcess/API/C/WKPage.cpp
M Source/WebKit/UIProcess/API/C/WKPagePrivate.h
M Source/WebKit/UIProcess/DigitalCredentials/WKDigitalCredentialsPicker.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxyInternals.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
M Tools/WebKitTestRunner/TestController.cpp
M Tools/WebKitTestRunner/TestController.h
M Tools/WebKitTestRunner/TestInvocation.cpp
Log Message:
-----------
Digital Credentials: Add WebKitTestRunner support for the virtual wallet
https://bugs.webkit.org/show_bug.cgi?id=318290
rdar://168941907
Reviewed by Abrar Rahman Protyasha.
Add a run-webkit-tests path to drive the Digital Credentials virtual
wallet via test_driver.set_virtual_wallet_behavior(), so the WPT
digital-credentials tests can run under WebKitTestRunner and not only
run-webdriver-tests. This is the WebKitTestRunner half of bug 306292 and
builds on the WebDriver BiDi digitalCredentials module.
Also fix WKDigitalCredentialsPicker leaking its completion handler: on
teardown without completion the handler was destroyed unrun, hitting the
CompletionHandler assert. It is now settled with an OperationError,
matching the spec's "otherwise" platform-error mapping.
Ignore a chooser response that arrives when the coordinator is no longer
in the Requesting state (e.g. after the request was already aborted), so
a late or stale response cannot trip the InteractionStateGuard assertion.
The concurrent-requests test now sets a "wait" virtual wallet behavior so
the first request stays pending, letting the concurrency guard reject the
second request; without a wallet the request fails before the guard runs.
* LayoutTests/TestExpectations:
*
LayoutTests/http/wpt/identity/formats/ISO18013/response-handling.https-expected.txt:
Added.
*
LayoutTests/http/wpt/identity/formats/ISO18013/valid-roundtrip.https-expected.txt:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/concurrent-requests.https-expected.txt:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/concurrent-requests.https.html:
*
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get-mdoc.https-expected.txt:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get-mdoc.https.html:
Copied from
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get.https.html.
*
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get-openid4vp.https.html:
Renamed from
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/get.https.html.
*
LayoutTests/imported/w3c/web-platform-tests/digital-credentials/webdriver/w3c-import.log:
* LayoutTests/resources/testdriver-vendor.js:
* Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp:
(WebCore::CredentialRequestCoordinator::processCredentialChooserResponse):
* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(WKPageSetVirtualWalletBehaviorForTesting):
* Source/WebKit/UIProcess/API/C/WKPagePrivate.h:
* Source/WebKit/UIProcess/DigitalCredentials/WKDigitalCredentialsPicker.mm:
(-[WKDigitalCredentialsPicker dealloc]):
(-[WKDigitalCredentialsPicker dismiss]):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::showDigitalCredentialsChooser):
(WebKit::WebPageProxy::settlePendingTestingDigitalCredentialHandler):
(WebKit::WebPageProxy::abortPendingDigitalCredentialWaitHandlers):
(WebKit::WebPageProxy::setVirtualWalletBehaviorForTesting):
(WebKit::WebPageProxy::dismissDigitalCredentialsChooser):
(WebKit::WebPageProxy::resetState):
(WebKit::applyVirtualWalletBehavior):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxyInternals.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setVirtualWalletBehavior):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::setVirtualWalletBehavior):
* Tools/WebKitTestRunner/TestController.h:
* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
Canonical link: https://commits.webkit.org/317196@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications