// 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_AUTOMATION_AUTOMATION_ACTION_H_
#define IOS_CHROME_BROWSER_AUTOFILL_AUTOMATION_AUTOMATION_ACTION_H_

#import <Foundation/Foundation.h>
#include "base/values.h"

// AutomationAction consumes description of actions in base::Value format,
// generated in json by an extension and executes them on the current
// active web page. AutomationAction is an abstract superclass for a class
// cluster, the class method -actionWithValueDict: returns concrete
// subclasses for the various possible actions.
@interface AutomationAction : NSObject

// Returns an concrete instance of a subclass of AutomationAction.
+ (instancetype)actionWithValueDict:(base::Value::Dict)actionDictionary;

// Prevents creating rogue instances, the init methods are private.
- (instancetype)init NS_UNAVAILABLE;

// For subclasses to implement, execute the action. Use GREYAssert in case of
// issue.
- (void)execute;
@end

#endif  // IOS_CHROME_BROWSER_AUTOFILL_AUTOMATION_AUTOMATION_ACTION_H_
