1234567891011121314151617181920212223242526272829303132333435363738 |
- // Copyright 2021 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.
- #ifndef IOS_COMPONENTS_CREDENTIAL_PROVIDER_EXTENSION_PASSWORD_SPEC_FETCHER_H_
- #define IOS_COMPONENTS_CREDENTIAL_PROVIDER_EXTENSION_PASSWORD_SPEC_FETCHER_H_
- #import <Foundation/Foundation.h>
- namespace autofill {
- class PasswordRequirementsSpec;
- }
- // Type of the block invoked when spec fetch is complete.
- using FetchSpecCompletionBlock =
- void (^)(autofill::PasswordRequirementsSpec spec);
- // Can fetch a password specification for the given host.
- @interface PasswordSpecFetcher : NSObject
- // |host| indicates which spec should be fetched from the service.
- // |APIKey| is the API key used to fetch the service.
- - (instancetype)initWithHost:(NSString*)host APIKey:(NSString*)APIKey;
- // Indicates if the spec has been fetched already.
- @property(nonatomic, readonly) BOOL didFetchSpec;
- // The spec if ready or an empty one if fetch hasn't happened.
- @property(nonatomic, readonly) autofill::PasswordRequirementsSpec spec;
- // Fetches the spec and executes |completion| in the main thread. If called
- // multiple times only the last completion is executed. An empty spec is
- // returned in case there is any error or it is not found.
- - (void)fetchSpecWithCompletion:(FetchSpecCompletionBlock)completion;
- @end
- #endif // IOS_COMPONENTS_CREDENTIAL_PROVIDER_EXTENSION_PASSWORD_SPEC_FETCHER_H_
|