fix: JIT toggle (+ clean-up & refine our other toggles)

Signed-off-by: celenity <celenity@celenity.dev>
This commit is contained in:
celenity
2025-05-04 00:06:52 -04:00
parent daecc12f0c
commit 4239dd54e7
4 changed files with 45 additions and 73 deletions

View File

@@ -82,7 +82,7 @@ index 9a9487a930..7358b9ccd7 100644
// Apply fingerprinting protection overrides if the feature is enabled in Nimbus
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/AccessibilityFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/AccessibilityFragment.kt
index 1122dc0b0f..fa3ed491b0 100644
index 1122dc0b0f..456f387812 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/AccessibilityFragment.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/AccessibilityFragment.kt
@@ -23,6 +23,20 @@ class AccessibilityFragment : PreferenceFragmentCompat() {
@@ -93,12 +93,12 @@ index 1122dc0b0f..fa3ed491b0 100644
+ R.string.pref_key_accessibility_enabled,
+ )
+
+ accessibilityEnabledPreference.setOnPreferenceChangeListener<Boolean> { preference, shouldEnable ->
+ accessibilityEnabledPreference.setOnPreferenceChangeListener<Boolean> { preference, accessibilityEnabled ->
+ val settings = preference.context.settings()
+ val components = preference.context.components
+
+ settings.accessibilityEnabled = shouldEnable
+ components.core.engine.settings.accessibilityEnabled = shouldEnable
+ settings.accessibilityEnabled = accessibilityEnabled
+ components.core.engine.settings.accessibilityEnabled = accessibilityEnabled
+
+ true
+ }

View File

@@ -1,5 +1,5 @@
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SiteSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SiteSettingsFragment.kt
index 115535816e..3cf53db9cc 100644
index 115535816e..8581d589dc 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SiteSettingsFragment.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SiteSettingsFragment.kt
@@ -24,6 +24,10 @@ import org.mozilla.fenix.ext.settings
@@ -13,7 +13,7 @@ index 115535816e..3cf53db9cc 100644
/**
* Screen for managing settings related to site permissions and content defaults.
@@ -44,6 +48,78 @@ class SiteSettingsFragment : PreferenceFragmentCompat() {
@@ -44,6 +48,67 @@ class SiteSettingsFragment : PreferenceFragmentCompat() {
override fun onResume() {
super.onResume()
showToolbar(getString(R.string.preferences_site_settings))
@@ -22,12 +22,12 @@ index 115535816e..3cf53db9cc 100644
+ R.string.pref_key_javascript_enabled,
+ )
+
+ javascriptEnabledPreference.setOnPreferenceChangeListener { preference, newValue ->
+ javascriptEnabledPreference.setOnPreferenceChangeListener { preference, javascriptEnabled ->
+ val settings = preference.context.settings()
+ val components = preference.context.components
+
+ settings.javascriptEnabled = newValue as Boolean
+ components.core.engine.settings.javascriptEnabled = newValue
+ settings.javascriptEnabled = javascriptEnabled as Boolean
+ components.core.engine.settings.javascriptEnabled = javascriptEnabled
+
+ true
+ }
@@ -36,30 +36,19 @@ index 115535816e..3cf53db9cc 100644
+ R.string.pref_key_jit_enabled,
+ )
+
+ javascriptJitEnabledPreference.setOnPreferenceChangeListener { preference, newValue ->
+ javascriptJitEnabledPreference.setOnPreferenceChangeListener { preference, javascriptJitEnabled ->
+ val settings = preference.context.settings()
+ val components = preference.context.components
+
+ settings.javascriptJitBaselineEnabled = newValue as Boolean
+ components.core.engine.settings.javascriptJitBaselineEnabled = newValue
+ settings.javascriptJitEnabled = javascriptJitEnabled as Boolean
+
+ settings.javascriptJitBaselineWasmEnabled = newValue
+ components.core.engine.settings.javascriptJitBaselineWasmEnabled = newValue
+
+ settings.javascriptJitHintsEnabled = newValue
+ components.core.engine.settings.javascriptJitHintsEnabled = newValue
+
+ settings.javascriptJitIonEnabled = newValue
+ components.core.engine.settings.javascriptJitIonEnabled = newValue
+
+ settings.javascriptJitMainProcessEnabled = newValue
+ components.core.engine.settings.javascriptJitMainProcessEnabled = newValue
+
+ settings.javascriptJitNativeRegexpEnabled = newValue
+ components.core.engine.settings.javascriptJitNativeRegexpEnabled = newValue
+
+ settings.javascriptJitTrustedPrincipalsEnabled = newValue
+ components.core.engine.settings.javascriptJitTrustedPrincipalsEnabled = newValue
+ components.core.engine.settings.javascriptJitBaselineEnabled = javascriptJitEnabled
+ components.core.engine.settings.javascriptJitBaselineWasmEnabled = javascriptJitEnabled
+ components.core.engine.settings.javascriptJitHintsEnabled = javascriptJitEnabled
+ components.core.engine.settings.javascriptJitIonEnabled = javascriptJitEnabled
+ components.core.engine.settings.javascriptJitMainProcessEnabled = javascriptJitEnabled
+ components.core.engine.settings.javascriptJitNativeRegexpEnabled = javascriptJitEnabled
+ components.core.engine.settings.javascriptJitTrustedPrincipalsEnabled = javascriptJitEnabled
+
+ Toast.makeText(
+ context,
@@ -79,12 +68,12 @@ index 115535816e..3cf53db9cc 100644
+ R.string.pref_key_wasm_enabled,
+ )
+
+ wasmEnabledPreference.setOnPreferenceChangeListener { preference, newValue ->
+ wasmEnabledPreference.setOnPreferenceChangeListener { preference, wasmEnabled ->
+ val settings = preference.context.settings()
+ val components = preference.context.components
+
+ settings.wasmEnabled = newValue as Boolean
+ components.core.engine.settings.wasmEnabled = newValue
+ settings.wasmEnabled = wasmEnabled as Boolean
+ components.core.engine.settings.wasmEnabled = wasmEnabled
+
+ true
+ }
@@ -92,7 +81,7 @@ index 115535816e..3cf53db9cc 100644
setupPreferences()
}
@@ -113,4 +189,8 @@ class SiteSettingsFragment : PreferenceFragmentCompat() {
@@ -113,4 +178,8 @@ class SiteSettingsFragment : PreferenceFragmentCompat() {
)
}
}

View File

@@ -177,7 +177,7 @@ index db66cbe503..fc0414915f 100644
override var webFontsEnabled: Boolean = true,
override var automaticFontSizeAdjustment: Boolean = true,
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
index 9a9487a930..b03d803fef 100644
index 9a9487a930..1740c44da1 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
@@ -143,6 +143,15 @@ class Core(
@@ -185,22 +185,22 @@ index 9a9487a930..b03d803fef 100644
val engine: Engine by lazyMonitored {
val defaultSettings = DefaultSettings(
+ javascriptEnabled = context.settings().javascriptEnabled,
+ javascriptJitBaselineEnabled = context.settings().javascriptJitBaselineEnabled,
+ javascriptJitBaselineWasmEnabled = context.settings().javascriptJitBaselineWasmEnabled,
+ javascriptJitHintsEnabled = context.settings().javascriptJitHintsEnabled,
+ javascriptJitIonEnabled = context.settings().javascriptJitIonEnabled,
+ javascriptJitMainProcessEnabled = context.settings().javascriptJitMainProcessEnabled,
+ javascriptJitNativeRegexpEnabled = context.settings().javascriptJitNativeRegexpEnabled,
+ javascriptJitTrustedPrincipalsEnabled = context.settings().javascriptJitTrustedPrincipalsEnabled,
+ javascriptJitBaselineEnabled = context.settings().javascriptJitEnabled,
+ javascriptJitBaselineWasmEnabled = context.settings().javascriptJitEnabled,
+ javascriptJitHintsEnabled = context.settings().javascriptJitEnabled,
+ javascriptJitIonEnabled = context.settings().javascriptJitEnabled,
+ javascriptJitMainProcessEnabled = context.settings().javascriptJitEnabled,
+ javascriptJitNativeRegexpEnabled = context.settings().javascriptJitEnabled,
+ javascriptJitTrustedPrincipalsEnabled = context.settings().javascriptJitEnabled,
+ wasmEnabled = context.settings().wasmEnabled,
requestInterceptor = requestInterceptor,
remoteDebuggingEnabled = context.settings().isRemoteDebuggingEnabled &&
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M,
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
index 8e271198b0..511b113886 100644
index 8e271198b0..ba1cb2b8f5 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
@@ -1354,6 +1354,35 @@ class Settings(private val appContext: Context) : PreferencesHolder {
@@ -1354,6 +1354,21 @@ class Settings(private val appContext: Context) : PreferencesHolder {
}
}
@@ -214,25 +214,11 @@ index 8e271198b0..511b113886 100644
+ default = false,
+ )
+
+ var javascriptJitBaselineEnabled = javascriptJitEnabled
+
+ var javascriptJitBaselineWasmEnabled = javascriptJitEnabled
+
+ var javascriptJitHintsEnabled = javascriptJitEnabled
+
+ var javascriptJitIonEnabled = javascriptJitEnabled
+
+ var javascriptJitMainProcessEnabled = javascriptJitEnabled
+
+ var javascriptJitNativeRegexpEnabled = javascriptJitEnabled
+
+ var javascriptJitTrustedPrincipalsEnabled = javascriptJitEnabled
+
+ var wasmEnabled by booleanPreference(
+ appContext.getPreferenceKey(R.string.pref_key_wasm_enabled),
+ default = true,
+ )
+
+
var shouldShowVoiceSearch by booleanPreference(
appContext.getPreferenceKey(R.string.pref_key_show_voice_search),
default = true,

View File

@@ -84,7 +84,7 @@ index db66cbe503..8eb6fdec9d 100644
override var cookieBannerHandlingGlobalRules: Boolean = false,
override var cookieBannerHandlingGlobalRulesSubFrames: Boolean = false,
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
index 9a9487a930..f901801a96 100644
index 9a9487a930..ba7b61e96b 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
@@ -169,6 +169,8 @@ class Core(
@@ -92,12 +92,12 @@ index 9a9487a930..f901801a96 100644
cookieBannerHandlingMode = context.settings().getCookieBannerHandling(),
cookieBannerHandlingModePrivateBrowsing = context.settings().getCookieBannerHandlingPrivateMode(),
+ safeBrowsingEnabled = context.settings().safeBrowsingEnabled,
+ safeBrowsingPhishingEnabled = context.settings().safeBrowsingPhishingEnabled,
+ safeBrowsingPhishingEnabled = context.settings().safeBrowsingEnabled,
cookieBannerHandlingDetectOnlyMode = context.settings().shouldEnableCookieBannerDetectOnly,
cookieBannerHandlingGlobalRules = context.settings().shouldEnableCookieBannerGlobalRules,
cookieBannerHandlingGlobalRulesSubFrames = context.settings().shouldEnableCookieBannerGlobalRulesSubFrame,
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
index ad6678f234..743185b9ef 100644
index ad6678f234..425ec85218 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
@@ -563,6 +563,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
@@ -108,7 +108,7 @@ index ad6678f234..743185b9ef 100644
setupInstallAddonFromFilePreference(requireContext().settings())
setLinkSharingPreference()
setupAmoCollectionOverridePreference(requireContext().settings())
@@ -789,6 +790,37 @@ class SettingsFragment : PreferenceFragmentCompat() {
@@ -789,6 +790,36 @@ class SettingsFragment : PreferenceFragmentCompat() {
}
}
@@ -118,15 +118,14 @@ index ad6678f234..743185b9ef 100644
+ R.string.pref_key_safe_browsing_enabled,
+ )
+
+ safeBrowsingEnabledPreference.setOnPreferenceChangeListener<Boolean> { preference, shouldEnable ->
+ safeBrowsingEnabledPreference.setOnPreferenceChangeListener<Boolean> { preference, safeBrowsingEnabled ->
+ val settings = preference.context.settings()
+ val components = preference.context.components
+
+ settings.safeBrowsingEnabled = shouldEnable
+ components.core.engine.settings.safeBrowsingEnabled = shouldEnable
+
+ settings.safeBrowsingPhishingEnabled = shouldEnable
+ components.core.engine.settings.safeBrowsingPhishingEnabled = shouldEnable
+ settings.safeBrowsingEnabled = safeBrowsingEnabled
+
+ components.core.engine.settings.safeBrowsingEnabled = safeBrowsingEnabled
+ components.core.engine.settings.safeBrowsingPhishingEnabled = safeBrowsingEnabled
+
+ Toast.makeText(
+ context,
@@ -142,15 +141,15 @@ index ad6678f234..743185b9ef 100644
+ true
+ }
+ }
+
+
@VisibleForTesting
internal fun setupInstallAddonFromFilePreference(settings: Settings) {
with(requirePreference<Preference>(R.string.pref_key_install_local_addon)) {
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
index 8e271198b0..b6d118ef12 100644
index 8e271198b0..86fc40d5fd 100644
--- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
+++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
@@ -786,6 +786,13 @@ class Settings(private val appContext: Context) : PreferencesHolder {
@@ -786,6 +786,11 @@ class Settings(private val appContext: Context) : PreferencesHolder {
val queryParameterStrippingStripList: String
get() = queryParameterStrippingSection[QUERY_PARAMETER_STRIPPING_STRIP_LIST].orEmpty()
@@ -159,8 +158,6 @@ index 8e271198b0..b6d118ef12 100644
+ appContext.getPreferenceKey(R.string.pref_key_safe_browsing_enabled),
+ default = true,
+ )
+
+ var safeBrowsingPhishingEnabled = safeBrowsingEnabled
/**
* Declared as a function for performance purposes. This could be declared as a variable using