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

Side by Side Diff: chrome/browser/webdata/web_database.cc

Issue 6673079: Reduce boxing and unboxing of AutofillFieldType (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Compile on Windows. Created 9 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/webdata/web_database.h" 5 #include "chrome/browser/webdata/web_database.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 return data.substr(0, kMaxDataLength); 278 return data.substr(0, kMaxDataLength);
279 279
280 return data; 280 return data;
281 } 281 }
282 282
283 void BindAutofillProfileToStatement(const AutofillProfile& profile, 283 void BindAutofillProfileToStatement(const AutofillProfile& profile,
284 sql::Statement* s) { 284 sql::Statement* s) {
285 DCHECK(guid::IsValidGUID(profile.guid())); 285 DCHECK(guid::IsValidGUID(profile.guid()));
286 s->BindString(0, profile.guid()); 286 s->BindString(0, profile.guid());
287 287
288 string16 text = profile.GetFieldText(AutofillType(COMPANY_NAME)); 288 string16 text = profile.GetFieldText(COMPANY_NAME);
289 s->BindString16(1, LimitDataSize(text)); 289 s->BindString16(1, LimitDataSize(text));
290 text = profile.GetFieldText(AutofillType(ADDRESS_HOME_LINE1)); 290 text = profile.GetFieldText(ADDRESS_HOME_LINE1);
291 s->BindString16(2, LimitDataSize(text)); 291 s->BindString16(2, LimitDataSize(text));
292 text = profile.GetFieldText(AutofillType(ADDRESS_HOME_LINE2)); 292 text = profile.GetFieldText(ADDRESS_HOME_LINE2);
293 s->BindString16(3, LimitDataSize(text)); 293 s->BindString16(3, LimitDataSize(text));
294 text = profile.GetFieldText(AutofillType(ADDRESS_HOME_CITY)); 294 text = profile.GetFieldText(ADDRESS_HOME_CITY);
295 s->BindString16(4, LimitDataSize(text)); 295 s->BindString16(4, LimitDataSize(text));
296 text = profile.GetFieldText(AutofillType(ADDRESS_HOME_STATE)); 296 text = profile.GetFieldText(ADDRESS_HOME_STATE);
297 s->BindString16(5, LimitDataSize(text)); 297 s->BindString16(5, LimitDataSize(text));
298 text = profile.GetFieldText(AutofillType(ADDRESS_HOME_ZIP)); 298 text = profile.GetFieldText(ADDRESS_HOME_ZIP);
299 s->BindString16(6, LimitDataSize(text)); 299 s->BindString16(6, LimitDataSize(text));
300 text = profile.GetFieldText(AutofillType(ADDRESS_HOME_COUNTRY)); 300 text = profile.GetFieldText(ADDRESS_HOME_COUNTRY);
301 s->BindString16(7, LimitDataSize(text)); 301 s->BindString16(7, LimitDataSize(text));
302 std::string country_code = profile.CountryCode(); 302 std::string country_code = profile.CountryCode();
303 s->BindString(8, country_code); 303 s->BindString(8, country_code);
304 s->BindInt64(9, Time::Now().ToTimeT()); 304 s->BindInt64(9, Time::Now().ToTimeT());
305 } 305 }
306 306
307 AutofillProfile* AutofillProfileFromStatement(const sql::Statement& s) { 307 AutofillProfile* AutofillProfileFromStatement(const sql::Statement& s) {
308 AutofillProfile* profile = new AutofillProfile; 308 AutofillProfile* profile = new AutofillProfile;
309 profile->set_guid(s.ColumnString(0)); 309 profile->set_guid(s.ColumnString(0));
310 DCHECK(guid::IsValidGUID(profile->guid())); 310 DCHECK(guid::IsValidGUID(profile->guid()));
311 311
312 profile->SetInfo(AutofillType(COMPANY_NAME), s.ColumnString16(1)); 312 profile->SetInfo(COMPANY_NAME, s.ColumnString16(1));
313 profile->SetInfo(AutofillType(ADDRESS_HOME_LINE1), s.ColumnString16(2)); 313 profile->SetInfo(ADDRESS_HOME_LINE1, s.ColumnString16(2));
314 profile->SetInfo(AutofillType(ADDRESS_HOME_LINE2), s.ColumnString16(3)); 314 profile->SetInfo(ADDRESS_HOME_LINE2, s.ColumnString16(3));
315 profile->SetInfo(AutofillType(ADDRESS_HOME_CITY), s.ColumnString16(4)); 315 profile->SetInfo(ADDRESS_HOME_CITY, s.ColumnString16(4));
316 profile->SetInfo(AutofillType(ADDRESS_HOME_STATE), s.ColumnString16(5)); 316 profile->SetInfo(ADDRESS_HOME_STATE, s.ColumnString16(5));
317 profile->SetInfo(AutofillType(ADDRESS_HOME_ZIP), s.ColumnString16(6)); 317 profile->SetInfo(ADDRESS_HOME_ZIP, s.ColumnString16(6));
318 // Intentionally skip column 7, which stores the localized country name. 318 // Intentionally skip column 7, which stores the localized country name.
319 profile->SetCountryCode(s.ColumnString(8)); 319 profile->SetCountryCode(s.ColumnString(8));
320 // Intentionally skip column 9, which stores the profile's modification date. 320 // Intentionally skip column 9, which stores the profile's modification date.
321 321
322 return profile; 322 return profile;
323 } 323 }
324 324
325 void AddAutofillProfileNameFromStatement(const sql::Statement& s, 325 void AddAutofillProfileNameFromStatement(const sql::Statement& s,
326 AutofillProfile* profile) { 326 AutofillProfile* profile) {
327 DCHECK_EQ(profile->guid(), s.ColumnString(0)); 327 DCHECK_EQ(profile->guid(), s.ColumnString(0));
328 DCHECK(guid::IsValidGUID(profile->guid())); 328 DCHECK(guid::IsValidGUID(profile->guid()));
329 329
330 profile->SetInfo(AutofillType(NAME_FIRST), s.ColumnString16(1)); 330 profile->SetInfo(NAME_FIRST, s.ColumnString16(1));
331 profile->SetInfo(AutofillType(NAME_MIDDLE), s.ColumnString16(2)); 331 profile->SetInfo(NAME_MIDDLE, s.ColumnString16(2));
332 profile->SetInfo(AutofillType(NAME_LAST), s.ColumnString16(3)); 332 profile->SetInfo(NAME_LAST, s.ColumnString16(3));
333 } 333 }
334 334
335 void AddAutofillProfileEmailFromStatement(const sql::Statement& s, 335 void AddAutofillProfileEmailFromStatement(const sql::Statement& s,
336 AutofillProfile* profile) { 336 AutofillProfile* profile) {
337 DCHECK_EQ(profile->guid(), s.ColumnString(0)); 337 DCHECK_EQ(profile->guid(), s.ColumnString(0));
338 DCHECK(guid::IsValidGUID(profile->guid())); 338 DCHECK(guid::IsValidGUID(profile->guid()));
339 339
340 profile->SetInfo(AutofillType(EMAIL_ADDRESS), s.ColumnString16(1)); 340 profile->SetInfo(EMAIL_ADDRESS, s.ColumnString16(1));
341 } 341 }
342 342
343 void AddAutofillProfilePhoneFromStatement(const sql::Statement& s, 343 void AddAutofillProfilePhoneFromStatement(const sql::Statement& s,
344 AutofillProfile* profile) { 344 AutofillProfile* profile) {
345 DCHECK_EQ(profile->guid(), s.ColumnString(0)); 345 DCHECK_EQ(profile->guid(), s.ColumnString(0));
346 DCHECK(guid::IsValidGUID(profile->guid())); 346 DCHECK(guid::IsValidGUID(profile->guid()));
347 DCHECK_EQ(kAutoFillPhoneNumber, s.ColumnInt(1)); 347 DCHECK_EQ(kAutoFillPhoneNumber, s.ColumnInt(1));
348 profile->SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), s.ColumnString16(2)); 348 profile->SetInfo(PHONE_HOME_WHOLE_NUMBER, s.ColumnString16(2));
349 } 349 }
350 350
351 void AddAutofillProfileFaxFromStatement(const sql::Statement& s, 351 void AddAutofillProfileFaxFromStatement(const sql::Statement& s,
352 AutofillProfile* profile) { 352 AutofillProfile* profile) {
353 DCHECK_EQ(profile->guid(), s.ColumnString(0)); 353 DCHECK_EQ(profile->guid(), s.ColumnString(0));
354 DCHECK(guid::IsValidGUID(profile->guid())); 354 DCHECK(guid::IsValidGUID(profile->guid()));
355 DCHECK_EQ(kAutoFillFaxNumber, s.ColumnInt(1)); 355 DCHECK_EQ(kAutoFillFaxNumber, s.ColumnInt(1));
356 profile->SetInfo(AutofillType(PHONE_FAX_WHOLE_NUMBER), s.ColumnString16(2)); 356 profile->SetInfo(PHONE_FAX_WHOLE_NUMBER, s.ColumnString16(2));
357 } 357 }
358 358
359 void BindCreditCardToStatement(const CreditCard& credit_card, 359 void BindCreditCardToStatement(const CreditCard& credit_card,
360 sql::Statement* s) { 360 sql::Statement* s) {
361 DCHECK(guid::IsValidGUID(credit_card.guid())); 361 DCHECK(guid::IsValidGUID(credit_card.guid()));
362 s->BindString(0, credit_card.guid()); 362 s->BindString(0, credit_card.guid());
363 363
364 string16 text = credit_card.GetFieldText(AutofillType(CREDIT_CARD_NAME)); 364 string16 text = credit_card.GetFieldText(CREDIT_CARD_NAME);
365 s->BindString16(1, LimitDataSize(text)); 365 s->BindString16(1, LimitDataSize(text));
366 text = credit_card.GetFieldText(AutofillType(CREDIT_CARD_EXP_MONTH)); 366 text = credit_card.GetFieldText(CREDIT_CARD_EXP_MONTH);
367 s->BindString16(2, LimitDataSize(text)); 367 s->BindString16(2, LimitDataSize(text));
368 text = credit_card.GetFieldText(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR)); 368 text = credit_card.GetFieldText(CREDIT_CARD_EXP_4_DIGIT_YEAR);
369 s->BindString16(3, LimitDataSize(text)); 369 s->BindString16(3, LimitDataSize(text));
370 text = credit_card.GetFieldText(AutofillType(CREDIT_CARD_NUMBER)); 370 text = credit_card.GetFieldText(CREDIT_CARD_NUMBER);
371 std::string encrypted_data; 371 std::string encrypted_data;
372 Encryptor::EncryptString16(text, &encrypted_data); 372 Encryptor::EncryptString16(text, &encrypted_data);
373 s->BindBlob(4, encrypted_data.data(), 373 s->BindBlob(4, encrypted_data.data(),
374 static_cast<int>(encrypted_data.length())); 374 static_cast<int>(encrypted_data.length()));
375 s->BindInt64(5, Time::Now().ToTimeT()); 375 s->BindInt64(5, Time::Now().ToTimeT());
376 } 376 }
377 377
378 CreditCard* CreditCardFromStatement(const sql::Statement& s) { 378 CreditCard* CreditCardFromStatement(const sql::Statement& s) {
379 CreditCard* credit_card = new CreditCard; 379 CreditCard* credit_card = new CreditCard;
380 380
381 credit_card->set_guid(s.ColumnString(0)); 381 credit_card->set_guid(s.ColumnString(0));
382 DCHECK(guid::IsValidGUID(credit_card->guid())); 382 DCHECK(guid::IsValidGUID(credit_card->guid()));
383 383
384 credit_card->SetInfo(AutofillType(CREDIT_CARD_NAME), s.ColumnString16(1)); 384 credit_card->SetInfo(CREDIT_CARD_NAME, s.ColumnString16(1));
385 credit_card->SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), 385 credit_card->SetInfo(CREDIT_CARD_EXP_MONTH,
386 s.ColumnString16(2)); 386 s.ColumnString16(2));
387 credit_card->SetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), 387 credit_card->SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
388 s.ColumnString16(3)); 388 s.ColumnString16(3));
389 int encrypted_number_len = s.ColumnByteLength(4); 389 int encrypted_number_len = s.ColumnByteLength(4);
390 string16 credit_card_number; 390 string16 credit_card_number;
391 if (encrypted_number_len) { 391 if (encrypted_number_len) {
392 std::string encrypted_number; 392 std::string encrypted_number;
393 encrypted_number.resize(encrypted_number_len); 393 encrypted_number.resize(encrypted_number_len);
394 memcpy(&encrypted_number[0], s.ColumnBlob(4), encrypted_number_len); 394 memcpy(&encrypted_number[0], s.ColumnBlob(4), encrypted_number_len);
395 Encryptor::DecryptString16(encrypted_number, &credit_card_number); 395 Encryptor::DecryptString16(encrypted_number, &credit_card_number);
396 } 396 }
397 credit_card->SetInfo(AutofillType(CREDIT_CARD_NUMBER), credit_card_number); 397 credit_card->SetInfo(CREDIT_CARD_NUMBER, credit_card_number);
398 // Intentionally skip column 5, which stores the modification date. 398 // Intentionally skip column 5, which stores the modification date.
399 399
400 return credit_card; 400 return credit_card;
401 } 401 }
402 402
403 bool AutofillProfileHasName(const AutofillProfile& profile) { 403 bool AutofillProfileHasName(const AutofillProfile& profile) {
404 return !profile.GetFieldText(AutofillType(NAME_FIRST)).empty() || 404 return !profile.GetFieldText(NAME_FIRST).empty() ||
405 !profile.GetFieldText(AutofillType(NAME_MIDDLE)).empty() || 405 !profile.GetFieldText(NAME_MIDDLE).empty() ||
406 !profile.GetFieldText(AutofillType(NAME_MIDDLE)).empty(); 406 !profile.GetFieldText(NAME_MIDDLE).empty();
407 } 407 }
408 408
409 bool AddAutofillProfileName(const std::string& guid, 409 bool AddAutofillProfileName(const std::string& guid,
410 const AutofillProfile& profile, 410 const AutofillProfile& profile,
411 sql::Connection* db) { 411 sql::Connection* db) {
412 if (!AutofillProfileHasName(profile)) 412 if (!AutofillProfileHasName(profile))
413 return true; 413 return true;
414 414
415 // Check for duplicate. 415 // Check for duplicate.
416 sql::Statement s_find(db->GetUniqueStatement( 416 sql::Statement s_find(db->GetUniqueStatement(
417 "SELECT guid, first_name, middle_name, last_name " 417 "SELECT guid, first_name, middle_name, last_name "
418 "FROM autofill_profile_names " 418 "FROM autofill_profile_names "
419 "WHERE guid=? AND first_name=? AND middle_name=? AND last_name=?")); 419 "WHERE guid=? AND first_name=? AND middle_name=? AND last_name=?"));
420 if (!s_find) { 420 if (!s_find) {
421 NOTREACHED(); 421 NOTREACHED();
422 return false; 422 return false;
423 } 423 }
424 s_find.BindString(0, guid); 424 s_find.BindString(0, guid);
425 s_find.BindString16(1, profile.GetFieldText(AutofillType(NAME_FIRST))); 425 s_find.BindString16(1, profile.GetFieldText(NAME_FIRST));
426 s_find.BindString16(2, profile.GetFieldText(AutofillType(NAME_MIDDLE))); 426 s_find.BindString16(2, profile.GetFieldText(NAME_MIDDLE));
427 s_find.BindString16(3, profile.GetFieldText(AutofillType(NAME_LAST))); 427 s_find.BindString16(3, profile.GetFieldText(NAME_LAST));
428 428
429 if (!s_find.Step()) { 429 if (!s_find.Step()) {
430 // Add the new name. 430 // Add the new name.
431 sql::Statement s(db->GetUniqueStatement( 431 sql::Statement s(db->GetUniqueStatement(
432 "INSERT INTO autofill_profile_names" 432 "INSERT INTO autofill_profile_names"
433 " (guid, first_name, middle_name, last_name) " 433 " (guid, first_name, middle_name, last_name) "
434 "VALUES (?,?,?,?)")); 434 "VALUES (?,?,?,?)"));
435 if (!s) { 435 if (!s) {
436 NOTREACHED(); 436 NOTREACHED();
437 return false; 437 return false;
438 } 438 }
439 s.BindString(0, guid); 439 s.BindString(0, guid);
440 s.BindString16(1, profile.GetFieldText(AutofillType(NAME_FIRST))); 440 s.BindString16(1, profile.GetFieldText(NAME_FIRST));
441 s.BindString16(2, profile.GetFieldText(AutofillType(NAME_MIDDLE))); 441 s.BindString16(2, profile.GetFieldText(NAME_MIDDLE));
442 s.BindString16(3, profile.GetFieldText(AutofillType(NAME_LAST))); 442 s.BindString16(3, profile.GetFieldText(NAME_LAST));
443 443
444 if (!s.Run()) { 444 if (!s.Run()) {
445 NOTREACHED(); 445 NOTREACHED();
446 return false; 446 return false;
447 } 447 }
448 } 448 }
449 return true; 449 return true;
450 } 450 }
451 451
452 bool AddAutofillProfileEmail(const std::string& guid, 452 bool AddAutofillProfileEmail(const std::string& guid,
453 const AutofillProfile& profile, 453 const AutofillProfile& profile,
454 sql::Connection* db) { 454 sql::Connection* db) {
455 if (profile.GetFieldText(AutofillType(EMAIL_ADDRESS)).empty()) 455 if (profile.GetFieldText(EMAIL_ADDRESS).empty())
456 return true; 456 return true;
457 457
458 // Check for duplicate. 458 // Check for duplicate.
459 sql::Statement s_find(db->GetUniqueStatement( 459 sql::Statement s_find(db->GetUniqueStatement(
460 "SELECT guid, email " 460 "SELECT guid, email "
461 "FROM autofill_profile_emails " 461 "FROM autofill_profile_emails "
462 "WHERE guid=? AND email=?")); 462 "WHERE guid=? AND email=?"));
463 if (!s_find) { 463 if (!s_find) {
464 NOTREACHED(); 464 NOTREACHED();
465 return false; 465 return false;
466 } 466 }
467 s_find.BindString(0, guid); 467 s_find.BindString(0, guid);
468 s_find.BindString16(1, profile.GetFieldText(AutofillType(EMAIL_ADDRESS))); 468 s_find.BindString16(1, profile.GetFieldText(EMAIL_ADDRESS));
469 469
470 if (!s_find.Step()) { 470 if (!s_find.Step()) {
471 sql::Statement s(db->GetUniqueStatement( 471 sql::Statement s(db->GetUniqueStatement(
472 "INSERT INTO autofill_profile_emails" 472 "INSERT INTO autofill_profile_emails"
473 " (guid, email) " 473 " (guid, email) "
474 "VALUES (?,?)")); 474 "VALUES (?,?)"));
475 if (!s) { 475 if (!s) {
476 NOTREACHED(); 476 NOTREACHED();
477 return false; 477 return false;
478 } 478 }
479 s.BindString(0, guid); 479 s.BindString(0, guid);
480 s.BindString16(1, profile.GetFieldText(AutofillType(EMAIL_ADDRESS))); 480 s.BindString16(1, profile.GetFieldText(EMAIL_ADDRESS));
481 481
482 if (!s.Run()) { 482 if (!s.Run()) {
483 NOTREACHED(); 483 NOTREACHED();
484 return false; 484 return false;
485 } 485 }
486 } 486 }
487 return true; 487 return true;
488 } 488 }
489 489
490 bool AddAutofillProfilePhone(const std::string& guid, 490 bool AddAutofillProfilePhone(const std::string& guid,
491 const AutofillProfile& profile, 491 const AutofillProfile& profile,
492 AutoFillPhoneType phone_type, 492 AutoFillPhoneType phone_type,
493 sql::Connection* db) { 493 sql::Connection* db) {
494 AutofillFieldType field_type; 494 AutofillFieldType field_type;
495 if (phone_type == kAutoFillPhoneNumber) { 495 if (phone_type == kAutoFillPhoneNumber) {
496 field_type = PHONE_HOME_WHOLE_NUMBER; 496 field_type = PHONE_HOME_WHOLE_NUMBER;
497 } else if (phone_type == kAutoFillFaxNumber) { 497 } else if (phone_type == kAutoFillFaxNumber) {
498 field_type = PHONE_FAX_WHOLE_NUMBER; 498 field_type = PHONE_FAX_WHOLE_NUMBER;
499 } else { 499 } else {
500 NOTREACHED(); 500 NOTREACHED();
501 return false; 501 return false;
502 } 502 }
503 503
504 if (profile.GetFieldText(AutofillType(field_type)).empty()) 504 if (profile.GetFieldText(field_type).empty())
505 return true; 505 return true;
506 506
507 // Check for duplicate. 507 // Check for duplicate.
508 sql::Statement s_find(db->GetUniqueStatement( 508 sql::Statement s_find(db->GetUniqueStatement(
509 "SELECT guid, type, number " 509 "SELECT guid, type, number "
510 "FROM autofill_profile_phones " 510 "FROM autofill_profile_phones "
511 "WHERE guid=? AND type=? AND number=?")); 511 "WHERE guid=? AND type=? AND number=?"));
512 if (!s_find) { 512 if (!s_find) {
513 NOTREACHED(); 513 NOTREACHED();
514 return false; 514 return false;
515 } 515 }
516 s_find.BindString(0, guid); 516 s_find.BindString(0, guid);
517 s_find.BindInt(1, phone_type); 517 s_find.BindInt(1, phone_type);
518 s_find.BindString16( 518 s_find.BindString16(
519 2, profile.GetFieldText(AutofillType(field_type))); 519 2, profile.GetFieldText(field_type));
520 520
521 if (!s_find.Step()) { 521 if (!s_find.Step()) {
522 sql::Statement s(db->GetUniqueStatement( 522 sql::Statement s(db->GetUniqueStatement(
523 "INSERT INTO autofill_profile_phones" 523 "INSERT INTO autofill_profile_phones"
524 " (guid, type, number) " 524 " (guid, type, number) "
525 "VALUES (?,?,?)")); 525 "VALUES (?,?,?)"));
526 if (!s) { 526 if (!s) {
527 NOTREACHED(); 527 NOTREACHED();
528 return sql::INIT_FAILURE; 528 return sql::INIT_FAILURE;
529 } 529 }
530 s.BindString(0, guid); 530 s.BindString(0, guid);
531 s.BindInt(1, phone_type); 531 s.BindInt(1, phone_type);
532 s.BindString16( 532 s.BindString16(
533 2, profile.GetFieldText(AutofillType(field_type))); 533 2, profile.GetFieldText(field_type));
534 534
535 if (!s.Run()) { 535 if (!s.Run()) {
536 NOTREACHED(); 536 NOTREACHED();
537 return false; 537 return false;
538 } 538 }
539 } 539 }
540 return true; 540 return true;
541 } 541 }
542 542
543 bool AddAutofillProfilePieces(const std::string& guid, 543 bool AddAutofillProfilePieces(const std::string& guid,
(...skipping 2344 matching lines...) Expand 10 before | Expand all | Expand 10 after
2888 sql::Statement s(db_.GetUniqueStatement( 2888 sql::Statement s(db_.GetUniqueStatement(
2889 "SELECT guid, first_name, middle_name, last_name, email, " 2889 "SELECT guid, first_name, middle_name, last_name, email, "
2890 "company_name, address_line_1, address_line_2, city, state, " 2890 "company_name, address_line_1, address_line_2, city, state, "
2891 "zipcode, country, phone, fax, date_modified " 2891 "zipcode, country, phone, fax, date_modified "
2892 "FROM autofill_profiles")); 2892 "FROM autofill_profiles"));
2893 while (s.Step()) { 2893 while (s.Step()) {
2894 AutofillProfile profile; 2894 AutofillProfile profile;
2895 profile.set_guid(s.ColumnString(0)); 2895 profile.set_guid(s.ColumnString(0));
2896 DCHECK(guid::IsValidGUID(profile.guid())); 2896 DCHECK(guid::IsValidGUID(profile.guid()));
2897 2897
2898 profile.SetInfo(AutofillType(NAME_FIRST), s.ColumnString16(1)); 2898 profile.SetInfo(NAME_FIRST, s.ColumnString16(1));
2899 profile.SetInfo(AutofillType(NAME_MIDDLE), s.ColumnString16(2)); 2899 profile.SetInfo(NAME_MIDDLE, s.ColumnString16(2));
2900 profile.SetInfo(AutofillType(NAME_LAST), s.ColumnString16(3)); 2900 profile.SetInfo(NAME_LAST, s.ColumnString16(3));
2901 profile.SetInfo(AutofillType(EMAIL_ADDRESS), s.ColumnString16(4)); 2901 profile.SetInfo(EMAIL_ADDRESS, s.ColumnString16(4));
2902 profile.SetInfo(AutofillType(COMPANY_NAME), s.ColumnString16(5)); 2902 profile.SetInfo(COMPANY_NAME, s.ColumnString16(5));
2903 profile.SetInfo(AutofillType(ADDRESS_HOME_LINE1), 2903 profile.SetInfo(ADDRESS_HOME_LINE1,
dhollowa 2011/03/16 17:07:11 nit: A number of these should fit on single line n
Ilya Sherman 2011/03/17 03:42:29 Done.
2904 s.ColumnString16(6)); 2904 s.ColumnString16(6));
2905 profile.SetInfo(AutofillType(ADDRESS_HOME_LINE2), 2905 profile.SetInfo(ADDRESS_HOME_LINE2,
2906 s.ColumnString16(7)); 2906 s.ColumnString16(7));
2907 profile.SetInfo(AutofillType(ADDRESS_HOME_CITY), 2907 profile.SetInfo(ADDRESS_HOME_CITY,
2908 s.ColumnString16(8)); 2908 s.ColumnString16(8));
2909 profile.SetInfo(AutofillType(ADDRESS_HOME_STATE), 2909 profile.SetInfo(ADDRESS_HOME_STATE,
2910 s.ColumnString16(9)); 2910 s.ColumnString16(9));
2911 profile.SetInfo(AutofillType(ADDRESS_HOME_ZIP), 2911 profile.SetInfo(ADDRESS_HOME_ZIP,
2912 s.ColumnString16(10)); 2912 s.ColumnString16(10));
2913 profile.SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), 2913 profile.SetInfo(ADDRESS_HOME_COUNTRY,
2914 s.ColumnString16(11)); 2914 s.ColumnString16(11));
2915 profile.SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), 2915 profile.SetInfo(PHONE_HOME_WHOLE_NUMBER,
2916 s.ColumnString16(12)); 2916 s.ColumnString16(12));
2917 profile.SetInfo(AutofillType(PHONE_FAX_WHOLE_NUMBER), 2917 profile.SetInfo(PHONE_FAX_WHOLE_NUMBER,
2918 s.ColumnString16(13)); 2918 s.ColumnString16(13));
2919 int64 date_modified = s.ColumnInt64(14); 2919 int64 date_modified = s.ColumnInt64(14);
2920 2920
2921 sql::Statement s_insert(db_.GetUniqueStatement( 2921 sql::Statement s_insert(db_.GetUniqueStatement(
2922 "INSERT INTO autofill_profiles_temp" 2922 "INSERT INTO autofill_profiles_temp"
2923 "(guid, company_name, address_line_1, address_line_2, city," 2923 "(guid, company_name, address_line_1, address_line_2, city,"
2924 " state, zipcode, country, date_modified)" 2924 " state, zipcode, country, date_modified)"
2925 "VALUES (?,?,?,?,?,?,?,?,?)")); 2925 "VALUES (?,?,?,?,?,?,?,?,?)"));
2926 if (!s) { 2926 if (!s) {
2927 LOG(WARNING) << "Unable to update web database to version 33."; 2927 LOG(WARNING) << "Unable to update web database to version 33.";
2928 NOTREACHED(); 2928 NOTREACHED();
2929 return sql::INIT_FAILURE; 2929 return sql::INIT_FAILURE;
2930 } 2930 }
2931 s_insert.BindString(0, profile.guid()); 2931 s_insert.BindString(0, profile.guid());
2932 s_insert.BindString16( 2932 s_insert.BindString16(
2933 1, profile.GetFieldText(AutofillType(COMPANY_NAME))); 2933 1, profile.GetFieldText(COMPANY_NAME));
2934 s_insert.BindString16( 2934 s_insert.BindString16(
2935 2, profile.GetFieldText(AutofillType(ADDRESS_HOME_LINE1))); 2935 2, profile.GetFieldText(ADDRESS_HOME_LINE1));
2936 s_insert.BindString16( 2936 s_insert.BindString16(
2937 3, profile.GetFieldText(AutofillType(ADDRESS_HOME_LINE2))); 2937 3, profile.GetFieldText(ADDRESS_HOME_LINE2));
2938 s_insert.BindString16( 2938 s_insert.BindString16(
2939 4, profile.GetFieldText(AutofillType(ADDRESS_HOME_CITY))); 2939 4, profile.GetFieldText(ADDRESS_HOME_CITY));
2940 s_insert.BindString16( 2940 s_insert.BindString16(
2941 5, profile.GetFieldText(AutofillType(ADDRESS_HOME_STATE))); 2941 5, profile.GetFieldText(ADDRESS_HOME_STATE));
2942 s_insert.BindString16( 2942 s_insert.BindString16(
2943 6, profile.GetFieldText(AutofillType(ADDRESS_HOME_ZIP))); 2943 6, profile.GetFieldText(ADDRESS_HOME_ZIP));
2944 s_insert.BindString16( 2944 s_insert.BindString16(
2945 7, profile.GetFieldText(AutofillType(ADDRESS_HOME_COUNTRY))); 2945 7, profile.GetFieldText(ADDRESS_HOME_COUNTRY));
2946 s_insert.BindInt64(8, date_modified); 2946 s_insert.BindInt64(8, date_modified);
2947 2947
2948 if (!s_insert.Run()) { 2948 if (!s_insert.Run()) {
2949 NOTREACHED(); 2949 NOTREACHED();
2950 return sql::INIT_FAILURE; 2950 return sql::INIT_FAILURE;
2951 } 2951 }
2952 2952
2953 // Add the other bits: names, emails, and phone/fax. 2953 // Add the other bits: names, emails, and phone/fax.
2954 if (!AddAutofillProfilePieces(profile.guid(), profile, &db_)) { 2954 if (!AddAutofillProfilePieces(profile.guid(), profile, &db_)) {
2955 NOTREACHED(); 2955 NOTREACHED();
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
3094 3094
3095 // Add successive versions here. Each should set the version number and 3095 // Add successive versions here. Each should set the version number and
3096 // compatible version number as appropriate, then fall through to the next 3096 // compatible version number as appropriate, then fall through to the next
3097 // case. 3097 // case.
3098 3098
3099 case kCurrentVersionNumber: 3099 case kCurrentVersionNumber:
3100 // No migration needed. 3100 // No migration needed.
3101 return sql::INIT_OK; 3101 return sql::INIT_OK;
3102 } 3102 }
3103 } 3103 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698