| Index: ios/chrome/browser/autofill/form_suggestion_controller.h
|
| diff --git a/ios/chrome/browser/autofill/form_suggestion_controller.h b/ios/chrome/browser/autofill/form_suggestion_controller.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6cf39c7463b40a38cdd7faf39818661478bf3bfd
|
| --- /dev/null
|
| +++ b/ios/chrome/browser/autofill/form_suggestion_controller.h
|
| @@ -0,0 +1,60 @@
|
| +// 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_CONTROLLER_H_
|
| +#define IOS_CHROME_BROWSER_AUTOFILL_FORM_SUGGESTION_CONTROLLER_H_
|
| +
|
| +#import <UIKit/UIKit.h>
|
| +
|
| +#include <string>
|
| +
|
| +#import "components/autofill/ios/browser/js_suggestion_manager.h"
|
| +#import "ios/chrome/browser/autofill/form_suggestion_view.h"
|
| +#import "ios/chrome/browser/autofill/form_suggestion_view_client.h"
|
| +#import "ios/web/public/web_state/web_state_observer_bridge.h"
|
| +
|
| +namespace web {
|
| +class WebState;
|
| +}
|
| +
|
| +@protocol CRWWebViewProxy;
|
| +@protocol FormInputAccessoryViewProvider;
|
| +
|
| +// Handles form focus events and presents input suggestions.
|
| +@interface FormSuggestionController
|
| + : NSObject<CRWWebStateObserver, FormSuggestionViewClient>
|
| +
|
| +// Initializes a new FormSuggestionController with the specified WebState and a
|
| +// list of FormSuggestionProviders.
|
| +// When suggestions are required for an input field, the |providers| will be
|
| +// asked (in order) if they can handle the field; the first provider to return
|
| +// YES from [FormSuggestionProvider canProviderSuggestionsForForm:field:] will
|
| +// be expected to provide those suggestions using [FormSuggestionProvider
|
| +// retrieveSuggestionsForForm:field:withCompletion:].
|
| +- (instancetype)initWithWebState:(web::WebState*)webState
|
| + providers:(NSArray*)providers;
|
| +
|
| +// Instructs the controller to detach itself from the WebState.
|
| +- (void)detachFromWebState;
|
| +
|
| +// Provides an input accessory view for form suggestions.
|
| +@property(nonatomic, readonly)
|
| + id<FormInputAccessoryViewProvider> accessoryViewProvider;
|
| +
|
| +@end
|
| +
|
| +@interface FormSuggestionController (ForTesting)
|
| +
|
| +// Initializes a new controller in the same way as the public initializer, but
|
| +// supports specifying a JsSuggestionManager for testing.
|
| +- (instancetype)initWithWebState:(web::WebState*)webState
|
| + providers:(NSArray*)providers
|
| + JsSuggestionManager:(JsSuggestionManager*)jsSuggestionManager;
|
| +
|
| +// Overrides the web view proxy.
|
| +- (void)setWebViewProxy:(id<CRWWebViewProxy>)webViewProxy;
|
| +
|
| +@end
|
| +
|
| +#endif // IOS_CHROME_BROWSER_AUTOFILL_FORM_SUGGESTION_CONTROLLER_H_
|
|
|