Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2cda0b67ecebc7557377406c7b2668ff461e6e03
      
https://github.com/WebKit/WebKit/commit/2cda0b67ecebc7557377406c7b2668ff461e6e03
  Author: Pascoe <[email protected]>
  Date:   2025-12-17 (Wed, 17 Dec 2025)

  Changed paths:
    M Source/WTF/wtf/PlatformEnableCocoa.h
    R Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.cpp
    M Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.h
    M Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl
    M Source/WebCore/Modules/identity/DigitalCredential.cpp
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
    M 
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp
    M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h
    M Source/WebCore/Modules/notifications/NotificationPayload.cpp
    M Source/WebCore/Modules/webauthn/AttestationConveyancePreference.idl
    M Source/WebCore/Modules/webauthn/AuthenticatorAttachment.idl
    M Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp
    R Source/WebCore/Modules/webauthn/AuthenticatorSelectionCriteria.cpp
    M Source/WebCore/Modules/webauthn/AuthenticatorSelectionCriteria.h
    M Source/WebCore/Modules/webauthn/AuthenticatorSelectionCriteria.idl
    M Source/WebCore/Modules/webauthn/AuthenticatorTransport.idl
    M Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp
    R Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.cpp
    M Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h
    M Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl
    M Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.h
    M Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl
    R Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.cpp
    M Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h
    M Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl
    M Source/WebCore/Modules/webauthn/ResidentKeyRequirement.idl
    M Source/WebCore/Modules/webauthn/UserVerificationRequirement.idl
    M Source/WebCore/Modules/webauthn/fido/DeviceRequestConverter.cpp
    M Source/WebCore/Modules/webauthn/fido/U2fCommandConstructor.cpp
    M Source/WebCore/Modules/webdatabase/DatabaseManager.cpp
    M Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp
    M Source/WebCore/Sources.txt
    M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
    M Source/WebCore/bindings/scripts/IDLAttributes.json
    M Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp
    M Source/WebCore/bindings/scripts/test/TestStandaloneDictionary.idl
    M Source/WebKit/Configurations/AllowedSPI.toml
    M Source/WebKit/Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm
    M Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp
    M Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm
    M 
Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm
    M Source/WebKit/UIProcess/WebAuthentication/WebAuthenticationRequestData.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp
    M Tools/TestWebKitAPI/Tests/WebCore/U2fCommandConstructorTest.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm

  Log Message:
  -----------
  Revert "Reland enums should be DOMStrings" and introduce 
PermissiveInvalidValue
rdar://164102559
https://bugs.webkit.org/show_bug.cgi?id=304030

Reviewed by Brent Fulgham.

In the Web Authentication spec, many fields are DOMString instead of enum in 
order
to allow for unknown values. The reverted "enums should be DOMStrings" change 
met
spec and converted if needed but resulted in worse performance in some cases.

We also fix the issue seen previously by introducing PermissiveInvalidValue for
attachment.

Tests: Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm
New test verifies invalid value seen previously results in successful ceremony.

* Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.cpp: 
Removed.
* Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.h:
(): Deleted.
* Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl:
* Source/WebCore/Modules/identity/DigitalCredential.cpp:
(WebCore::DigitalCredential::discoverFromExternalSource):
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
* Source/WebCore/Modules/notifications/NotificationPayload.cpp:
* Source/WebCore/Modules/webauthn/AttestationConveyancePreference.idl:
* Source/WebCore/Modules/webauthn/AuthenticatorAttachment.idl:
* Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource):
* Source/WebCore/Modules/webauthn/AuthenticatorSelectionCriteria.cpp: Removed.
* Source/WebCore/Modules/webauthn/AuthenticatorSelectionCriteria.h:
* Source/WebCore/Modules/webauthn/AuthenticatorSelectionCriteria.idl:
* Source/WebCore/Modules/webauthn/AuthenticatorTransport.idl:
* Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp:
(WebCore::fromJSON):
(WebCore::PublicKeyCredential::parseCreationOptionsFromJSON):
(WebCore::PublicKeyCredential::parseRequestOptionsFromJSON):
* Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.cpp: 
Removed.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h:
(): Deleted.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
* Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.h:
* Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl:
* Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.cpp: 
Removed.
* Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h:
* Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl:
* Source/WebCore/Modules/webauthn/ResidentKeyRequirement.idl:
* Source/WebCore/Modules/webauthn/UserVerificationRequirement.idl:
* Source/WebCore/Modules/webauthn/fido/DeviceRequestConverter.cpp:
(fido::encodeMakeCredentialRequestAsCBOR):
* Source/WebCore/Modules/webauthn/fido/U2fCommandConstructor.cpp:
(fido::isConvertibleToU2fRegisterCommand):
(fido::isConvertibleToU2fSignCommand):
* Source/WebCore/Modules/webdatabase/DatabaseManager.cpp:
* Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:
* Source/WebCore/Modules/webxr/XRWebGLBinding.cpp:
* Source/WebCore/Sources.txt:
* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:
(GenerateDictionaryImplementationContent):
* Source/WebCore/bindings/scripts/IDLAttributes.json:
* Source/WebCore/bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
(WebCore::convertDictionary<DictionaryImplName>):
(WebCore::convertDictionaryToJS):
* Source/WebCore/bindings/scripts/test/TestStandaloneDictionary.idl:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(authenticatorTransport):
(authenticatorTransports):
(authenticatorSelectionCriteria):
(+[_WKWebAuthenticationPanel convertToCoreCreationOptionsWithOptions:]):
(authenticatorAttachmentToWKAuthenticatorAttachment):
(wkTransports):
(+[_WKWebAuthenticationPanel convertToCoreRequestOptionsWithOptions:]):
(+[_WKWebAuthenticationPanel 
encodeMakeCredentialCommandWithClientDataJSON:options:userVerificationAvailability:authenticatorSupportedExtensions:]):
(+[_WKWebAuthenticationPanel 
encodeGetAssertionCommandWithClientDataJSON:options:userVerificationAvailability:authenticatorSupportedExtensions:]):
(+[_WKWebAuthenticationPanel 
encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:authenticatorSupportedExtensions:]):
(+[_WKWebAuthenticationPanel 
encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:authenticatorSupportedCredentialParameters:]):
(+[_WKWebAuthenticationPanel 
encodeGetAssertionCommandWithClientDataHash:options:userVerificationAvailability:authenticatorSupportedExtensions:]):
* Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::WebCore::collectTransports):
* Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::emptyTransportsOrContain):
* 
Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::WebAuthenticatorCoordinatorProxy::requestsForRegistration):
(WebKit::isPlatformRequest):
(WebKit::isCrossPlatformRequest):
(WebKit::allowsHybrid):
(WebKit::WebAuthenticatorCoordinatorProxy::requestsForAssertion):
(WebKit::toASCDescriptor):
(WebKit::configureRegistrationRequestContext):
(WebKit::configurationAssertionRequestContext):
* Source/WebKit/UIProcess/WebAuthentication/WebAuthenticationRequestData.cpp:
(WebKit::getUserVerificationRequirement):
* Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::continueMakeCredentialAfterCheckExcludedCredentials):
(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetAssertionAfterCheckAllowCredentials):
* Source/WebKit/UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:
(WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived):
* Tools/TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructMakeCredentialRequestParam)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructMakeCredentialRequestParamNoUVNoRK)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructMakeCredentialRequestParamUVRequiredButNotSupported)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructMakeCredentialRequestParamWithPin)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructMakeCredentialRequestRKPreferred)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructMakeCredentialRequestRKPreferredNotSupported)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructMakeCredentialRequestRKDiscouraged)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructMakeCredentialRequestWithLargeBlob)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructMakeCredentialRequestWithUnsupportedLargeBlob)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructGetAssertionRequest)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructGetAssertionRequestNoUV)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructGetAssertionRequestUVRequiredButNotSupported)):
(TestWebKitAPI::TEST(CTAPRequestTest, TestConstructGetAssertionRequestWithPin)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructGetAssertionRequestLargeBlobRead)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructGetAssertionRequestUnsupportedLargeBlobRead)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructGetAssertionRequestLargeBlobWrite)):
(TestWebKitAPI::TEST(CTAPRequestTest, 
TestConstructGetAssertionRequestWithHmacSecret)):
* Tools/TestWebKitAPI/Tests/WebCore/U2fCommandConstructorTest.cpp:
(TestWebKitAPI::TEST(U2fCommandConstructorTest, 
TestU2fRegisterUserVerificationRequirement)):
(TestWebKitAPI::TEST(U2fCommandConstructorTest, 
TestU2fSignUserVerificationRequirement)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST(WebAuthenticationPanel, 
PublicKeyCredentialCreationOptionsMinimum)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, 
PublicKeyCredentialCreationOptionsMaximumDefault)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, 
PublicKeyCredentialCreationOptionsMaximum1)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, 
PublicKeyCredentialCreationOptionsMaximum2)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, 
PublicKeyCredentialRequestOptionsMinimun)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, 
PublicKeyCredentialRequestOptionsMaximumDefault)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, 
PublicKeyCredentialRequestOptionsMaximum)):
(TestWebKitAPI::TEST(WebAuthenticationPanel, 
InvalidAuthenticatorAttachmentDoesNotThrow)):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to