OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" | 5 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
237 } | 237 } |
238 | 238 |
239 // Signals that the user has opted in to geolocation services. Factored out | 239 // Signals that the user has opted in to geolocation services. Factored out |
240 // into a separate method because all interaction with the geolocation provider | 240 // into a separate method because all interaction with the geolocation provider |
241 // needs to happen on the IO thread, which is not the thread | 241 // needs to happen on the IO thread, which is not the thread |
242 // AutofillDialogController lives on. | 242 // AutofillDialogController lives on. |
243 void UserDidOptIntoLocationServices() { | 243 void UserDidOptIntoLocationServices() { |
244 content::GeolocationProvider::GetInstance()->UserDidOptIntoLocationServices(); | 244 content::GeolocationProvider::GetInstance()->UserDidOptIntoLocationServices(); |
245 } | 245 } |
246 | 246 |
247 bool IsCardHolderNameValidForWallet(const string16& name) { | |
248 base::string16 whitespace_collapsed_name = CollapseWhitespace(name, true); | |
249 std::vector<base::string16> split_name; | |
250 SplitString(whitespace_collapsed_name, ' ', &split_name); | |
251 return split_name.size() >= 2; | |
252 } | |
253 | |
247 } // namespace | 254 } // namespace |
248 | 255 |
249 AutofillDialogController::~AutofillDialogController() {} | 256 AutofillDialogController::~AutofillDialogController() {} |
250 | 257 |
251 AutofillDialogControllerImpl::~AutofillDialogControllerImpl() { | 258 AutofillDialogControllerImpl::~AutofillDialogControllerImpl() { |
252 if (popup_controller_) | 259 if (popup_controller_) |
253 popup_controller_->Hide(); | 260 popup_controller_->Hide(); |
254 | 261 |
255 GetMetricLogger().LogDialogInitialUserState( | 262 GetMetricLogger().LogDialogInitialUserState( |
256 GetDialogType(), initial_user_state_); | 263 GetDialogType(), initial_user_state_); |
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1106 field_values[CREDIT_CARD_EXP_4_DIGIT_YEAR], | 1113 field_values[CREDIT_CARD_EXP_4_DIGIT_YEAR], |
1107 field_values[CREDIT_CARD_EXP_MONTH], | 1114 field_values[CREDIT_CARD_EXP_MONTH], |
1108 base::Time::Now())) { | 1115 base::Time::Now())) { |
1109 invalid_messages[CREDIT_CARD_EXP_MONTH] = | 1116 invalid_messages[CREDIT_CARD_EXP_MONTH] = |
1110 ASCIIToUTF16("more complicated message"); | 1117 ASCIIToUTF16("more complicated message"); |
1111 invalid_messages[CREDIT_CARD_EXP_4_DIGIT_YEAR] = | 1118 invalid_messages[CREDIT_CARD_EXP_4_DIGIT_YEAR] = |
1112 ASCIIToUTF16("more complicated message"); | 1119 ASCIIToUTF16("more complicated message"); |
1113 } | 1120 } |
1114 } | 1121 } |
1115 | 1122 |
1123 // Wallet requires a first and last name. | |
1124 if (field_values.count(CREDIT_CARD_NAME)) { | |
Evan Stade
2013/05/23 23:28:40
can you put this in InputValidityMessage()? Inputs
ahutter
2013/05/24 18:36:02
Done.
| |
1125 if (IsPayingWithWallet() && | |
1126 !IsCardHolderNameValidForWallet(field_values[CREDIT_CARD_NAME])) { | |
1127 invalid_messages[CREDIT_CARD_NAME] = | |
1128 l10n_util::GetStringUTF16( | |
1129 IDS_AUTOFILL_DIALOG_VALIDATION_WALLET_REQUIRES_TWO_NAMES); | |
1130 } | |
1131 } | |
1132 | |
1116 // If there is a credit card number and a CVC, validate them together. | 1133 // If there is a credit card number and a CVC, validate them together. |
1117 if (field_values.count(CREDIT_CARD_NUMBER) && | 1134 if (field_values.count(CREDIT_CARD_NUMBER) && |
1118 field_values.count(CREDIT_CARD_VERIFICATION_CODE) && | 1135 field_values.count(CREDIT_CARD_VERIFICATION_CODE) && |
1119 InputIsValid(CREDIT_CARD_NUMBER, field_values[CREDIT_CARD_NUMBER])) { | 1136 InputIsValid(CREDIT_CARD_NUMBER, field_values[CREDIT_CARD_NUMBER])) { |
1120 if (!autofill::IsValidCreditCardSecurityCode( | 1137 if (!autofill::IsValidCreditCardSecurityCode( |
1121 field_values[CREDIT_CARD_VERIFICATION_CODE], | 1138 field_values[CREDIT_CARD_VERIFICATION_CODE], |
1122 field_values[CREDIT_CARD_NUMBER])) { | 1139 field_values[CREDIT_CARD_NUMBER])) { |
1123 invalid_messages[CREDIT_CARD_VERIFICATION_CODE] = | 1140 invalid_messages[CREDIT_CARD_VERIFICATION_CODE] = |
1124 ASCIIToUTF16("CVC doesn't match card type!"); | 1141 ASCIIToUTF16("CVC doesn't match card type!"); |
1125 } | 1142 } |
(...skipping 1450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2576 AutofillMetrics::DIALOG_USER_SIGNED_IN_NO_WALLET_NO_AUTOFILL; | 2593 AutofillMetrics::DIALOG_USER_SIGNED_IN_NO_WALLET_NO_AUTOFILL; |
2577 } | 2594 } |
2578 | 2595 |
2579 // Has Wallet items. | 2596 // Has Wallet items. |
2580 return has_autofill_profiles ? | 2597 return has_autofill_profiles ? |
2581 AutofillMetrics::DIALOG_USER_SIGNED_IN_HAS_WALLET_HAS_AUTOFILL : | 2598 AutofillMetrics::DIALOG_USER_SIGNED_IN_HAS_WALLET_HAS_AUTOFILL : |
2582 AutofillMetrics::DIALOG_USER_SIGNED_IN_HAS_WALLET_NO_AUTOFILL; | 2599 AutofillMetrics::DIALOG_USER_SIGNED_IN_HAS_WALLET_NO_AUTOFILL; |
2583 } | 2600 } |
2584 | 2601 |
2585 } // namespace autofill | 2602 } // namespace autofill |
OLD | NEW |