[webkit-reviews] review denied: [Bug 232635] [WebAuthn] Implement add/remove_virtual_authenticator for transport=internal : [Attachment 443230] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Nov 3 14:54:46 PDT 2021
Brent Fulgham <bfulgham at webkit.org> has denied j_pascoe at apple.com
<j_pascoe at apple.com>'s request for review:
Bug 232635: [WebAuthn] Implement add/remove_virtual_authenticator for
transport=internal
https://bugs.webkit.org/show_bug.cgi?id=232635
Attachment 443230: Patch
https://bugs.webkit.org/attachment.cgi?id=443230&action=review
--- Comment #7 from Brent Fulgham <bfulgham at webkit.org> ---
Comment on attachment 443230
--> https://bugs.webkit.org/attachment.cgi?id=443230
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=443230&action=review
I think this patch looks really good, but a couple of improvements could be
made. r- to correct the pass-by-value things (or help me understand why I'm
wrong), and to confirm we don't have any racy behavior with objects going out
of scope.
> Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1560
> + WebPageProxy* page = webPageProxyForHandle(browsingContextHandle);
Could be 'auto'
> Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1563
> + VirtualAuthenticatorManager& authenticatorManager =
page->websiteDataStore().virtualAuthenticatorManager();
Couldn't this be "const auto&"?
> Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1605
> + VirtualAuthenticatorManager& authenticatorManager =
page->websiteDataStore().virtualAuthenticatorManager();
Ditto the auto and "const auto&" comments above.
>
Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.c
pp:41
> +String
VirtualAuthenticatorManager::createAuthenticator(VirtualAuthenticatorConfigurat
ion config)
Seems like the config argument should be a const & or a Move operation.
> Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.h:41
> + void verifyUser(const String&, WebCore::ClientDataType,
SecAccessControlRef, WebCore::UserVerificationRequirement,
UserVerificationCallback&&) final;
Extra space before UserVerificationCallback&&
>
Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.mm:55
> + RunLoop::main().dispatch([configuration = m_configuration, callback =
WTFMove(callback)]() mutable {
Do we copy the configuration here because we think the main object may go out
of scope? If so, we should hold a weakPtr to 'this' and bail out early if it is
nullptr.
If we don't think it's possible for 'this' to be deleted before this code is
called, maybe pass a reference or just access the object through this?
> Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualService.h:39
> + static UniqueRef<AuthenticatorTransportService>
createVirtual(WebCore::AuthenticatorTransport, Observer&, const
Vector<VirtualAuthenticatorConfiguration> configs);
Do you really want to pass a vector of VirtualAuthenticatorConfiguration by
copy? Seems like you should move them, or pass a const ref.
> Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualService.mm:54
> +
observer()->authenticatorAdded(LocalAuthenticator::create(makeUniqueRef<Virtual
LocalConnection>(config)));
Is it possible for 'authenticatorAdded' to call anything that could cause
observer() to return nullptr?
More information about the webkit-reviews
mailing list