// 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_