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

Unified Diff: components/webdata/common/web_database.cc

Issue 962583003: Raze old WebDatabases. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: delete test Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
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;
« no previous file with comments | « components/webdata/common/web_database.h ('k') | components/webdata/common/web_database_migration_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698