Skip to content

Digital Credentials:#64149

Draft
marcoscaceres wants to merge 2 commits intoWebKit:mainfrom
marcoscaceres:dc-split-2
Draft

Digital Credentials:#64149
marcoscaceres wants to merge 2 commits intoWebKit:mainfrom
marcoscaceres:dc-split-2

Conversation

@marcoscaceres
Copy link
Copy Markdown
Contributor

@marcoscaceres marcoscaceres commented May 4, 2026

caff772

Digital Credentials: CredentialRequestCoordinator should transition to Presenting state before setting promise
https://bugs.webkit.org/show_bug.cgi?id=309625
rdar://172236892

Reviewed by NOBODY (OOPS!).

Explanation of why this fixes the bug (OOPS!).

No new tests (OOPS!).

* Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp:
(WebCore::CredentialRequestCoordinator::prepareCredentialRequests):

3c207dd

Digital Credentials: align CredentialRequestCoordinator method names with spec algorithm names
https://bugs.webkit.org/show_bug.cgi?id=313737
rdar://176128667

Reviewed by NOBODY (OOPS!).

Rename methods, enums, and state machine terminology to match the
Digital Credentials API spec algorithm names. This makes it trivial
to cross-reference between spec and implementation.

Renames:
- PickerState → InteractionState (idle/requesting/aborting)
- prepareCredentialRequest → prepareCredentialRequests
- abortPicker → abortTheCredentialRequest
- dismissPickerAndSettle → rejectTheCredentialRequestWith
- handleDigitalCredentialsPickerResult → initiateTheCredentialRequest
- showDigitalCredentialsPicker → showDigitalCredentialsChooser
- dismissDigitalCredentialsPicker → dismissDigitalCredentialsChooser

Pure mechanical rename — no behavioral changes.

* Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp:
(WebCore::CredentialRequestCoordinator::InteractionStateGuard::InteractionStateGuard):
(WebCore::CredentialRequestCoordinator::InteractionStateGuard::~InteractionStateGuard):
(WebCore::CredentialRequestCoordinator::interactionState const):
(WebCore::CredentialRequestCoordinator::canTransitionTo const):
(WebCore::CredentialRequestCoordinator::setInteractionState):
(WebCore::CredentialRequestCoordinator::prepareCredentialRequests):
(WebCore::CredentialRequestCoordinator::initiateTheCredentialRequest):
(WebCore::CredentialRequestCoordinator::rejectTheCredentialRequestWith):
(WebCore::CredentialRequestCoordinator::abortTheCredentialRequest):
(WebCore::CredentialRequestCoordinator::contextDestroyed):
(WebCore::CredentialRequestCoordinator::PickerStateGuard::PickerStateGuard): Deleted.
(WebCore::CredentialRequestCoordinator::PickerStateGuard::~PickerStateGuard): Deleted.
(WebCore::CredentialRequestCoordinator::currentState const): Deleted.
(WebCore::CredentialRequestCoordinator::setState): Deleted.
(WebCore::CredentialRequestCoordinator::prepareCredentialRequest): Deleted.
(WebCore::CredentialRequestCoordinator::handleDigitalCredentialsPickerResult): Deleted.
(WebCore::CredentialRequestCoordinator::dismissPickerAndSettle): Deleted.
(WebCore::CredentialRequestCoordinator::abortPicker): Deleted.
* Source/WebCore/Modules/identity/CredentialRequestCoordinator.h:
* Source/WebCore/Modules/identity/CredentialRequestCoordinatorClient.h:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::DigitalCredential::discoverFromExternalSource):
* Source/WebCore/Modules/identity/dummy/DummyCredentialRequestCoordinatorClient.cpp:
(WebCore::DummyCredentialRequestCoordinatorClient::showDigitalCredentialsChooser):
(WebCore::DummyCredentialRequestCoordinatorClient::dismissDigitalCredentialsChooser):
(WebCore::DummyCredentialRequestCoordinatorClient::showDigitalCredentialsPicker): Deleted.
(WebCore::DummyCredentialRequestCoordinatorClient::dismissDigitalCredentialsPicker): Deleted.
* Source/WebCore/Modules/identity/dummy/DummyCredentialRequestCoordinatorClient.h:
* Source/WebCore/loader/EmptyClients.cpp:
* Source/WebCore/page/Chrome.cpp:
(WebCore::Chrome::showDigitalCredentialsChooser):
(WebCore::Chrome::dismissDigitalCredentialsChooser):
(WebCore::Chrome::showDigitalCredentialsPicker): Deleted.
(WebCore::Chrome::dismissDigitalCredentialsPicker): Deleted.
* Source/WebCore/page/Chrome.h:
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::showDigitalCredentialsChooser):
(WebCore::ChromeClient::dismissDigitalCredentialsChooser):
(WebCore::ChromeClient::showDigitalCredentialsPicker): Deleted.
(WebCore::ChromeClient::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _showDigitalCredentialsChooser:completionHandler:]):
(-[WKWebView _dismissDigitalCredentialsChooser:]):
(-[WKWebView _showDigitalCredentialsPicker:completionHandler:]): Deleted.
(-[WKWebView _dismissDigitalCredentialsPicker:]): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/PageClient.h:
(WebKit::PageClient::showDigitalCredentialsChooser):
(WebKit::PageClient::dismissDigitalCredentialsChooser):
(WebKit::PageClient::showDigitalCredentialsPicker): Deleted.
(WebKit::PageClient::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showDigitalCredentialsChooser):
(WebKit::WebPageProxy::dismissDigitalCredentialsChooser):
(WebKit::WebPageProxy::showDigitalCredentialsPicker): Deleted.
(WebKit::WebPageProxy::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showDigitalCredentialsChooser):
(WebKit::PageClientImpl::dismissDigitalCredentialsChooser):
(WebKit::PageClientImpl::showDigitalCredentialsPicker): Deleted.
(WebKit::PageClientImpl::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showDigitalCredentialsChooser:completionHandler:]):
(-[WKContentView _dismissDigitalCredentialsChooser:]):
(-[WKContentView _showDigitalCredentialsPicker:completionHandler:]): Deleted.
(-[WKContentView _dismissDigitalCredentialsPicker:]): Deleted.
* Source/WebKit/UIProcess/mac/PageClientImplMac.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::showDigitalCredentialsChooser):
(WebKit::PageClientImpl::dismissDigitalCredentialsChooser):
(WebKit::PageClientImpl::showDigitalCredentialsPicker): Deleted.
(WebKit::PageClientImpl::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/mac/WebViewImpl.h:
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::showDigitalCredentialsChooser):
(WebKit::WebViewImpl::dismissDigitalCredentialsChooser):
(WebKit::WebViewImpl::showDigitalCredentialsPicker): Deleted.
(WebKit::WebViewImpl::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/WebProcess/DigitalCredentials/DigitalCredentialsCoordinator.cpp:
(WebKit::DigitalCredentialsCoordinator::showDigitalCredentialsChooser):
(WebKit::DigitalCredentialsCoordinator::dismissDigitalCredentialsChooser):
(WebKit::DigitalCredentialsCoordinator::showDigitalCredentialsPicker): Deleted.
(WebKit::DigitalCredentialsCoordinator::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/WebProcess/DigitalCredentials/DigitalCredentialsCoordinator.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::showDigitalCredentialsChooser):
(WebKit::WebChromeClient::dismissDigitalCredentialsChooser):
(WebKit::WebChromeClient::showDigitalCredentialsPicker): Deleted.
(WebKit::WebChromeClient::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::showDigitalCredentialsChooser):
(WebKit::WebPage::dismissDigitalCredentialsChooser):
(WebKit::WebPage::showDigitalCredentialsPicker): Deleted.
(WebKit::WebPage::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:

caff772

Misc iOS, visionOS, tvOS & watchOS macOS Linux Windows Apple Internal
✅ 🧪 style ✅ 🛠 ios ✅ 🛠 mac ✅ 🛠 wpe ✅ 🛠 win ✅ 🛠 ios-apple
✅ 🧪 bindings ✅ 🛠 ios-sim ✅ 🛠 mac-AS-debug ✅ 🧪 wpe-wk2 ❌ 🧪 win-tests ✅ 🛠 mac-apple
✅ 🧪 webkitperl ✅ 🧪 ios-wk2 ❌ 🧪 api-mac ✅ 🧪 api-wpe ✅ 🛠 vision-apple
❌ 🧪 ios-wk2-wpt ✅ 🧪 api-mac-debug ✅ 🛠 gtk3-libwebrtc
✅ 🧪 api-ios ✅ 🧪 mac-wk1 ✅ 🛠 gtk
✅ 🛠 ios-safer-cpp ✅ 🧪 mac-wk2 ✅ 🧪 gtk-wk2
✅ 🛠 vision ❌ 🧪 mac-AS-debug-wk2 ✅ 🧪 api-gtk
✅ 🛠 vision-sim ✅ 🧪 mac-wk2-stress ✅ 🛠 playstation
✅ 🧪 vision-wk2 ✅ 🧪 mac-intel-wk2
✅ 🛠 tv ✅ 🛠 mac-safer-cpp
✅ 🛠 tv-sim
✅ 🛠 watch
✅ 🛠 watch-sim

…with spec algorithm names

https://bugs.webkit.org/show_bug.cgi?id=313737
rdar://176128667

Reviewed by NOBODY (OOPS!).

Rename methods, enums, and state machine terminology to match the
Digital Credentials API spec algorithm names. This makes it trivial
to cross-reference between spec and implementation.

Renames:
- PickerState → InteractionState (idle/requesting/aborting)
- prepareCredentialRequest → prepareCredentialRequests
- abortPicker → abortTheCredentialRequest
- dismissPickerAndSettle → rejectTheCredentialRequestWith
- handleDigitalCredentialsPickerResult → initiateTheCredentialRequest
- showDigitalCredentialsPicker → showDigitalCredentialsChooser
- dismissDigitalCredentialsPicker → dismissDigitalCredentialsChooser

Pure mechanical rename — no behavioral changes.

* Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp:
(WebCore::CredentialRequestCoordinator::InteractionStateGuard::InteractionStateGuard):
(WebCore::CredentialRequestCoordinator::InteractionStateGuard::~InteractionStateGuard):
(WebCore::CredentialRequestCoordinator::interactionState const):
(WebCore::CredentialRequestCoordinator::canTransitionTo const):
(WebCore::CredentialRequestCoordinator::setInteractionState):
(WebCore::CredentialRequestCoordinator::prepareCredentialRequests):
(WebCore::CredentialRequestCoordinator::initiateTheCredentialRequest):
(WebCore::CredentialRequestCoordinator::rejectTheCredentialRequestWith):
(WebCore::CredentialRequestCoordinator::abortTheCredentialRequest):
(WebCore::CredentialRequestCoordinator::contextDestroyed):
(WebCore::CredentialRequestCoordinator::PickerStateGuard::PickerStateGuard): Deleted.
(WebCore::CredentialRequestCoordinator::PickerStateGuard::~PickerStateGuard): Deleted.
(WebCore::CredentialRequestCoordinator::currentState const): Deleted.
(WebCore::CredentialRequestCoordinator::setState): Deleted.
(WebCore::CredentialRequestCoordinator::prepareCredentialRequest): Deleted.
(WebCore::CredentialRequestCoordinator::handleDigitalCredentialsPickerResult): Deleted.
(WebCore::CredentialRequestCoordinator::dismissPickerAndSettle): Deleted.
(WebCore::CredentialRequestCoordinator::abortPicker): Deleted.
* Source/WebCore/Modules/identity/CredentialRequestCoordinator.h:
* Source/WebCore/Modules/identity/CredentialRequestCoordinatorClient.h:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::DigitalCredential::discoverFromExternalSource):
* Source/WebCore/Modules/identity/dummy/DummyCredentialRequestCoordinatorClient.cpp:
(WebCore::DummyCredentialRequestCoordinatorClient::showDigitalCredentialsChooser):
(WebCore::DummyCredentialRequestCoordinatorClient::dismissDigitalCredentialsChooser):
(WebCore::DummyCredentialRequestCoordinatorClient::showDigitalCredentialsPicker): Deleted.
(WebCore::DummyCredentialRequestCoordinatorClient::dismissDigitalCredentialsPicker): Deleted.
* Source/WebCore/Modules/identity/dummy/DummyCredentialRequestCoordinatorClient.h:
* Source/WebCore/loader/EmptyClients.cpp:
* Source/WebCore/page/Chrome.cpp:
(WebCore::Chrome::showDigitalCredentialsChooser):
(WebCore::Chrome::dismissDigitalCredentialsChooser):
(WebCore::Chrome::showDigitalCredentialsPicker): Deleted.
(WebCore::Chrome::dismissDigitalCredentialsPicker): Deleted.
* Source/WebCore/page/Chrome.h:
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::showDigitalCredentialsChooser):
(WebCore::ChromeClient::dismissDigitalCredentialsChooser):
(WebCore::ChromeClient::showDigitalCredentialsPicker): Deleted.
(WebCore::ChromeClient::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _showDigitalCredentialsChooser:completionHandler:]):
(-[WKWebView _dismissDigitalCredentialsChooser:]):
(-[WKWebView _showDigitalCredentialsPicker:completionHandler:]): Deleted.
(-[WKWebView _dismissDigitalCredentialsPicker:]): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
* Source/WebKit/UIProcess/PageClient.h:
(WebKit::PageClient::showDigitalCredentialsChooser):
(WebKit::PageClient::dismissDigitalCredentialsChooser):
(WebKit::PageClient::showDigitalCredentialsPicker): Deleted.
(WebKit::PageClient::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showDigitalCredentialsChooser):
(WebKit::WebPageProxy::dismissDigitalCredentialsChooser):
(WebKit::WebPageProxy::showDigitalCredentialsPicker): Deleted.
(WebKit::WebPageProxy::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showDigitalCredentialsChooser):
(WebKit::PageClientImpl::dismissDigitalCredentialsChooser):
(WebKit::PageClientImpl::showDigitalCredentialsPicker): Deleted.
(WebKit::PageClientImpl::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showDigitalCredentialsChooser:completionHandler:]):
(-[WKContentView _dismissDigitalCredentialsChooser:]):
(-[WKContentView _showDigitalCredentialsPicker:completionHandler:]): Deleted.
(-[WKContentView _dismissDigitalCredentialsPicker:]): Deleted.
* Source/WebKit/UIProcess/mac/PageClientImplMac.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::showDigitalCredentialsChooser):
(WebKit::PageClientImpl::dismissDigitalCredentialsChooser):
(WebKit::PageClientImpl::showDigitalCredentialsPicker): Deleted.
(WebKit::PageClientImpl::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/UIProcess/mac/WebViewImpl.h:
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::showDigitalCredentialsChooser):
(WebKit::WebViewImpl::dismissDigitalCredentialsChooser):
(WebKit::WebViewImpl::showDigitalCredentialsPicker): Deleted.
(WebKit::WebViewImpl::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/WebProcess/DigitalCredentials/DigitalCredentialsCoordinator.cpp:
(WebKit::DigitalCredentialsCoordinator::showDigitalCredentialsChooser):
(WebKit::DigitalCredentialsCoordinator::dismissDigitalCredentialsChooser):
(WebKit::DigitalCredentialsCoordinator::showDigitalCredentialsPicker): Deleted.
(WebKit::DigitalCredentialsCoordinator::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/WebProcess/DigitalCredentials/DigitalCredentialsCoordinator.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::showDigitalCredentialsChooser):
(WebKit::WebChromeClient::dismissDigitalCredentialsChooser):
(WebKit::WebChromeClient::showDigitalCredentialsPicker): Deleted.
(WebKit::WebChromeClient::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::showDigitalCredentialsChooser):
(WebKit::WebPage::dismissDigitalCredentialsChooser):
(WebKit::WebPage::showDigitalCredentialsPicker): Deleted.
(WebKit::WebPage::dismissDigitalCredentialsPicker): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
…o Presenting state before setting promise

https://bugs.webkit.org/show_bug.cgi?id=309625
rdar://172236892

Reviewed by NOBODY (OOPS!).

Explanation of why this fixes the bug (OOPS!).

No new tests (OOPS!).

* Source/WebCore/Modules/identity/CredentialRequestCoordinator.cpp:
(WebCore::CredentialRequestCoordinator::prepareCredentialRequests):
@marcoscaceres marcoscaceres self-assigned this May 4, 2026
@marcoscaceres marcoscaceres added the WebCore Misc. For miscellaneous bugs in the WebCore framework (and not JavaScriptCore or WebKit). label May 4, 2026
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merging-blocked Applied to prevent a change from being merged WebCore Misc. For miscellaneous bugs in the WebCore framework (and not JavaScriptCore or WebKit).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants