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

Unified Diff: components/autofill/core/browser/webdata/autofill_table.cc

Issue 2109643003: Add billing address to masked server credit cards. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add version_66.sql to the build file. Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/webdata/autofill_table.cc
diff --git a/components/autofill/core/browser/webdata/autofill_table.cc b/components/autofill/core/browser/webdata/autofill_table.cc
index 5f2ff3a8e8e65c8102f504544ce0736bb811f099..98ebfafce36d2232dabb358884c97a0c74a01a84 100644
--- a/components/autofill/core/browser/webdata/autofill_table.cc
+++ b/components/autofill/core/browser/webdata/autofill_table.cc
@@ -459,6 +459,9 @@ bool AutofillTable::MigrateToVersion(int version,
case 66:
*update_compatible_version = false;
return MigrateToVersion66AddCardBillingAddress();
+ case 67:
+ *update_compatible_version = false;
+ return MigrateToVersion67AddMaskedCardBillingAddress();
}
return true;
}
@@ -1205,7 +1208,8 @@ bool AutofillTable::GetServerCreditCards(
"status," // 6
"name_on_card," // 7
"exp_month," // 8
- "exp_year " // 9
+ "exp_year," // 9
+ "billing_address_id " // 10
"FROM masked_credit_cards masked "
"LEFT OUTER JOIN unmasked_credit_cards USING (id) "
"LEFT OUTER JOIN server_card_metadata metadata USING (id)"));
@@ -1245,6 +1249,7 @@ bool AutofillTable::GetServerCreditCards(
card->SetRawInfo(CREDIT_CARD_NAME_FULL, s.ColumnString16(index++));
card->SetRawInfo(CREDIT_CARD_EXP_MONTH, s.ColumnString16(index++));
card->SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, s.ColumnString16(index++));
+ card->set_billing_address_id(s.ColumnString(index++));
credit_cards->push_back(card);
}
@@ -1269,9 +1274,10 @@ void AutofillTable::SetServerCreditCards(
"status," // 2
"name_on_card," // 3
"last_four," // 4
- "exp_month," // 4
- "exp_year) " // 5
- "VALUES (?,?,?,?,?,?,?)"));
+ "exp_month," // 5
+ "exp_year," // 6
+ "billing_address_id) " // 7
+ "VALUES (?,?,?,?,?,?,?,?)"));
for (const CreditCard& card : credit_cards) {
DCHECK_EQ(CreditCard::MASKED_SERVER_CARD, card.record_type());
@@ -1284,6 +1290,7 @@ void AutofillTable::SetServerCreditCards(
masked_insert.BindString16(5, card.GetRawInfo(CREDIT_CARD_EXP_MONTH));
masked_insert.BindString16(6,
card.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
+ masked_insert.BindString(7, card.billing_address_id());
masked_insert.Run();
masked_insert.Reset(true);
@@ -1394,6 +1401,21 @@ bool AutofillTable::UpdateServerAddressUsageStats(
return db_->GetLastChangeCount() > 0;
}
+bool AutofillTable::UpdateServerCardBillingAddress(
+ const CreditCard& credit_card) {
+ DCHECK_NE(CreditCard::LOCAL_CARD, credit_card.record_type());
+
+ sql::Statement update(db_->GetUniqueStatement(
+ "UPDATE masked_credit_cards SET billing_address_id = ? "
+ "WHERE id = ?"));
+ update.BindString(0, credit_card.billing_address_id());
+ update.BindString(1, credit_card.server_id());
+ if (!update.Run())
+ return false;
+
+ return db_->GetLastChangeCount() > 0;
+}
+
bool AutofillTable::ClearAllServerData() {
sql::Transaction transaction(db_);
if (!transaction.Begin())
@@ -1778,7 +1800,8 @@ bool AutofillTable::InitMaskedCreditCardsTable() {
"type VARCHAR,"
"last_four VARCHAR,"
"exp_month INTEGER DEFAULT 0,"
- "exp_year INTEGER DEFAULT 0)")) {
+ "exp_year INTEGER DEFAULT 0, "
+ "billing_address_id VARCHAR)")) {
NOTREACHED();
return false;
}
@@ -2281,4 +2304,11 @@ bool AutofillTable::MigrateToVersion66AddCardBillingAddress() {
"ALTER TABLE credit_cards ADD COLUMN billing_address_id VARCHAR");
}
+bool AutofillTable::MigrateToVersion67AddMaskedCardBillingAddress() {
+ // The default value for this column is null, but Connection::ColumnString()
+ // returns an empty string for that.
+ return db_->Execute(
+ "ALTER TABLE masked_credit_cards ADD COLUMN billing_address_id VARCHAR");
+}
+
} // namespace autofill

Powered by Google App Engine
This is Rietveld 408576698