summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-19 18:03:08 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-19 18:03:08 +0000
commit498dd0c587f7307f7969d487dc25125fda3ca872 (patch)
tree597aa23bf76419082dfe179783d78a03899e21c2 /chrome
parent0f4df150382b049652815cccc7f968b5c0d8b4d4 (diff)
downloadchromium_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.cc20
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);