Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2836)

Unified Diff: chrome/browser/android/preferences/pref_service_bridge.cc

Issue 920583002: [Android] Migrate javascript settings to a content setting from a pref. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Second round of cleanup Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698