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

Reply via email to