diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-19 18:03:08 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-19 18:03:08 +0000 |
commit | 498dd0c587f7307f7969d487dc25125fda3ca872 (patch) | |
tree | 597aa23bf76419082dfe179783d78a03899e21c2 /chrome | |
parent | 0f4df150382b049652815cccc7f968b5c0d8b4d4 (diff) | |
download | chromium_src-498dd0c587f7307f7969d487dc25125fda3ca872.zip chromium_src-498dd0c587f7307f7969d487dc25125fda3ca872.tar.gz chromium_src-498dd0c587f7307f7969d487dc25125fda3ca872.tar.bz2 |
gtk: Store the original credit card number and save that if the user has not
edited the obfuscated cc number.
BUG=41649
TEST=none
Review URL: http://codereview.chromium.org/1672001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44925 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/autofill/autofill_dialog_gtk.cc | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/chrome/browser/autofill/autofill_dialog_gtk.cc b/chrome/browser/autofill/autofill_dialog_gtk.cc index 7c0f5b6..0f7a40a 100644 --- a/chrome/browser/autofill/autofill_dialog_gtk.cc +++ b/chrome/browser/autofill/autofill_dialog_gtk.cc @@ -81,6 +81,7 @@ typedef struct _CreditCardWidgets { GtkWidget* phone1; GtkWidget* phone2; GtkWidget* phone3; + string16 original_card_number; } CreditCardWidgets; // Adds an alignment around |widget| which indents the widget by |offset|. @@ -512,15 +513,23 @@ static CreditCard CreditCardFromWidgetValues( CreditCard credit_card(GetEntryText(widgets.label), 0); credit_card.SetInfo(AutoFillType(CREDIT_CARD_NAME), GetEntryText(widgets.name_on_card)); - // TODO(jhawkins): Credit card type. - credit_card.SetInfo(AutoFillType(CREDIT_CARD_NUMBER), - GetEntryText(widgets.card_number)); credit_card.SetInfo(AutoFillType(CREDIT_CARD_EXP_MONTH), GetEntryText(widgets.expiration_month)); credit_card.SetInfo(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), GetEntryText(widgets.expiration_year)); credit_card.SetInfo(AutoFillType(CREDIT_CARD_VERIFICATION_CODE), GetEntryText(widgets.verification_code)); + + // If the CC number starts with an asterisk, then we know that the user has + // not modified the credit card number at the least, so use the original CC + // number in this case. + string16 cc_number = GetEntryText(widgets.card_number); + if (!cc_number.empty() && cc_number[0] == '*') + credit_card.SetInfo(AutoFillType(CREDIT_CARD_NUMBER), + widgets.original_card_number); + else + credit_card.SetInfo(AutoFillType(CREDIT_CARD_NUMBER), + GetEntryText(widgets.card_number)); // TODO(jhawkins): Billing/shipping addresses. return credit_card; } @@ -1035,9 +1044,10 @@ void AutoFillDialog::AddCreditCard(const CreditCard& credit_card, SetEntryText(widgets.name_on_card, credit_card.GetFieldText(AutoFillType(CREDIT_CARD_NAME))); // Set obfuscated number if not empty. - string16 credit_card_number = + credit_card_widgets_.back().original_card_number = credit_card.GetFieldText(AutoFillType(CREDIT_CARD_NUMBER)); - if (!credit_card_number.empty()) + string16 credit_card_number; + if (!widgets.original_card_number.empty()) credit_card_number = credit_card.ObfuscatedNumber(); // TODO(jhawkins): Credit Card type? Shouldn't be necessary. SetEntryText(widgets.card_number, credit_card_number); |