summaryrefslogtreecommitdiffstats
path: root/chrome/common/net/cookie_monster_sqlite.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/common/net/cookie_monster_sqlite.cc')
-rw-r--r--chrome/common/net/cookie_monster_sqlite.cc19
1 files changed, 15 insertions, 4 deletions
diff --git a/chrome/common/net/cookie_monster_sqlite.cc b/chrome/common/net/cookie_monster_sqlite.cc
index 8b9c430..e4e4a79 100644
--- a/chrome/common/net/cookie_monster_sqlite.cc
+++ b/chrome/common/net/cookie_monster_sqlite.cc
@@ -156,6 +156,7 @@ void SQLitePersistentCookieStore::Backend::Commit() {
NOTREACHED();
return;
}
+
SQLITE_UNIQUE_STATEMENT(del_smt, *cache_,
"DELETE FROM cookies WHERE creation_utc=?");
if (!del_smt.is_valid()) {
@@ -241,6 +242,7 @@ SQLitePersistentCookieStore::~SQLitePersistentCookieStore() {
// Version number of the database.
static const int kCurrentVersionNumber = 2;
+static const int kCompatibleVersionNumber = 2;
namespace {
@@ -338,15 +340,24 @@ bool SQLitePersistentCookieStore::Load(
bool SQLitePersistentCookieStore::EnsureDatabaseVersion(sqlite3* db) {
// Version check.
- if (!meta_table_.Init(std::string(), kCurrentVersionNumber, db))
+ if (!meta_table_.Init(std::string(), kCurrentVersionNumber,
+ kCompatibleVersionNumber, db))
return false;
- int compat_version = meta_table_.GetCompatibleVersionNumber();
- if (compat_version > kCurrentVersionNumber) {
- DLOG(WARNING) << "Cookie DB version from the future: " << compat_version;
+ if (meta_table_.GetCompatibleVersionNumber() > kCurrentVersionNumber) {
+ LOG(WARNING) << "Cookie database is too new.";
return false;
}
+ int cur_version = meta_table_.GetVersionNumber();
+
+ // Put future migration cases here.
+
+ // When the version is too old, we just try to continue anyway, there should
+ // not be a released product that makes a database too old for us to handle.
+ LOG_IF(WARNING, cur_version < kCurrentVersionNumber) <<
+ "Cookie database version " << cur_version << " is too old to handle.";
+
return true;
}