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

Side by Side 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: Address newt@'s comments 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 unified diff | Download patch
OLDNEW
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 #include "chrome/browser/android/preferences/pref_service_bridge.h" 5 #include "chrome/browser/android/preferences/pref_service_bridge.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/build_info.h" 9 #include "base/android/build_info.h"
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 scoped_ptr<translate::TranslatePrefs> translate_prefs = 406 scoped_ptr<translate::TranslatePrefs> translate_prefs =
407 ChromeTranslateClient::CreateTranslatePrefs(GetPrefService()); 407 ChromeTranslateClient::CreateTranslatePrefs(GetPrefService());
408 translate_prefs->ResetToDefaults(); 408 translate_prefs->ResetToDefaults();
409 } 409 }
410 410
411 static jboolean GetJavaScriptManaged(JNIEnv* env, jobject obj) { 411 static jboolean GetJavaScriptManaged(JNIEnv* env, jobject obj) {
412 return IsContentSettingManaged(CONTENT_SETTINGS_TYPE_JAVASCRIPT); 412 return IsContentSettingManaged(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
413 } 413 }
414 414
415 static void SetJavaScriptEnabled(JNIEnv* env, jobject obj, jboolean enabled) { 415 static void SetJavaScriptEnabled(JNIEnv* env, jobject obj, jboolean enabled) {
416 GetPrefService()->SetBoolean(prefs::kWebKitJavascriptEnabled, enabled); 416 HostContentSettingsMap* host_content_settings_map =
417 GetOriginalProfile()->GetHostContentSettingsMap();
418 host_content_settings_map->SetDefaultContentSetting(
419 CONTENT_SETTINGS_TYPE_JAVASCRIPT,
420 enabled ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK);
417 } 421 }
418 422
419 static jboolean GetJavaScriptEnabled(JNIEnv* env, jobject obj) { 423 static jboolean GetJavaScriptEnabled(JNIEnv* env, jobject obj) {
420 // The user pref for Javascript is stored in kWebKitJavascriptEnabled for 424 return GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
421 // historical reasons, but the content setting is where a possibly managed 425 }
422 // value will be enforced. 426
423 jboolean javascript_enabled = 427 static void MigrateJavascriptPreference(JNIEnv* env, jobject obj) {
424 GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); 428 const PrefService::Preference* javascript_pref =
425 if (!GetJavaScriptManaged(env, obj)) { 429 GetPrefService()->FindPreference(prefs::kWebKitJavascriptEnabled);
426 javascript_enabled &= GetPrefService()->GetBoolean( 430 DCHECK(javascript_pref);
427 prefs::kWebKitJavascriptEnabled); 431
428 } 432 if (!javascript_pref->HasUserSetting())
429 return javascript_enabled; 433 return;
434
435 bool javascript_enabled = false;
436 bool retval = javascript_pref->GetValue()->GetAsBoolean(&javascript_enabled);
newt (away) 2015/02/12 01:25:02 Leftover debugging code?
Ted C 2015/02/12 17:18:20 Actually no, the return value ensures that the pre
437 DCHECK(retval);
438 SetJavaScriptEnabled(env, obj, javascript_enabled);
439 GetPrefService()->ClearPref(prefs::kWebKitJavascriptEnabled);
430 } 440 }
431 441
432 static void SetPasswordEchoEnabled(JNIEnv* env, 442 static void SetPasswordEchoEnabled(JNIEnv* env,
433 jobject obj, 443 jobject obj,
434 jboolean passwordEchoEnabled) { 444 jboolean passwordEchoEnabled) {
435 GetPrefService()->SetBoolean(prefs::kWebKitPasswordEchoEnabled, 445 GetPrefService()->SetBoolean(prefs::kWebKitPasswordEchoEnabled,
436 passwordEchoEnabled); 446 passwordEchoEnabled);
437 } 447 }
438 448
439 static jboolean GetAllowPopupsEnabled(JNIEnv* env, jobject obj) { 449 static jboolean GetAllowPopupsEnabled(JNIEnv* env, jobject obj) {
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 jobject obj) { 708 jobject obj) {
699 return ConvertUTF8ToJavaString( 709 return ConvertUTF8ToJavaString(
700 env, 710 env,
701 GetPrefService()->GetString( 711 GetPrefService()->GetString(
702 prefs::kSupervisedUserSecondCustodianProfileImageURL)).Release(); 712 prefs::kSupervisedUserSecondCustodianProfileImageURL)).Release();
703 } 713 }
704 714
705 bool RegisterPrefServiceBridge(JNIEnv* env) { 715 bool RegisterPrefServiceBridge(JNIEnv* env) {
706 return RegisterNativesImpl(env); 716 return RegisterNativesImpl(env);
707 } 717 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698