| 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 9e960cfa957c37a5428e0caaa721837b5f61be89..ea0475858041823285da2b5dd26d18ff64a40168 100644
|
| --- a/components/autofill/core/browser/webdata/autofill_table.cc
|
| +++ b/components/autofill/core/browser/webdata/autofill_table.cc
|
| @@ -469,6 +469,9 @@ bool AutofillTable::MigrateToVersion(int version,
|
| case 62:
|
| *update_compatible_version = false;
|
| return MigrateToVersion62AddUsageStatsForUnmaskedCards();
|
| + case 63:
|
| + *update_compatible_version = false;
|
| + return MigrateToVersion63AddServerRecipientName();
|
| }
|
| return true;
|
| }
|
| @@ -899,6 +902,7 @@ bool AutofillTable::GetAutofillServerProfiles(
|
| sql::Statement s(db_->GetUniqueStatement(
|
| "SELECT "
|
| "id,"
|
| + "recipient_name,"
|
| "company_name,"
|
| "street_address,"
|
| "address_1," // ADDRESS_HOME_STATE
|
| @@ -916,6 +920,7 @@ bool AutofillTable::GetAutofillServerProfiles(
|
| scoped_ptr<AutofillProfile> profile(new AutofillProfile(
|
| AutofillProfile::SERVER_PROFILE, s.ColumnString(index++)));
|
|
|
| + profile->SetRawInfo(NAME_FULL, s.ColumnString16(index++));
|
| profile->SetRawInfo(COMPANY_NAME, s.ColumnString16(index++));
|
| profile->SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, s.ColumnString16(index++));
|
| profile->SetRawInfo(ADDRESS_HOME_STATE, s.ColumnString16(index++));
|
| @@ -944,6 +949,7 @@ void AutofillTable::SetAutofillServerProfiles(
|
| sql::Statement insert(db_->GetUniqueStatement(
|
| "INSERT INTO server_addresses("
|
| "id,"
|
| + "recipient_name,"
|
| "company_name,"
|
| "street_address,"
|
| "address_1," // ADDRESS_HOME_STATE
|
| @@ -954,12 +960,13 @@ void AutofillTable::SetAutofillServerProfiles(
|
| "sorting_code," // ADDRESS_HOME_SORTING_CODE
|
| "country_code," // ADDRESS_HOME_COUNTRY
|
| "language_code) "
|
| - "VALUES (?,?,?,?,?,?,?,?,?,?,?)"));
|
| + "VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"));
|
| for (const auto& profile : profiles) {
|
| DCHECK(profile.record_type() == AutofillProfile::SERVER_PROFILE);
|
|
|
| int index = 0;
|
| insert.BindString(index++, profile.server_id());
|
| + insert.BindString16(index++, profile.GetRawInfo(NAME_FULL));
|
| insert.BindString16(index++, profile.GetRawInfo(COMPANY_NAME));
|
| insert.BindString16(index++,
|
| profile.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
|
| @@ -1671,6 +1678,8 @@ bool AutofillTable::InitUnmaskedCreditCardsTable() {
|
|
|
| bool AutofillTable::InitServerAddressesTable() {
|
| if (!db_->DoesTableExist("server_addresses")) {
|
| + // The space after language_code is necessary to match what sqlite does
|
| + // when it appends the column in migration.
|
| if (!db_->Execute("CREATE TABLE server_addresses ("
|
| "id VARCHAR,"
|
| "company_name VARCHAR,"
|
| @@ -1682,7 +1691,8 @@ bool AutofillTable::InitServerAddressesTable() {
|
| "postal_code VARCHAR,"
|
| "sorting_code VARCHAR,"
|
| "country_code VARCHAR,"
|
| - "language_code VARCHAR)")) {
|
| + "language_code VARCHAR, " // Space required.
|
| + "recipient_name VARCHAR)")) {
|
| NOTREACHED();
|
| return false;
|
| }
|
| @@ -1966,4 +1976,13 @@ bool AutofillTable::MigrateToVersion62AddUsageStatsForUnmaskedCards() {
|
| return transaction.Commit();
|
| }
|
|
|
| +bool AutofillTable::MigrateToVersion63AddServerRecipientName() {
|
| + if (!db_->DoesColumnExist("server_addresses", "recipient_name") &&
|
| + !db_->Execute("ALTER TABLE server_addresses ADD COLUMN "
|
| + "recipient_name VARCHAR")) {
|
| + return false;
|
| + }
|
| + return true;
|
| +}
|
| +
|
| } // namespace autofill
|
|
|