Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(325)

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc

Issue 141843005: rAc: fix some validation issues (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 1727 matching lines...) Expand 10 before | Expand all | Expand 10 after
1738 return value.empty() ? 1738 return value.empty() ?
1739 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_VALIDATION_MISSING_VALUE) : 1739 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_VALIDATION_MISSING_VALUE) :
1740 base::string16(); 1740 base::string16();
1741 } 1741 }
1742 1742
1743 // TODO(groby): Also add tests. 1743 // TODO(groby): Also add tests.
1744 ValidityMessages AutofillDialogControllerImpl::InputsAreValid( 1744 ValidityMessages AutofillDialogControllerImpl::InputsAreValid(
1745 DialogSection section, 1745 DialogSection section,
1746 const FieldValueMap& inputs) { 1746 const FieldValueMap& inputs) {
1747 ValidityMessages messages; 1747 ValidityMessages messages;
1748 FieldValueMap field_values;
1749 for (FieldValueMap::const_iterator iter = inputs.begin(); 1748 for (FieldValueMap::const_iterator iter = inputs.begin();
1750 iter != inputs.end(); ++iter) { 1749 iter != inputs.end(); ++iter) {
1751 const ServerFieldType type = iter->first; 1750 const ServerFieldType type = iter->first;
1752 1751
1753 base::string16 text = InputValidityMessage(section, type, iter->second); 1752 base::string16 text = InputValidityMessage(section, type, iter->second);
1754 1753
1755 // Skip empty/unchanged fields in edit mode. Ignore country as it always has 1754 // Skip empty/unchanged fields in edit mode. Ignore country as it always has
1756 // a value. If the individual field does not have validation errors, assume 1755 // a value. If the individual field does not have validation errors, assume
1757 // it to be valid unless later proven otherwise. 1756 // it to be valid unless later proven otherwise.
1758 bool sure = InputWasEdited(type, iter->second) || 1757 bool sure = InputWasEdited(type, iter->second) ||
1759 AutofillType(type).GetStorableType() == ADDRESS_HOME_COUNTRY; 1758 AutofillType(type).GetStorableType() == ADDRESS_HOME_COUNTRY;
1760
1761 // Consider only individually valid fields for inter-field validation.
1762 if (text.empty()) {
1763 field_values[type] = iter->second;
1764 // If the field is valid but can be invalidated by inter-field validation,
Evan Stade 2014/01/31 00:22:13 example of the problem this caused: 1) CC is inva
groby-ooo-7-16 2014/01/31 19:59:59 I'm not sure this addresses that issue without sid
Evan Stade 2014/01/31 21:50:28 yes, we want it to always occur, so that we can va
1765 // assume it to be unsure.
1766 if (type == CREDIT_CARD_EXP_4_DIGIT_YEAR ||
1767 type == CREDIT_CARD_EXP_MONTH ||
1768 type == CREDIT_CARD_VERIFICATION_CODE ||
1769 type == PHONE_HOME_WHOLE_NUMBER ||
1770 type == PHONE_BILLING_WHOLE_NUMBER) {
1771 sure = false;
1772 }
1773 }
1774 messages.Set(type, ValidityMessage(text, sure)); 1759 messages.Set(type, ValidityMessage(text, sure));
1775 } 1760 }
1776 1761
1762 // For the convenience of using operator[].
1763 FieldValueMap& field_values = const_cast<FieldValueMap&>(inputs);
1777 // Validate the date formed by month and year field. (Autofill dialog is 1764 // Validate the date formed by month and year field. (Autofill dialog is
1778 // never supposed to have 2-digit years, so not checked). 1765 // never supposed to have 2-digit years, so not checked).
1779 if (field_values.count(CREDIT_CARD_EXP_4_DIGIT_YEAR) && 1766 if (field_values.count(CREDIT_CARD_EXP_4_DIGIT_YEAR) &&
1780 field_values.count(CREDIT_CARD_EXP_MONTH) && 1767 field_values.count(CREDIT_CARD_EXP_MONTH) &&
1781 InputWasEdited(CREDIT_CARD_EXP_4_DIGIT_YEAR, 1768 InputWasEdited(CREDIT_CARD_EXP_4_DIGIT_YEAR,
1782 field_values[CREDIT_CARD_EXP_4_DIGIT_YEAR]) && 1769 field_values[CREDIT_CARD_EXP_4_DIGIT_YEAR]) &&
1783 InputWasEdited(CREDIT_CARD_EXP_MONTH, 1770 InputWasEdited(CREDIT_CARD_EXP_MONTH,
1784 field_values[CREDIT_CARD_EXP_MONTH])) { 1771 field_values[CREDIT_CARD_EXP_MONTH])) {
1785 ValidityMessage year_message(base::string16(), true); 1772 ValidityMessage year_message(base::string16(), true);
1786 ValidityMessage month_message(base::string16(), true); 1773 ValidityMessage month_message(base::string16(), true);
(...skipping 1861 matching lines...) Expand 10 before | Expand all | Expand 10 after
3648 view_->UpdateButtonStrip(); 3635 view_->UpdateButtonStrip();
3649 } 3636 }
3650 3637
3651 void AutofillDialogControllerImpl::FetchWalletCookie() { 3638 void AutofillDialogControllerImpl::FetchWalletCookie() {
3652 net::URLRequestContextGetter* request_context = profile_->GetRequestContext(); 3639 net::URLRequestContextGetter* request_context = profile_->GetRequestContext();
3653 signin_helper_.reset(new wallet::WalletSigninHelper(this, request_context)); 3640 signin_helper_.reset(new wallet::WalletSigninHelper(this, request_context));
3654 signin_helper_->StartWalletCookieValueFetch(); 3641 signin_helper_->StartWalletCookieValueFetch();
3655 } 3642 }
3656 3643
3657 } // namespace autofill 3644 } // namespace autofill
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/autofill/autofill_dialog_types.h » ('j') | chrome/browser/ui/autofill/autofill_dialog_types.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698