Home | History | Annotate | Download | only in wallet
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_REQUIRED_ACTION_H_
      6 #define COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_REQUIRED_ACTION_H_
      7 
      8 #include <string>
      9 
     10 namespace autofill {
     11 namespace wallet {
     12 
     13 // Required actions are steps that must be taken before the current transaction
     14 // can proceed. Examples of this is include accepting the Terms of Service to
     15 // use Google Wallet (happens on first use or when the ToS are updated) or
     16 // typing a CVC when it's necessary verify the current user has access to the
     17 // backing card.
     18 enum RequiredAction {
     19   UNKNOWN_TYPE = 0,  // Catch all type.
     20   CHOOSE_ANOTHER_INSTRUMENT_OR_ADDRESS,
     21   SETUP_WALLET,
     22   ACCEPT_TOS,
     23   GAIA_AUTH,
     24   UPDATE_EXPIRATION_DATE,
     25   UPGRADE_MIN_ADDRESS,
     26   INVALID_FORM_FIELD,
     27   VERIFY_CVV,
     28   PASSIVE_GAIA_AUTH,
     29   REQUIRE_PHONE_NUMBER,
     30 };
     31 
     32 // Static helper functions to determine if an RequiredAction applies to a
     33 // FullWallet, WalletItems, or SaveToWallet response.
     34 bool ActionAppliesToFullWallet(RequiredAction action);
     35 bool ActionAppliesToSaveToWallet(RequiredAction action);
     36 bool ActionAppliesToWalletItems(RequiredAction action);
     37 
     38 // Turn a string value of the parsed JSON response into an RequiredAction.
     39 RequiredAction ParseRequiredActionFromString(const std::string& str);
     40 
     41 }  // namespace wallet
     42 }  // namespace autofill
     43 
     44 #endif  // COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_REQUIRED_ACTION_H_
     45