Chromium Code Reviews| Index: chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc |
| diff --git a/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc b/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc |
| index 22fa5538c2c0a8520e2b878779e0046a630d8a91..20a20bf16bb48c4af780a51f669aa5a85b3817e6 100644 |
| --- a/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc |
| +++ b/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc |
| @@ -189,9 +189,14 @@ bool CreditCardEditorViewController::ValidateModelAndSave() { |
| std::unique_ptr<ValidationDelegate> |
| CreditCardEditorViewController::CreateValidationDelegate( |
| const EditorField& field) { |
| + // We do not pass the supported card networks for non-cc-number types to avoid |
|
anthonyvd
2017/02/23 16:42:27
Nit: the style guide recommends not formulating co
Mathieu
2017/02/23 16:48:31
Done.
|
| + // the data copy in the delegate. |
| return base::MakeUnique< |
| - CreditCardEditorViewController::CreditCardValidationDelegate>(field, |
| - this); |
| + CreditCardEditorViewController::CreditCardValidationDelegate>( |
| + field, this, |
| + field.type == autofill::CREDIT_CARD_NUMBER |
| + ? request()->supported_card_networks() |
| + : std::vector<std::string>()); |
| } |
| std::unique_ptr<ui::ComboboxModel> |
| @@ -216,9 +221,14 @@ CreditCardEditorViewController::GetComboboxModelForType( |
| } |
| CreditCardEditorViewController::CreditCardValidationDelegate:: |
| - CreditCardValidationDelegate(const EditorField& field, |
| - EditorViewController* controller) |
| - : field_(field), controller_(controller) {} |
| + CreditCardValidationDelegate( |
| + const EditorField& field, |
| + EditorViewController* controller, |
| + const std::vector<std::string>& supported_card_networks) |
| + : field_(field), |
| + controller_(controller), |
| + supported_card_networks_(supported_card_networks.begin(), |
| + supported_card_networks.end()) {} |
| CreditCardEditorViewController::CreditCardValidationDelegate:: |
| ~CreditCardValidationDelegate() {} |
| @@ -237,7 +247,10 @@ bool CreditCardEditorViewController::CreditCardValidationDelegate:: |
| if (!value.empty()) { |
| base::string16 error_message; |
| bool is_valid = |
| - autofill::IsValidForType(value, field_.type, &error_message); |
| + field_.type == autofill::CREDIT_CARD_NUMBER |
| + ? autofill::IsValidCreditCardNumberForBasicCardNetworks( |
| + value, supported_card_networks_, &error_message) |
| + : autofill::IsValidForType(value, field_.type, &error_message); |
| controller_->DisplayErrorMessageForField(field_, error_message); |
| return is_valid; |
| } |