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

Side by Side Diff: components/autofill/core/browser/webdata/autofill_table.cc

Issue 870203002: Add status to server credit cards. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add TODO Created 5 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
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 "components/autofill/core/browser/webdata/autofill_table.h" 5 #include "components/autofill/core/browser/webdata/autofill_table.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 #include <map> 10 #include <map>
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 return reinterpret_cast<void*>(&table_key); 438 return reinterpret_cast<void*>(&table_key);
439 } 439 }
440 440
441 time_t GetEndTime(const base::Time& end) { 441 time_t GetEndTime(const base::Time& end) {
442 if (end.is_null() || end == base::Time::Max()) 442 if (end.is_null() || end == base::Time::Max())
443 return std::numeric_limits<time_t>::max(); 443 return std::numeric_limits<time_t>::max();
444 444
445 return end.ToTimeT(); 445 return end.ToTimeT();
446 } 446 }
447 447
448 std::string ServerStatusEnumToString(CreditCard::ServerStatus status) {
449 switch (status) {
450 case CreditCard::EXPIRED:
451 return "EXPIRED";
452
453 case CreditCard::OK:
454 return "OK";
455 }
456
457 NOTREACHED();
458 return "OK";
459 }
460
461 CreditCard::ServerStatus ServerStatusStringToEnum(const std::string& status) {
462 if (status == "EXPIRED")
463 return CreditCard::EXPIRED;
464
465 DCHECK_EQ("OK", status);
466 return CreditCard::OK;
467 }
468
448 } // namespace 469 } // namespace
449 470
450 // The maximum length allowed for form data. 471 // The maximum length allowed for form data.
451 const size_t AutofillTable::kMaxDataLength = 1024; 472 const size_t AutofillTable::kMaxDataLength = 1024;
452 473
453 AutofillTable::AutofillTable(const std::string& app_locale) 474 AutofillTable::AutofillTable(const std::string& app_locale)
454 : app_locale_(app_locale) { 475 : app_locale_(app_locale) {
455 } 476 }
456 477
457 AutofillTable::~AutofillTable() { 478 AutofillTable::~AutofillTable() {
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after
1222 : full_card_number); 1243 : full_card_number);
1223 std::string card_type = s.ColumnString(index++); 1244 std::string card_type = s.ColumnString(index++);
1224 if (record_type == CreditCard::MASKED_SERVER_CARD) { 1245 if (record_type == CreditCard::MASKED_SERVER_CARD) {
1225 // The type must be set after setting the number to override the 1246 // The type must be set after setting the number to override the
1226 // autodectected type. 1247 // autodectected type.
1227 card->SetTypeForMaskedCard(card_type.c_str()); 1248 card->SetTypeForMaskedCard(card_type.c_str());
1228 } else { 1249 } else {
1229 DCHECK_EQ(CreditCard::GetCreditCardType(full_card_number), card_type); 1250 DCHECK_EQ(CreditCard::GetCreditCardType(full_card_number), card_type);
1230 } 1251 }
1231 1252
1232 index++; // TODO(brettw) hook up status. For now, skip over it. 1253 card->SetServerStatus(ServerStatusStringToEnum(s.ColumnString(index++)));
1233 card->SetRawInfo(CREDIT_CARD_NAME, s.ColumnString16(index++)); 1254 card->SetRawInfo(CREDIT_CARD_NAME, s.ColumnString16(index++));
1234 card->SetRawInfo(CREDIT_CARD_EXP_MONTH, s.ColumnString16(index++)); 1255 card->SetRawInfo(CREDIT_CARD_EXP_MONTH, s.ColumnString16(index++));
1235 card->SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, s.ColumnString16(index++)); 1256 card->SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, s.ColumnString16(index++));
1236 credit_cards->push_back(card); 1257 credit_cards->push_back(card);
1237 } 1258 }
1238 1259
1239 static bool do_once = true; 1260 static bool do_once = true;
1240 // Fake out some masked cards. TODO(estade): remove this block of code. 1261 // Fake out some masked cards. TODO(estade): remove this block of code.
1241 if (do_once && 1262 if (do_once &&
1242 base::CommandLine::ForCurrentProcess()->HasSwitch( 1263 base::CommandLine::ForCurrentProcess()->HasSwitch(
(...skipping 17 matching lines...) Expand all
1260 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_NAME, 1281 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_NAME,
1261 ASCIIToUTF16("Elena Salazar")); 1282 ASCIIToUTF16("Elena Salazar"));
1262 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_EXP_MONTH, 1283 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_EXP_MONTH,
1263 ASCIIToUTF16("05")); 1284 ASCIIToUTF16("05"));
1264 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, 1285 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
1265 ASCIIToUTF16("2017")); 1286 ASCIIToUTF16("2017"));
1266 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_NUMBER, 1287 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_NUMBER,
1267 ASCIIToUTF16("9424")); 1288 ASCIIToUTF16("9424"));
1268 fake_masked_cards.back().SetTypeForMaskedCard(kDiscoverCard); 1289 fake_masked_cards.back().SetTypeForMaskedCard(kDiscoverCard);
1269 1290
1291 fake_masked_cards.push_back(
1292 CreditCard(CreditCard::MASKED_SERVER_CARD, "c789"));
1293 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_NAME,
1294 ASCIIToUTF16("Efren Salazar, Sr"));
1295 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_EXP_MONTH,
1296 ASCIIToUTF16("12"));
1297 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
1298 ASCIIToUTF16("2014"));
1299 fake_masked_cards.back().SetRawInfo(CREDIT_CARD_NUMBER,
1300 ASCIIToUTF16("1881"));
1301 fake_masked_cards.back().SetTypeForMaskedCard(kVisaCard);
1302 fake_masked_cards.back().SetServerStatus(CreditCard::EXPIRED);
1303
1270 SetServerCreditCards(fake_masked_cards); 1304 SetServerCreditCards(fake_masked_cards);
1271 return GetServerCreditCards(credit_cards); 1305 return GetServerCreditCards(credit_cards);
1272 } 1306 }
1273 1307
1274 return s.Succeeded(); 1308 return s.Succeeded();
1275 } 1309 }
1276 1310
1277 void AutofillTable::SetServerCreditCards( 1311 void AutofillTable::SetServerCreditCards(
1278 const std::vector<CreditCard>& credit_cards) { 1312 const std::vector<CreditCard>& credit_cards) {
1279 // Delete all old values. 1313 // Delete all old values.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1319 sql::Statement unmasked_insert(db_->GetUniqueStatement( 1353 sql::Statement unmasked_insert(db_->GetUniqueStatement(
1320 "INSERT INTO unmasked_credit_cards(" 1354 "INSERT INTO unmasked_credit_cards("
1321 "id," // 0 1355 "id," // 0
1322 "card_number_encrypted)" // 1 1356 "card_number_encrypted)" // 1
1323 "VALUES (?,?)")); 1357 "VALUES (?,?)"));
1324 for (const CreditCard& card : credit_cards) { 1358 for (const CreditCard& card : credit_cards) {
1325 DCHECK(card.record_type() != CreditCard::LOCAL_CARD); 1359 DCHECK(card.record_type() != CreditCard::LOCAL_CARD);
1326 1360
1327 masked_insert.BindString(0, card.server_id()); 1361 masked_insert.BindString(0, card.server_id());
1328 masked_insert.BindString(1, card.type()); 1362 masked_insert.BindString(1, card.type());
1329 masked_insert.BindNull(2); // Skip status which doesn't have storage yet. 1363 masked_insert.BindString(2,
1364 ServerStatusEnumToString(card.GetServerStatus()));
1330 masked_insert.BindString16(3, card.GetRawInfo(CREDIT_CARD_NAME)); 1365 masked_insert.BindString16(3, card.GetRawInfo(CREDIT_CARD_NAME));
1331 masked_insert.BindString16(4, card.LastFourDigits()); 1366 masked_insert.BindString16(4, card.LastFourDigits());
1332 masked_insert.BindString16(5, card.GetRawInfo(CREDIT_CARD_EXP_MONTH)); 1367 masked_insert.BindString16(5, card.GetRawInfo(CREDIT_CARD_EXP_MONTH));
1333 masked_insert.BindString16(6, 1368 masked_insert.BindString16(6,
1334 card.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); 1369 card.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
1335 1370
1336 masked_insert.Run(); 1371 masked_insert.Run();
1337 masked_insert.Reset(true); 1372 masked_insert.Reset(true);
1338 1373
1339 if (card.record_type() == CreditCard::FULL_SERVER_CARD) { 1374 if (card.record_type() == CreditCard::FULL_SERVER_CARD) {
(...skipping 1362 matching lines...) Expand 10 before | Expand all | Expand 10 after
2702 "ADD COLUMN full_name VARCHAR"); 2737 "ADD COLUMN full_name VARCHAR");
2703 } 2738 }
2704 2739
2705 bool AutofillTable::MigrateToVersion60AddServerCards() { 2740 bool AutofillTable::MigrateToVersion60AddServerCards() {
2706 return InitMaskedCreditCardsTable() && 2741 return InitMaskedCreditCardsTable() &&
2707 InitUnmaskedCreditCardsTable() && 2742 InitUnmaskedCreditCardsTable() &&
2708 InitServerAddressesTable(); 2743 InitServerAddressesTable();
2709 } 2744 }
2710 2745
2711 } // namespace autofill 2746 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698