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