// Copyright 2014 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_CHROME_BROWSER_AUTOFILL_FORM_SUGGESTION_PROVIDER_H_ #define IOS_CHROME_BROWSER_AUTOFILL_FORM_SUGGESTION_PROVIDER_H_ #import "components/autofill/ios/browser/form_suggestion.h" @protocol FormSuggestionProvider; namespace web { class WebState; } // namespace web typedef void (^SuggestionsAvailableCompletion)(BOOL suggestionsAvailable); typedef void (^SuggestionsReadyCompletion)(NSArray* suggestions, id delegate); typedef void (^SuggestionHandledCompletion)(void); // Provides user-selectable suggestions for an input field of a web form // and handles user interaction with those suggestions. @protocol FormSuggestionProvider // Determines whether the receiver can provide suggestions for the specified // |form| and |field|, returning the result using the provided |completion|. // |typedValue| contains the text that the user has typed into the field so far. - (void)checkIfSuggestionsAvailableForForm:(NSString*)formName field:(NSString*)fieldName type:(NSString*)type typedValue:(NSString*)typedValue webState:(web::WebState*)webState completionHandler: (SuggestionsAvailableCompletion)completion; // Retrieves suggestions for the specified |form| and |field| and returns them // using the provided |completion|. |typedValue| contains the text that the // user has typed into the field so far. - (void)retrieveSuggestionsForForm:(NSString*)formName field:(NSString*)fieldName type:(NSString*)type typedValue:(NSString*)typedValue webState:(web::WebState*)webState completionHandler:(SuggestionsReadyCompletion)completion; // Handles user selection of a suggestion for the specified form and // field, invoking |completion| when finished. - (void)didSelectSuggestion:(FormSuggestion*)suggestion forField:(NSString*)fieldName form:(NSString*)formName completionHandler:(SuggestionHandledCompletion)completion; @end #endif // IOS_CHROME_BROWSER_AUTOFILL_FORM_SUGGESTION_PROVIDER_H_