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

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: 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..f99f43713f82ebd670a4b3f073bcbff737a6167a 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,12 @@ 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.
+ DCHECK_LT(kDeprecatedVersionNumber, kCurrentVersionNumber);
Peter Kasting 2015/02/26 22:33:19 I don't know that this DCHECK is really needed.
Evan Stade 2015/02/26 22:37:19 This is copied from TopSitesDatabase. I am ambival
Scott Hess - ex-Googler 2015/02/27 06:49:38 The rationale was that if someone accidentally got
Peter Kasting 2015/02/27 09:15:25 I didn't even think of that. Yes, please use a st
Evan Stade 2015/02/28 00:13:41 Done.
+ 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,20 +142,14 @@ 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
+ if (current_version < kDeprecatedVersionNumber) {
Scott Hess - ex-Googler 2015/02/27 06:49:38 This case should not be possible anymore, right?
Peter Kasting 2015/02/27 09:15:25 I think not; even if the user manually copies old
Evan Stade 2015/02/28 00:13:41 Done.
+ // Deprecated versions 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;
}

Powered by Google App Engine
This is Rietveld 408576698