blob: eb536220953a3717bd244210099fce4d8bc9e7ea [file] [log] [blame]
// Copyright 2013 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 COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_REQUIRED_ACTION_H_
#define COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_REQUIRED_ACTION_H_
#include <string>
namespace autofill {
namespace wallet {
// Required actions are steps that must be taken before the current transaction
// can proceed. Examples of this is include accepting the Terms of Service to
// use Google Wallet (happens on first use or when the ToS are updated) or
// typing a CVC when it's necessary verify the current user has access to the
// backing card.
enum RequiredAction {
UNKNOWN_TYPE = 0, // Catch all type.
CHOOSE_ANOTHER_INSTRUMENT_OR_ADDRESS,
SETUP_WALLET,
ACCEPT_TOS,
GAIA_AUTH,
UPDATE_EXPIRATION_DATE,
UPGRADE_MIN_ADDRESS,
INVALID_FORM_FIELD,
VERIFY_CVV,
PASSIVE_GAIA_AUTH,
REQUIRE_PHONE_NUMBER,
};
// Static helper functions to determine if an RequiredAction applies to a
// FullWallet, WalletItems, or SaveToWallet response.
bool ActionAppliesToFullWallet(RequiredAction action);
bool ActionAppliesToSaveToWallet(RequiredAction action);
bool ActionAppliesToWalletItems(RequiredAction action);
// Turn a string value of the parsed JSON response into an RequiredAction.
RequiredAction ParseRequiredActionFromString(const std::string& str);
} // namespace wallet
} // namespace autofill
#endif // COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_REQUIRED_ACTION_H_