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..42837718268f3238b31a1025c34ccf59010b0205 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_GT(current_version, kDeprecatedVersionNumber); |
for (int next_version = current_version + 1; |
next_version <= kCurrentVersionNumber; |