• Balazs Engedy's avatar
    Fix two bugs affecting starting caBLE discovery. · 5b4891f3
    Balazs Engedy authored
    The first bug is that the WebAuthn dialog is never shown if caBLE is
    enabled but the |cable_extension| is not provided in the GetAssertion
    request.
    
    It's because GetAssertionRequestHandler's constructor will not actually
    create and start a FidoCableDiscovery if the request is missing the
    |cable_extension| data, while FidoRequestHandlerBase's barrier closure
    will still wait for the discovery to start the transport protocol is
    marked available in |available_transports|.
    
    The second bug is that caBLE will not be used for a GetAssertion request
    if the same web page already issued a MakeCredential request before.
    
    This is because AuthenticatorImpl::MakeCredential will remove caBLE
    from |protocols_|. However, the same AuthenticatorImpl instance will be
    used to service the GetAssertionRequest, which will already see a
    trimmed list of |protocols_| without caBLE, and pass it to
    GetAssertionRequestHandler.
    
    Bug: 878877
    Change-Id: I6b7c915fc0de63e6da29399825071734405e424c
    Reviewed-on: https://chromium-review.googlesource.com/1194040Reviewed-by: default avatarChris Palmer <palmer@chromium.org>
    Reviewed-by: default avatarKim Paulhamus <kpaulhamus@chromium.org>
    Commit-Queue: Balazs Engedy <engedy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#587355}
    5b4891f3
ctap_get_assertion_request.h 4.17 KB