blob: d8e08d4c14db6272b667f9b8c7f65d283dd226f6 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_WEBAUTHN_MODEL_IOS_CHROME_PASSKEY_CLIENT_H_
#define IOS_CHROME_BROWSER_WEBAUTHN_MODEL_IOS_CHROME_PASSKEY_CLIENT_H_
#import "base/memory/weak_ptr.h"
#import "components/webauthn/ios/ios_passkey_client.h"
namespace web {
class WebState;
} // namespace web
// Chrome side implementation of the IOSPasskeyClient interface.
class IOSChromePasskeyClient : public IOSPasskeyClient {
public:
IOSChromePasskeyClient(web::WebState* web_state);
~IOSChromePasskeyClient() override;
// IOSPasskeyClient overrides.
bool IsModalLoginWithShimAllowed() const override;
bool IsConditionalLoginWithShimAllowed() const override;
bool PerformUserVerification() override;
void FetchKeys(webauthn::ReauthenticatePurpose purpose,
webauthn::KeysFetchedCallback callback) override;
void ShowSuggestionBottomSheet() override;
void AllowPasskeyCreationInfobar(bool allowed) override;
private:
// Weak WebState.
base::WeakPtr<web::WebState> web_state_;
};
#endif // IOS_CHROME_BROWSER_WEBAUTHN_MODEL_IOS_CHROME_PASSKEY_CLIENT_H_