chromium/ios/chrome/browser/autofill/ui_bundled/manual_fill/manual_fill_injection_handler.h

// Copyright 2018 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_AUTOFILL_UI_BUNDLED_MANUAL_FILL_MANUAL_FILL_INJECTION_HANDLER_H_
#define IOS_CHROME_BROWSER_AUTOFILL_UI_BUNDLED_MANUAL_FILL_MANUAL_FILL_INJECTION_HANDLER_H_

#import <UIKit/UIKit.h>

#import "ios/chrome/browser/autofill/ui_bundled/manual_fill/manual_fill_content_injector.h"

@class ReauthenticationModule;
@protocol FormSuggestionClient;
@protocol SecurityAlertCommands;
class WebStateList;

// Handler with the common logic for injecting data from manual fill.
// TODO(crbug.com/40144948): Convert ManualFillInjectionHandler to browser
// agent.
@interface ManualFillInjectionHandler : NSObject <ManualFillContentInjector>

// Returns a handler using the `WebStateList` to inject JS to the active web
// state and `securityAlertPresenter` to present alerts.
- (instancetype)
      initWithWebStateList:(WebStateList*)webStateList
      securityAlertHandler:(id<SecurityAlertCommands>)securityAlertHandler
    reauthenticationModule:(ReauthenticationModule*)reauthenticationModule
      formSuggestionClient:(id<FormSuggestionClient>)formSuggestionClient;

@end

#endif  // IOS_CHROME_BROWSER_AUTOFILL_UI_BUNDLED_MANUAL_FILL_MANUAL_FILL_INJECTION_HANDLER_H_