Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.preferences; | 5 package org.chromium.chrome.browser.preferences; |
| 6 | 6 |
| 7 import android.content.Context; | |
| 8 import android.content.SharedPreferences; | |
| 9 import android.preference.PreferenceManager; | |
| 7 import android.text.TextUtils; | 10 import android.text.TextUtils; |
| 11 import android.util.Log; | |
| 8 | 12 |
| 9 import org.chromium.base.CalledByNative; | 13 import org.chromium.base.CalledByNative; |
| 10 import org.chromium.base.ThreadUtils; | 14 import org.chromium.base.ThreadUtils; |
| 11 import org.chromium.chrome.browser.search_engines.TemplateUrlService; | 15 import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
| 12 | 16 |
| 13 import java.util.ArrayList; | 17 import java.util.ArrayList; |
| 14 import java.util.List; | 18 import java.util.List; |
| 15 | 19 |
| 16 /** | 20 /** |
| 17 * PrefServiceBridge is a singleton which provides access to some native prefere nces. Ideally | 21 * PrefServiceBridge is a singleton which provides access to some native prefere nces. Ideally |
| 18 * preferences should be grouped with their relevant functionality but this is a grab-bag for other | 22 * preferences should be grouped with their relevant functionality but this is a grab-bag for other |
| 19 * preferences. | 23 * preferences. |
| 20 */ | 24 */ |
| 21 public final class PrefServiceBridge { | 25 public final class PrefServiceBridge { |
| 22 | 26 |
| 23 // Does not need sync with native; used for the popup settings check | 27 // Does not need sync with native; used for the popup settings check |
| 24 public static final String EXCEPTION_SETTING_ALLOW = "allow"; | 28 public static final String EXCEPTION_SETTING_ALLOW = "allow"; |
| 25 public static final String EXCEPTION_SETTING_BLOCK = "block"; | 29 public static final String EXCEPTION_SETTING_BLOCK = "block"; |
| 26 public static final String EXCEPTION_SETTING_DEFAULT = "default"; | 30 public static final String EXCEPTION_SETTING_DEFAULT = "default"; |
| 27 | 31 |
| 28 // These values must match the native enum values in | 32 // These values must match the native enum values in |
| 29 // SupervisedUserURLFilter::FilteringBehavior | 33 // SupervisedUserURLFilter::FilteringBehavior |
| 30 public static final int SUPERVISED_USER_FILTERING_ALLOW = 0; | 34 public static final int SUPERVISED_USER_FILTERING_ALLOW = 0; |
| 31 public static final int SUPERVISED_USER_FILTERING_WARN = 1; | 35 public static final int SUPERVISED_USER_FILTERING_WARN = 1; |
| 32 public static final int SUPERVISED_USER_FILTERING_BLOCK = 2; | 36 public static final int SUPERVISED_USER_FILTERING_BLOCK = 2; |
| 33 | 37 |
| 38 private static final String MIGRATION_PREF_KEY = "PrefMigrationVersion"; | |
| 39 private static final int MIGRATION_CURRENT_VERSION = 1; | |
| 40 | |
| 34 private static String sProfilePath; | 41 private static String sProfilePath; |
| 35 | 42 |
| 36 // Object to notify when "clear browsing data" completes. | 43 // Object to notify when "clear browsing data" completes. |
| 37 private OnClearBrowsingDataListener mClearBrowsingDataListener; | 44 private OnClearBrowsingDataListener mClearBrowsingDataListener; |
| 38 private static final String LOG_TAG = "PrefServiceBridge"; | 45 private static final String LOG_TAG = "PrefServiceBridge"; |
| 39 | 46 |
| 40 // Constants related to the Contextual Search preference. | 47 // Constants related to the Contextual Search preference. |
| 41 private static final String CONTEXTUAL_SEARCH_DISABLED = "false"; | 48 private static final String CONTEXTUAL_SEARCH_DISABLED = "false"; |
| 42 private static final String CONTEXTUAL_SEARCH_ENABLED = "true"; | 49 private static final String CONTEXTUAL_SEARCH_ENABLED = "true"; |
| 43 | 50 |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 136 } | 143 } |
| 137 | 144 |
| 138 /** | 145 /** |
| 139 * @return Whether the preferences have been initialized. | 146 * @return Whether the preferences have been initialized. |
| 140 */ | 147 */ |
| 141 public static boolean isInitialized() { | 148 public static boolean isInitialized() { |
| 142 return sInstance != null; | 149 return sInstance != null; |
| 143 } | 150 } |
| 144 | 151 |
| 145 /** | 152 /** |
| 153 * Migrates (synchronously) the preferences to the most recent version. | |
| 154 */ | |
| 155 public void migratePreferences(Context context) { | |
| 156 SharedPreferences preferences = PreferenceManager.getDefaultSharedPrefer ences(context); | |
| 157 int currentVersion = preferences.getInt(MIGRATION_PREF_KEY, 0); | |
| 158 if (currentVersion > MIGRATION_CURRENT_VERSION) { | |
| 159 Log.e(LOG_TAG, "Saved preferences version is newer than supported. Attempting to " | |
| 160 + "run an older version of Chrome without clearing data is u nsupported and " | |
| 161 + "the results may be unpredictable."); | |
| 162 } | |
| 163 if (currentVersion == MIGRATION_CURRENT_VERSION) return; | |
|
newt (away)
2015/02/12 01:25:02
nit: I'd put this if check first, since it's the c
Ted C
2015/02/12 17:18:19
Done.
| |
| 164 | |
| 165 if (currentVersion <= 0) { | |
| 166 nativeMigrateJavascriptPreference(); | |
| 167 } | |
| 168 preferences.edit().putInt(MIGRATION_PREF_KEY, MIGRATION_CURRENT_VERSION) .commit(); | |
| 169 } | |
| 170 | |
| 171 /** | |
| 146 * Returns the path to the user's profile directory via a callback. The call back may be | 172 * Returns the path to the user's profile directory via a callback. The call back may be |
| 147 * called synchronously or asynchronously. | 173 * called synchronously or asynchronously. |
| 148 */ | 174 */ |
| 149 public void getProfilePath(ProfilePathCallback callback) { | 175 public void getProfilePath(ProfilePathCallback callback) { |
| 150 if (!TextUtils.isEmpty(sProfilePath)) { | 176 if (!TextUtils.isEmpty(sProfilePath)) { |
| 151 callback.onGotProfilePath(sProfilePath); | 177 callback.onGotProfilePath(sProfilePath); |
| 152 } else { | 178 } else { |
| 153 nativeGetProfilePath(callback); | 179 nativeGetProfilePath(callback); |
| 154 } | 180 } |
| 155 } | 181 } |
| (...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 739 private native boolean nativeGetCrashReportManaged(); | 765 private native boolean nativeGetCrashReportManaged(); |
| 740 private native boolean nativeGetIncognitoModeEnabled(); | 766 private native boolean nativeGetIncognitoModeEnabled(); |
| 741 private native boolean nativeGetIncognitoModeManaged(); | 767 private native boolean nativeGetIncognitoModeManaged(); |
| 742 private native boolean nativeGetPrintingEnabled(); | 768 private native boolean nativeGetPrintingEnabled(); |
| 743 private native boolean nativeGetPrintingManaged(); | 769 private native boolean nativeGetPrintingManaged(); |
| 744 private native boolean nativeGetForceSafeSearch(); | 770 private native boolean nativeGetForceSafeSearch(); |
| 745 private native void nativeSetTranslateEnabled(boolean enabled); | 771 private native void nativeSetTranslateEnabled(boolean enabled); |
| 746 private native void nativeResetTranslateDefaults(); | 772 private native void nativeResetTranslateDefaults(); |
| 747 private native boolean nativeGetJavaScriptEnabled(); | 773 private native boolean nativeGetJavaScriptEnabled(); |
| 748 private native void nativeSetJavaScriptEnabled(boolean enabled); | 774 private native void nativeSetJavaScriptEnabled(boolean enabled); |
| 775 private native void nativeMigrateJavascriptPreference(); | |
| 749 private native void nativeClearBrowsingData(boolean history, boolean cache, | 776 private native void nativeClearBrowsingData(boolean history, boolean cache, |
| 750 boolean cookiesAndSiteData, boolean passwords, boolean formData); | 777 boolean cookiesAndSiteData, boolean passwords, boolean formData); |
| 751 private native void nativeSetAllowCookiesEnabled(boolean allow); | 778 private native void nativeSetAllowCookiesEnabled(boolean allow); |
| 752 private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled); | 779 private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled); |
| 753 private native void nativeSetDoNotTrackEnabled(boolean enabled); | 780 private native void nativeSetDoNotTrackEnabled(boolean enabled); |
| 754 private native void nativeSetRememberPasswordsEnabled(boolean allow); | 781 private native void nativeSetRememberPasswordsEnabled(boolean allow); |
| 755 private native void nativeSetProtectedMediaIdentifierEnabled(boolean enabled ); | 782 private native void nativeSetProtectedMediaIdentifierEnabled(boolean enabled ); |
| 756 private native boolean nativeGetAllowLocationEnabled(); | 783 private native boolean nativeGetAllowLocationEnabled(); |
| 757 private native boolean nativeGetPushNotificationsEnabled(); | 784 private native boolean nativeGetPushNotificationsEnabled(); |
| 758 private native void nativeSetAllowLocationEnabled(boolean allow); | 785 private native void nativeSetAllowLocationEnabled(boolean allow); |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 789 private native void nativeResetAcceptLanguages(String defaultLocale); | 816 private native void nativeResetAcceptLanguages(String defaultLocale); |
| 790 private native String nativeGetSyncLastAccountName(); | 817 private native String nativeGetSyncLastAccountName(); |
| 791 private native String nativeGetSupervisedUserCustodianName(); | 818 private native String nativeGetSupervisedUserCustodianName(); |
| 792 private native String nativeGetSupervisedUserCustodianEmail(); | 819 private native String nativeGetSupervisedUserCustodianEmail(); |
| 793 private native String nativeGetSupervisedUserCustodianProfileImageURL(); | 820 private native String nativeGetSupervisedUserCustodianProfileImageURL(); |
| 794 private native int nativeGetDefaultSupervisedUserFilteringBehavior(); | 821 private native int nativeGetDefaultSupervisedUserFilteringBehavior(); |
| 795 private native String nativeGetSupervisedUserSecondCustodianName(); | 822 private native String nativeGetSupervisedUserSecondCustodianName(); |
| 796 private native String nativeGetSupervisedUserSecondCustodianEmail(); | 823 private native String nativeGetSupervisedUserSecondCustodianEmail(); |
| 797 private native String nativeGetSupervisedUserSecondCustodianProfileImageURL( ); | 824 private native String nativeGetSupervisedUserSecondCustodianProfileImageURL( ); |
| 798 } | 825 } |
| OLD | NEW |