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

Reply via email to