Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java |
| index c3005e17b81555db9ea8ccf8dd3c2f87c4c983e8..a27915fd1410469851afe261e8f48ba48cbbe7fb 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java |
| @@ -4,7 +4,11 @@ |
| package org.chromium.chrome.browser.preferences; |
| +import android.content.Context; |
| +import android.content.SharedPreferences; |
| +import android.preference.PreferenceManager; |
| import android.text.TextUtils; |
| +import android.util.Log; |
| import org.chromium.base.CalledByNative; |
| import org.chromium.base.ThreadUtils; |
| @@ -31,6 +35,9 @@ public final class PrefServiceBridge { |
| public static final int SUPERVISED_USER_FILTERING_WARN = 1; |
| public static final int SUPERVISED_USER_FILTERING_BLOCK = 2; |
| + private static final String MIGRATION_PREF_KEY = "PrefMigrationVersion"; |
| + private static final int MIGRATION_CURRENT_VERSION = 1; |
| + |
| private static String sProfilePath; |
| // Object to notify when "clear browsing data" completes. |
| @@ -143,6 +150,30 @@ public final class PrefServiceBridge { |
| } |
| /** |
| + * Migrates (synchronously) the preferences to the most recent version. |
| + */ |
| + public void migratePreferences(Context context) { |
| + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); |
| + int currentVersion = preferences.getInt(MIGRATION_PREF_KEY, 0); |
| + if (currentVersion > MIGRATION_CURRENT_VERSION) { |
| + Log.e(LOG_TAG, "Saved preferences version is newer than supported. Attempting to " |
| + + "run an older version of Chrome without clearing data is unsupported and " |
| + + "the results may be unpredictable."); |
| + } |
| + while (currentVersion < MIGRATION_CURRENT_VERSION) { |
| + switch (currentVersion) { |
| + case 0: |
| + nativeMigrateJavascriptPreference(); |
| + break; |
| + default: |
| + break; |
| + } |
| + currentVersion++; |
| + preferences.edit().putInt(MIGRATION_PREF_KEY, currentVersion).commit(); |
|
newt (away)
2015/02/12 00:48:59
Why not put this at the end of the loop? Migrating
Ted C
2015/02/12 01:01:10
Done...
I was very conflicted on the style, so I'
|
| + } |
| + } |
| + |
| + /** |
| * Returns the path to the user's profile directory via a callback. The callback may be |
| * called synchronously or asynchronously. |
| */ |
| @@ -746,6 +777,7 @@ public final class PrefServiceBridge { |
| private native void nativeResetTranslateDefaults(); |
| private native boolean nativeGetJavaScriptEnabled(); |
| private native void nativeSetJavaScriptEnabled(boolean enabled); |
| + private native void nativeMigrateJavascriptPreference(); |
| private native void nativeClearBrowsingData(boolean history, boolean cache, |
| boolean cookiesAndSiteData, boolean passwords, boolean formData); |
| private native void nativeSetAllowCookiesEnabled(boolean allow); |