diff options
author | georgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-06 21:48:34 +0000 |
---|---|---|
committer | georgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-06 21:48:34 +0000 |
commit | 8bfe3f93b895a4be97ddbadfd5ad01a71d8567b4 (patch) | |
tree | 208956f13e685d803d49a37aac283804e9931059 /chrome/browser/autofill | |
parent | d3e023a72bcec65081532b70fe7437e055477ecf (diff) | |
download | chromium_src-8bfe3f93b895a4be97ddbadfd5ad01a71d8567b4.zip chromium_src-8bfe3f93b895a4be97ddbadfd5ad01a71d8567b4.tar.gz chromium_src-8bfe3f93b895a4be97ddbadfd5ad01a71d8567b4.tar.bz2 |
Fix for bug #38260 AutoFill needs to obfuscate the saved credit card info in the AutoFill dialog
BUG=38260
TEST=in the bug. When user starts typing in obfuscated field, the text should clear.
Review URL: http://codereview.chromium.org/1567026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43763 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill')
-rw-r--r-- | chrome/browser/autofill/autofill_dialog_gtk.cc | 8 | ||||
-rw-r--r-- | chrome/browser/autofill/credit_card.cc | 7 |
2 files changed, 12 insertions, 3 deletions
diff --git a/chrome/browser/autofill/autofill_dialog_gtk.cc b/chrome/browser/autofill/autofill_dialog_gtk.cc index ebb4f9a..d3b82c0c0 100644 --- a/chrome/browser/autofill/autofill_dialog_gtk.cc +++ b/chrome/browser/autofill/autofill_dialog_gtk.cc @@ -1005,9 +1005,13 @@ void AutoFillDialog::AddCreditCard(const CreditCard& credit_card, SetEntryText(widgets.label, credit_card.Label()); SetEntryText(widgets.name_on_card, credit_card.GetFieldText(AutoFillType(CREDIT_CARD_NAME))); + // Set obfuscated number if not empty. + string16 credit_card_number = + credit_card.GetFieldText(AutoFillType(CREDIT_CARD_NUMBER)); + if (!credit_card_number.empty()) + credit_card_number = credit_card.ObfuscatedNumber(); // TODO(jhawkins): Credit Card type? Shouldn't be necessary. - SetEntryText(widgets.card_number, - credit_card.GetFieldText(AutoFillType(CREDIT_CARD_NUMBER))); + SetEntryText(widgets.card_number, credit_card_number); SetEntryText(widgets.expiration_month, credit_card.GetFieldText(AutoFillType(CREDIT_CARD_EXP_MONTH))); SetEntryText( diff --git a/chrome/browser/autofill/credit_card.cc b/chrome/browser/autofill/credit_card.cc index b412241..fefab77 100644 --- a/chrome/browser/autofill/credit_card.cc +++ b/chrome/browser/autofill/credit_card.cc @@ -13,6 +13,7 @@ #include "grit/generated_resources.h" static const string16 kCreditCardSeparators = ASCIIToUTF16(" -"); +static const char* kCreditCardObfuscationString = "************"; static const AutoFillFieldType kAutoFillCreditCardTypes[] = { CREDIT_CARD_NAME, @@ -184,6 +185,10 @@ void CreditCard::SetInfo(const AutoFillType& type, const string16& value) { break; case CREDIT_CARD_NUMBER: { + if (StartsWith(value, ASCIIToUTF16(kCreditCardObfuscationString), true)) { + // this is an obfuscated string. Do not change the real value. + break; + } set_number(value); // Update last four digits as well. if (value.length() > 4) @@ -206,7 +211,7 @@ void CreditCard::SetInfo(const AutoFillType& type, const string16& value) { string16 CreditCard::ObfuscatedNumber() const { if (number().empty()) return string16(); // No CC number, means empty preview. - string16 result(ASCIIToUTF16("************")); + string16 result(ASCIIToUTF16(kCreditCardObfuscationString)); result.append(last_four_digits()); return result; |