Fix a bug in the database upgrade process, and refactor slightly.
During upgrade from v9 -> v10 the database version was not being updated. Also remove conditionals based on what are effectively hardcoded truth values to simplfiy the logic greatly. Bug: 5560410 Change-Id: I31a01aa35a109a951d4e4c6d5b884bb666668b28
This commit is contained in:
@@ -327,15 +327,26 @@ public class WebViewDatabase {
|
||||
}
|
||||
|
||||
private static void upgradeDatabase() {
|
||||
upgradeDatabaseToV10();
|
||||
// Add future database upgrade functions here, one version at a
|
||||
// time.
|
||||
}
|
||||
|
||||
private static void upgradeDatabaseToV10() {
|
||||
int oldVersion = mDatabase.getVersion();
|
||||
|
||||
if (oldVersion >= 10) {
|
||||
// Nothing to do.
|
||||
return;
|
||||
}
|
||||
|
||||
if (oldVersion != 0) {
|
||||
Log.i(LOGTAG, "Upgrading database from version "
|
||||
+ oldVersion + " to "
|
||||
+ DATABASE_VERSION + ", which will destroy old data");
|
||||
}
|
||||
boolean justPasswords = 8 == oldVersion && 9 == DATABASE_VERSION;
|
||||
boolean justAuth = 9 == oldVersion && 10 == DATABASE_VERSION;
|
||||
if (justAuth) {
|
||||
|
||||
if (9 == oldVersion) {
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_HTTPAUTH_ID]);
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_HTTPAUTH_ID]
|
||||
@@ -345,58 +356,53 @@ public class WebViewDatabase {
|
||||
+ HTTPAUTH_PASSWORD_COL + " TEXT," + " UNIQUE ("
|
||||
+ HTTPAUTH_HOST_COL + ", " + HTTPAUTH_REALM_COL
|
||||
+ ") ON CONFLICT REPLACE);");
|
||||
mDatabase.setVersion(DATABASE_VERSION);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!justPasswords) {
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_COOKIES_ID]);
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS cache");
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_FORMURL_ID]);
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_FORMDATA_ID]);
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_HTTPAUTH_ID]);
|
||||
}
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_COOKIES_ID]);
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS cache");
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_FORMURL_ID]);
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_FORMDATA_ID]);
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_HTTPAUTH_ID]);
|
||||
mDatabase.execSQL("DROP TABLE IF EXISTS "
|
||||
+ mTableNames[TABLE_PASSWORD_ID]);
|
||||
|
||||
mDatabase.setVersion(DATABASE_VERSION);
|
||||
// cookies
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_COOKIES_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, "
|
||||
+ COOKIES_NAME_COL + " TEXT, " + COOKIES_VALUE_COL
|
||||
+ " TEXT, " + COOKIES_DOMAIN_COL + " TEXT, "
|
||||
+ COOKIES_PATH_COL + " TEXT, " + COOKIES_EXPIRES_COL
|
||||
+ " INTEGER, " + COOKIES_SECURE_COL + " INTEGER" + ");");
|
||||
mDatabase.execSQL("CREATE INDEX cookiesIndex ON "
|
||||
+ mTableNames[TABLE_COOKIES_ID] + " (path)");
|
||||
|
||||
if (!justPasswords) {
|
||||
// cookies
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_COOKIES_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, "
|
||||
+ COOKIES_NAME_COL + " TEXT, " + COOKIES_VALUE_COL
|
||||
+ " TEXT, " + COOKIES_DOMAIN_COL + " TEXT, "
|
||||
+ COOKIES_PATH_COL + " TEXT, " + COOKIES_EXPIRES_COL
|
||||
+ " INTEGER, " + COOKIES_SECURE_COL + " INTEGER" + ");");
|
||||
mDatabase.execSQL("CREATE INDEX cookiesIndex ON "
|
||||
+ mTableNames[TABLE_COOKIES_ID] + " (path)");
|
||||
// formurl
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_FORMURL_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, " + FORMURL_URL_COL
|
||||
+ " TEXT" + ");");
|
||||
|
||||
// formurl
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_FORMURL_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, " + FORMURL_URL_COL
|
||||
+ " TEXT" + ");");
|
||||
// formdata
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_FORMDATA_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, "
|
||||
+ FORMDATA_URLID_COL + " INTEGER, " + FORMDATA_NAME_COL
|
||||
+ " TEXT, " + FORMDATA_VALUE_COL + " TEXT," + " UNIQUE ("
|
||||
+ FORMDATA_URLID_COL + ", " + FORMDATA_NAME_COL + ", "
|
||||
+ FORMDATA_VALUE_COL + ") ON CONFLICT IGNORE);");
|
||||
|
||||
// formdata
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_FORMDATA_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, "
|
||||
+ FORMDATA_URLID_COL + " INTEGER, " + FORMDATA_NAME_COL
|
||||
+ " TEXT, " + FORMDATA_VALUE_COL + " TEXT," + " UNIQUE ("
|
||||
+ FORMDATA_URLID_COL + ", " + FORMDATA_NAME_COL + ", "
|
||||
+ FORMDATA_VALUE_COL + ") ON CONFLICT IGNORE);");
|
||||
|
||||
// httpauth
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_HTTPAUTH_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, "
|
||||
+ HTTPAUTH_HOST_COL + " TEXT, " + HTTPAUTH_REALM_COL
|
||||
+ " TEXT, " + HTTPAUTH_USERNAME_COL + " TEXT, "
|
||||
+ HTTPAUTH_PASSWORD_COL + " TEXT," + " UNIQUE ("
|
||||
+ HTTPAUTH_HOST_COL + ", " + HTTPAUTH_REALM_COL
|
||||
+ ") ON CONFLICT REPLACE);");
|
||||
}
|
||||
// httpauth
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_HTTPAUTH_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, "
|
||||
+ HTTPAUTH_HOST_COL + " TEXT, " + HTTPAUTH_REALM_COL
|
||||
+ " TEXT, " + HTTPAUTH_USERNAME_COL + " TEXT, "
|
||||
+ HTTPAUTH_PASSWORD_COL + " TEXT," + " UNIQUE ("
|
||||
+ HTTPAUTH_HOST_COL + ", " + HTTPAUTH_REALM_COL
|
||||
+ ") ON CONFLICT REPLACE);");
|
||||
// passwords
|
||||
mDatabase.execSQL("CREATE TABLE " + mTableNames[TABLE_PASSWORD_ID]
|
||||
+ " (" + ID_COL + " INTEGER PRIMARY KEY, "
|
||||
@@ -404,6 +410,8 @@ public class WebViewDatabase {
|
||||
+ " TEXT, " + PASSWORD_PASSWORD_COL + " TEXT," + " UNIQUE ("
|
||||
+ PASSWORD_HOST_COL + ", " + PASSWORD_USERNAME_COL
|
||||
+ ") ON CONFLICT REPLACE);");
|
||||
|
||||
mDatabase.setVersion(DATABASE_VERSION);
|
||||
}
|
||||
|
||||
private static void upgradeCacheDatabase() {
|
||||
@@ -411,7 +419,7 @@ public class WebViewDatabase {
|
||||
if (oldVersion != 0) {
|
||||
Log.i(LOGTAG, "Upgrading cache database from version "
|
||||
+ oldVersion + " to "
|
||||
+ DATABASE_VERSION + ", which will destroy all old data");
|
||||
+ CACHE_DATABASE_VERSION + ", which will destroy all old data");
|
||||
}
|
||||
mCacheDatabase.execSQL("DROP TABLE IF EXISTS cache");
|
||||
mCacheDatabase.setVersion(CACHE_DATABASE_VERSION);
|
||||
|
||||
Reference in New Issue
Block a user