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 #include "components/autofill/content/browser/wallet/required_action.h" 6 7 #include "base/logging.h" 8 #include "base/strings/string_util.h" 9 10 namespace autofill { 11 namespace wallet { 12 13 bool ActionAppliesToFullWallet(RequiredAction action) { 14 return action == UPDATE_EXPIRATION_DATE || 15 action == VERIFY_CVV || 16 action == CHOOSE_ANOTHER_INSTRUMENT_OR_ADDRESS || 17 action == REQUIRE_PHONE_NUMBER; 18 } 19 20 bool ActionAppliesToSaveToWallet(RequiredAction action) { 21 return action == INVALID_FORM_FIELD || 22 action == REQUIRE_PHONE_NUMBER; 23 } 24 25 bool ActionAppliesToWalletItems(RequiredAction action) { 26 return action == SETUP_WALLET || 27 action == CHOOSE_ANOTHER_INSTRUMENT_OR_ADDRESS || 28 action == ACCEPT_TOS || 29 action == GAIA_AUTH || 30 action == REQUIRE_PHONE_NUMBER || 31 action == UPDATE_EXPIRATION_DATE || 32 action == UPGRADE_MIN_ADDRESS || 33 action == PASSIVE_GAIA_AUTH; 34 } 35 36 RequiredAction ParseRequiredActionFromString(const std::string& str) { 37 std::string str_lower; 38 base::TrimWhitespaceASCII(StringToLowerASCII(str), base::TRIM_ALL, 39 &str_lower); 40 41 if (str_lower == "setup_wallet") 42 return SETUP_WALLET; 43 else if (str_lower == "accept_tos") 44 return ACCEPT_TOS; 45 else if (str_lower == "gaia_auth") 46 return GAIA_AUTH; 47 else if (str_lower == "update_expiration_date") 48 return UPDATE_EXPIRATION_DATE; 49 else if (str_lower == "upgrade_min_address") 50 return UPGRADE_MIN_ADDRESS; 51 else if (str_lower == "invalid_form_field") 52 return INVALID_FORM_FIELD; 53 else if (str_lower == "verify_cvv") 54 return VERIFY_CVV; 55 else if (str_lower == "passive_gaia_auth") 56 return PASSIVE_GAIA_AUTH; 57 else if (str_lower == "require_phone_number") 58 return REQUIRE_PHONE_NUMBER; 59 else if (str_lower == "choose_another_instrument_or_address") 60 return CHOOSE_ANOTHER_INSTRUMENT_OR_ADDRESS; 61 62 DLOG(ERROR) << "Failed to parse: \"" << str << "\" as a required action"; 63 return UNKNOWN_TYPE; 64 } 65 66 } // namespace wallet 67 } // namespace autofill 68