Index: chrome/browser/android/preferences/pref_service_bridge.cc |
diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc |
index b0e8aecab6666a6c4c75c53ef503d7a894463d95..503815f61168b7777e535e8928935a6067c3d482 100644 |
--- a/chrome/browser/android/preferences/pref_service_bridge.cc |
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc |
@@ -413,20 +413,30 @@ static jboolean GetJavaScriptManaged(JNIEnv* env, jobject obj) { |
} |
static void SetJavaScriptEnabled(JNIEnv* env, jobject obj, jboolean enabled) { |
- GetPrefService()->SetBoolean(prefs::kWebKitJavascriptEnabled, enabled); |
+ HostContentSettingsMap* host_content_settings_map = |
+ GetOriginalProfile()->GetHostContentSettingsMap(); |
+ host_content_settings_map->SetDefaultContentSetting( |
+ CONTENT_SETTINGS_TYPE_JAVASCRIPT, |
+ enabled ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK); |
} |
static jboolean GetJavaScriptEnabled(JNIEnv* env, jobject obj) { |
- // The user pref for Javascript is stored in kWebKitJavascriptEnabled for |
- // historical reasons, but the content setting is where a possibly managed |
- // value will be enforced. |
- jboolean javascript_enabled = |
- GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); |
- if (!GetJavaScriptManaged(env, obj)) { |
- javascript_enabled &= GetPrefService()->GetBoolean( |
- prefs::kWebKitJavascriptEnabled); |
- } |
- return javascript_enabled; |
+ return GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); |
+} |
+ |
+static void MigrateJavascriptPreference(JNIEnv* env, jobject obj) { |
+ const PrefService::Preference* javascript_pref = |
+ GetPrefService()->FindPreference(prefs::kWebKitJavascriptEnabled); |
+ DCHECK(javascript_pref); |
+ |
+ if (!javascript_pref->HasUserSetting()) |
+ return; |
+ |
+ bool javascript_enabled = false; |
+ bool retval = javascript_pref->GetValue()->GetAsBoolean(&javascript_enabled); |
+ DCHECK(retval); |
+ SetJavaScriptEnabled(env, obj, javascript_enabled); |
+ GetPrefService()->ClearPref(prefs::kWebKitJavascriptEnabled); |
} |
static void SetPasswordEchoEnabled(JNIEnv* env, |