Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7516fcdbbaf5654f8ce245377a878be5bedfa3a9
      
https://github.com/WebKit/WebKit/commit/7516fcdbbaf5654f8ce245377a878be5bedfa3a9
  Author: Pascoe <pas...@apple.com>
  Date:   2024-02-05 (Mon, 05 Feb 2024)

  Changed paths:
    M LayoutTests/TestExpectations
    M Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp
    M Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp
    M Source/WebCore/Modules/webauthn/AuthenticatorCoordinatorClient.h
    M Source/WebCore/Modules/webauthn/AuthenticatorResponse.cpp
    M Source/WebCore/Modules/webauthn/AuthenticatorResponse.h
    M Source/WebCore/Modules/webauthn/AuthenticatorResponseData.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M 
Source/WebKit/UIProcess/WebAuthentication/Cocoa/AuthenticationServicesForwardDeclarations.h
    M 
Source/WebKit/UIProcess/WebAuthentication/Cocoa/AuthenticationServicesSoftLink.h
    M 
Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm
    M 
Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp
    M 
Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h
    M 
Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in
    M Source/WebKit/WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp
    M Source/WebKit/WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h

  Log Message:
  -----------
  Reland [WebAuthn] Use AS APIs passing clientData for WebAuthn (274023@main)
https://bugs.webkit.org/show_bug.cgi?id=268748
rdar://problem/122313244

Reviewed by Brent Fulgham.

This got rolled out because we started generating the clientDataJSON for 
requests
within AuthenticationServices, which isn't currently mocked for test 
infrastructure.

To fix this we generate it within WACP manually whenever we are in a test. I've
created https://bugs.webkit.org/show_bug.cgi?id=268774 to address the test 
development.

Original change description:
We need to be able to pass clientData to AS API in order to make assertions
and registerations in cases where callerOrigin is not the same as the passed
rp.id. This is required because of the way ClientDataJSON is validated.

This change stops generating ClientDataJSON in AuthenticatorCoordinator as
it's no longer possible to pass the raw bytes / hash along. Instead we construct
a ASPublicKeyCredentialClientData when creating the requests for ASController 
and
include the callerOrigin there.

* Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinator::create):
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource):
* Source/WebCore/Modules/webauthn/AuthenticatorCoordinatorClient.h:
* Source/WebCore/Modules/webauthn/AuthenticatorResponse.cpp:
(WebCore::AuthenticatorResponse::tryCreate):
* Source/WebCore/Modules/webauthn/AuthenticatorResponseData.h:
(WebCore::AuthenticatorResponseData::AuthenticatorResponseData):
(WebCore::AuthenticatorResponseData::getSerializableForm const):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* 
Source/WebKit/UIProcess/WebAuthentication/Cocoa/AuthenticationServicesForwardDeclarations.h:
* 
Source/WebKit/UIProcess/WebAuthentication/Cocoa/AuthenticationServicesSoftLink.h:
* 
Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::WebAuthenticatorCoordinatorProxy::constructASController):
(WebKit::WebAuthenticatorCoordinatorProxy::requestsForRegisteration):
(WebKit::WebAuthenticatorCoordinatorProxy::requestsForAssertion):
(WebKit::WebAuthenticatorCoordinatorProxy::performRequest):
(WebKit::configureRegistrationRequestContext):
(WebKit::configureAssertionOptions):
(WebKit::configurationAssertionRequestContext):
(WebKit::WebAuthenticatorCoordinatorProxy::contextForRequest):
* 
Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:
(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
* Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
* 
Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
* Source/WebKit/WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):
* Source/WebKit/WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h:

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to