Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 349a4f20ed1c4a0586ecd4ccb009514d50c2fa42
https://github.com/WebKit/WebKit/commit/349a4f20ed1c4a0586ecd4ccb009514d50c2fa42
Author: Pascoe <[email protected]>
Date: 2026-04-20 (Mon, 20 Apr 2026)
Changed paths:
M Source/WebCore/testing/MockWebAuthenticationConfiguration.h
M Source/WebCore/testing/MockWebAuthenticationConfiguration.idl
M Source/WebKit/Configurations/AllowedSPI.toml
M Source/WebKit/Platform/spi/Cocoa/NearFieldSPI.h
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcConnection.h
M Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcConnection.mm
M Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcService.h
M Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcService.mm
M Source/WebKit/UIProcess/WebAuthentication/Mock/MockNfcService.mm
A
Tools/TestWebKitAPI/Resources/cocoa/web-authentication-get-assertion-nfc-busy.html
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/_WKWebAuthenticationPanel.mm
Log Message:
-----------
Retry whenever we see "Busy" starting an NFC session
rdar://171940190
https://bugs.webkit.org/show_bug.cgi?id=311731
Reviewed by Brent Fulgham.
In some cases, things like (but not limited to) NDEF tags on a security key can
cause an error that prevents us from opening a NFC session for CTAP purposes.
Currently, we don't recover from this error and the NFC transport silently
doesn't
work for the ceremony. We do have a restart polling timer, but it never restarts
the entire session if it failed. To fix this, we schedule a retry whenever we
encounter an error starting a NFC session.
Tests:
Tools/TestWebKitAPI/Resources/cocoa/web-authentication-get-assertion-nfc-busy.html
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/_WKWebAuthenticationPanel.mm
* Source/WebCore/testing/MockWebAuthenticationConfiguration.h:
* Source/WebCore/testing/MockWebAuthenticationConfiguration.idl:
* Source/WebKit/Configurations/AllowedSPI.toml:
* Source/WebKit/Platform/spi/Cocoa/NearFieldSPI.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcConnection.h:
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:
(WebKit::NfcConnection::stopWithCompletionHandler):
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcService.h:
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/NfcService.mm:
(WebKit::NfcService::restartDiscoveryInternal):
(WebKit::NfcService::platformStartDiscovery):
* Source/WebKit/UIProcess/WebAuthentication/Mock/MockNfcService.mm:
(WebKit::MockNfcService::platformStartDiscovery):
*
Tools/TestWebKitAPI/Resources/cocoa/web-authentication-get-assertion-nfc-busy.html:
Added.
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST(WebAuthenticationPanel, NfcHardwareBusyRetry)):
Canonical link: https://commits.webkit.org/311613@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications