Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ddef090f6b4d8984da6b8081120d40bf6e1a277e
      
https://github.com/WebKit/WebKit/commit/ddef090f6b4d8984da6b8081120d40bf6e1a277e
  Author: Pascoe <[email protected]>
  Date:   2025-10-17 (Fri, 17 Oct 2025)

  Changed paths:
    M 
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt
    M 
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-hid.https.html
    M 
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-u2f.https.html
    M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h
    M 
Tools/TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-nfc.html

  Log Message:
  -----------
  [WebAuthn] Do not request user presence before U2F fallback
rdar://159976632
https://bugs.webkit.org/show_bug.cgi?id=300839

Reviewed by Brent Fulgham.

When authenticating with a security key supporting both CTAP2 and U2F, WebKit 
would
unnecessarily require two user taps and perform inefficient credential checking.

After CTAP2 silent credential checks failed, WebKit sent a CTAP2 request with 
user
presence (first tap), received an error, then downgraded to U2F (second tap). 
This
patch skips the wasteful CTAP2 request and downgrades immediately when silent 
checks
indicate no credentials exist, reducing taps from 2 to 1.

The batching logic incorrectly required both maxCredentialIDLength and
maxCredentialCountInList from getInfo to enable batching. The fix checks
for maxCredentialCountInList alone, enabling proper batching if 
maxCredentialIDLength
is missing.

Added layout tests to exercise this behavior.

* 
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
* 
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
* 
LayoutTests/http/wpt/webauthn/public-key-credential-get-success-u2f.https.html:
* Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::makeCredential):
(WebKit::CtapAuthenticator::getAssertion):
(WebKit::CtapAuthenticator::canDowngradeToU2f const):
(WebKit::CtapAuthenticator::tryDowngrade):
* Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h:

Canonical link: https://commits.webkit.org/301723@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to