root/components/autofill/content/browser/wallet/required_action.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


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

/* [<][>][^][v][top][bottom][index][help] */