| 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 ce7cebe3908b9a7bfec8ce9444e0588a0c05a768..e24ceca1d026d3d75eec6904ebaf145ba0bf1ab4 100644
|
| --- a/components/autofill/core/browser/webdata/autofill_table.cc
|
| +++ b/components/autofill/core/browser/webdata/autofill_table.cc
|
| @@ -91,6 +91,7 @@ void BindAutofillProfileToStatement(const AutofillProfile& profile,
|
| s->BindString16(index++, GetInfo(profile, ADDRESS_HOME_COUNTRY));
|
| s->BindInt64(index++, Time::Now().ToTimeT());
|
| s->BindString(index++, profile.origin());
|
| + s->BindString(index++, profile.language_code());
|
| }
|
|
|
| scoped_ptr<AutofillProfile> AutofillProfileFromStatement(
|
| @@ -112,6 +113,7 @@ scoped_ptr<AutofillProfile> AutofillProfileFromStatement(
|
| // Intentionally skip column 9, which stores the profile's modification date.
|
| index++;
|
| profile->set_origin(s.ColumnString(index++));
|
| + profile->set_language_code(s.ColumnString(index++));
|
|
|
| return profile.Pass();
|
| }
|
| @@ -442,6 +444,9 @@ bool AutofillTable::MigrateToVersion(int version,
|
| case 55:
|
| *update_compatible_version = true;
|
| return MigrateToVersion55MergeAutofillDatesTable();
|
| + case 56:
|
| + *update_compatible_version = true;
|
| + return MigrateToVersion56AddProfileLanguageCodeForFormatting();
|
| }
|
| return true;
|
| }
|
| @@ -549,7 +554,7 @@ bool AutofillTable::RemoveFormElementsAddedBetween(
|
| // Precisely, compute the average amount of time between increments to the
|
| // count in the original range [date_created, date_last_used]:
|
| // avg_delta = (date_last_used_orig - date_created_orig) / (count - 1)
|
| - // The count can be exressed as
|
| + // The count can be expressed as
|
| // count = 1 + (date_last_used - date_created) / avg_delta
|
| // Hence, update the count to
|
| // count_new = 1 + (date_last_used_new - date_created_new) / avg_delta
|
| @@ -803,8 +808,9 @@ bool AutofillTable::AddAutofillProfile(const AutofillProfile& profile) {
|
| sql::Statement s(db_->GetUniqueStatement(
|
| "INSERT INTO autofill_profiles"
|
| "(guid, company_name, street_address, dependent_locality, city, state,"
|
| - " zipcode, sorting_code, country_code, date_modified, origin)"
|
| - "VALUES (?,?,?,?,?,?,?,?,?,?,?)"));
|
| + " zipcode, sorting_code, country_code, date_modified, origin,"
|
| + " language_code)"
|
| + "VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"));
|
| BindAutofillProfileToStatement(profile, &s);
|
|
|
| if (!s.Run())
|
| @@ -819,7 +825,8 @@ bool AutofillTable::GetAutofillProfile(const std::string& guid,
|
| DCHECK(profile);
|
| sql::Statement s(db_->GetUniqueStatement(
|
| "SELECT guid, company_name, street_address, dependent_locality, city,"
|
| - " state, zipcode, sorting_code, country_code, date_modified, origin "
|
| + " state, zipcode, sorting_code, country_code, date_modified, origin,"
|
| + " language_code "
|
| "FROM autofill_profiles "
|
| "WHERE guid=?"));
|
| s.BindString(0, guid);
|
| @@ -876,18 +883,17 @@ bool AutofillTable::UpdateAutofillProfile(const AutofillProfile& profile) {
|
|
|
| // Preserve appropriate modification dates by not updating unchanged profiles.
|
| scoped_ptr<AutofillProfile> old_profile(tmp_profile);
|
| - if (old_profile->Compare(profile) == 0 &&
|
| - old_profile->origin() == profile.origin())
|
| + if (*old_profile == profile)
|
| return true;
|
|
|
| sql::Statement s(db_->GetUniqueStatement(
|
| "UPDATE autofill_profiles "
|
| "SET guid=?, company_name=?, street_address=?, dependent_locality=?, "
|
| " city=?, state=?, zipcode=?, sorting_code=?, country_code=?, "
|
| - " date_modified=?, origin=? "
|
| + " date_modified=?, origin=?, language_code=? "
|
| "WHERE guid=?"));
|
| BindAutofillProfileToStatement(profile, &s);
|
| - s.BindString(11, profile.guid());
|
| + s.BindString(12, profile.guid());
|
|
|
| bool result = s.Run();
|
| DCHECK_GT(db_->GetLastChangeCount(), 0);
|
| @@ -1271,7 +1277,8 @@ bool AutofillTable::InitProfilesTable() {
|
| "sorting_code VARCHAR, "
|
| "country_code VARCHAR, "
|
| "date_modified INTEGER NOT NULL DEFAULT 0, "
|
| - "origin VARCHAR DEFAULT '')")) {
|
| + "origin VARCHAR DEFAULT '', "
|
| + "language_code VARCHAR)")) {
|
| NOTREACHED();
|
| return false;
|
| }
|
| @@ -2260,4 +2267,9 @@ bool AutofillTable::MigrateToVersion55MergeAutofillDatesTable() {
|
| return transaction.Commit();
|
| }
|
|
|
| +bool AutofillTable::MigrateToVersion56AddProfileLanguageCodeForFormatting() {
|
| + return db_->Execute("ALTER TABLE autofill_profiles "
|
| + "ADD COLUMN language_code VARCHAR");
|
| +}
|
| +
|
| } // namespace autofill
|
|
|