Chromium Code Reviews| Index: components/webdata/common/web_database.cc |
| diff --git a/components/webdata/common/web_database.cc b/components/webdata/common/web_database.cc |
| index 018663da75657c85126a5247476a69b9b3bcc3e4..f5b55464158cc0bad42d7ba918e007e9b745fe05 100644 |
| --- a/components/webdata/common/web_database.cc |
| +++ b/components/webdata/common/web_database.cc |
| @@ -16,6 +16,8 @@ |
| // static |
| const int WebDatabase::kCurrentVersionNumber = 62; |
| +const int WebDatabase::kDeprecatedVersionNumber = 51; |
| + |
| namespace { |
| const int kCompatibleVersionNumber = 61; |
| @@ -87,7 +89,13 @@ sql::InitStatus WebDatabase::Init(const base::FilePath& db_name) { |
| if (!db_.Open(db_name)) |
| return sql::INIT_FAILURE; |
| - // Initialize various tables |
| + // Clobber really old databases. |
| + static_assert(kDeprecatedVersionNumber < kCurrentVersionNumber, |
| + "Deprecation version must be less than current"); |
| + sql::MetaTable::RazeIfDeprecated(&db_, kDeprecatedVersionNumber); |
| + |
| + // Scope initialization in a transaction so we can't be partially |
| + // initialized. |
| sql::Transaction transaction(&db_); |
| if (!transaction.Begin()) |
| return sql::INIT_FAILURE; |
| @@ -135,22 +143,7 @@ sql::InitStatus WebDatabase::MigrateOldVersionsAsNeeded() { |
| if (current_version > meta_table_.GetVersionNumber()) |
| ChangeVersion(&meta_table_, current_version, false); |
| - if (current_version < 20) { |
| - // Versions 1 - 19 are unhandled. Version numbers greater than |
| - // kCurrentVersionNumber should have already been weeded out by the caller. |
| - // |
| - // When the version is too old, we return failure error code. The schema |
| - // is too out of date to migrate. |
| - // |
| - // There should not be a released product that makes a database too old to |
| - // migrate. If we do encounter such a legacy database, we will need a |
| - // better solution to handle it (i.e., pop up a dialog to tell the user, |
| - // erase all their prefs and start over, etc.). |
| - LOG(WARNING) << "Web database version " << current_version |
| - << " is too old to handle."; |
| - NOTREACHED(); |
| - return sql::INIT_FAILURE; |
| - } |
| + DCHECK_LT(current_version, kDeprecatedVersionNumber); |
|
Scott Hess - ex-Googler
2015/02/28 00:19:32
Probably meant DCHECK_GT(), or swap the parameters
Peter Kasting
2015/02/28 00:26:20
(Use the GT route rather than the param swap route
Evan Stade
2015/02/28 00:29:08
Done.
|
| for (int next_version = current_version + 1; |
| next_version <= kCurrentVersionNumber; |