| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "content/browser/webauth/virtual_authenticator_request_delegate.h" |
| |
| #include <vector> |
| |
| #include "base/callback.h" |
| #include "content/browser/webauth/authenticator_environment_impl.h" |
| #include "device/fido/authenticator_get_assertion_response.h" |
| #include "device/fido/fido_transport_protocol.h" |
| |
| namespace content { |
| |
| VirtualAuthenticatorRequestDelegate::VirtualAuthenticatorRequestDelegate( |
| FrameTreeNode* frame_tree_node) |
| : frame_tree_node_(frame_tree_node) {} |
| |
| VirtualAuthenticatorRequestDelegate::~VirtualAuthenticatorRequestDelegate() = |
| default; |
| |
| bool VirtualAuthenticatorRequestDelegate::SupportsResidentKeys() { |
| return true; |
| } |
| |
| void VirtualAuthenticatorRequestDelegate::SelectAccount( |
| std::vector<device::AuthenticatorGetAssertionResponse> responses, |
| base::OnceCallback<void(device::AuthenticatorGetAssertionResponse)> |
| callback) { |
| // TODO(crbug.com/991666): Provide a way to determine which account gets |
| // picked. |
| std::move(callback).Run(std::move(responses[0])); |
| } |
| |
| base::Optional<bool> VirtualAuthenticatorRequestDelegate:: |
| IsUserVerifyingPlatformAuthenticatorAvailableOverride() { |
| return AuthenticatorEnvironmentImpl::GetInstance() |
| ->HasVirtualUserVerifyingPlatformAuthenticator(frame_tree_node_); |
| } |
| |
| } // namespace content |