mirror of
https://github.com/ironfox-oss/IronFox.git
synced 2026-06-11 09:44:46 -04:00
141 lines
6.4 KiB
Diff
141 lines
6.4 KiB
Diff
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..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
|
|
import org.mozilla.fenix.ext.showToolbar
|
|
import org.mozilla.fenix.settings.PhoneFeature
|
|
import org.mozilla.fenix.settings.requirePreference
|
|
+import android.os.Handler
|
|
+import android.os.Looper
|
|
+import android.widget.Toast
|
|
+import kotlin.system.exitProcess
|
|
|
|
/**
|
|
* Screen for managing settings related to site permissions and content defaults.
|
|
@@ -44,6 +48,67 @@ class SiteSettingsFragment : PreferenceFragmentCompat() {
|
|
override fun onResume() {
|
|
super.onResume()
|
|
showToolbar(getString(R.string.preferences_site_settings))
|
|
+
|
|
+ val javascriptEnabledPreference = requirePreference<SwitchPreference>(
|
|
+ R.string.pref_key_javascript_enabled,
|
|
+ )
|
|
+
|
|
+ javascriptEnabledPreference.setOnPreferenceChangeListener { preference, javascriptEnabled ->
|
|
+ val settings = preference.context.settings()
|
|
+ val components = preference.context.components
|
|
+
|
|
+ settings.javascriptEnabled = javascriptEnabled as Boolean
|
|
+ components.core.engine.settings.javascriptEnabled = javascriptEnabled
|
|
+
|
|
+ true
|
|
+ }
|
|
+
|
|
+ val javascriptJitEnabledPreference = requirePreference<SwitchPreference>(
|
|
+ R.string.pref_key_jit_enabled,
|
|
+ )
|
|
+
|
|
+ javascriptJitEnabledPreference.setOnPreferenceChangeListener { preference, javascriptJitEnabled ->
|
|
+ val settings = preference.context.settings()
|
|
+ val components = preference.context.components
|
|
+
|
|
+ settings.javascriptJitEnabled = javascriptJitEnabled as Boolean
|
|
+
|
|
+ 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,
|
|
+ getString(R.string.quit_application),
|
|
+ Toast.LENGTH_LONG,
|
|
+ ).show()
|
|
+ Handler(Looper.getMainLooper()).postDelayed(
|
|
+ {
|
|
+ exitProcess(0)
|
|
+ },
|
|
+ JIT_OVERRIDE_EXIT_DELAY,
|
|
+ )
|
|
+ true
|
|
+ }
|
|
+
|
|
+ val wasmEnabledPreference = requirePreference<SwitchPreference>(
|
|
+ R.string.pref_key_wasm_enabled,
|
|
+ )
|
|
+
|
|
+ wasmEnabledPreference.setOnPreferenceChangeListener { preference, wasmEnabled ->
|
|
+ val settings = preference.context.settings()
|
|
+ val components = preference.context.components
|
|
+
|
|
+ settings.wasmEnabled = wasmEnabled as Boolean
|
|
+ components.core.engine.settings.wasmEnabled = wasmEnabled
|
|
+
|
|
+ true
|
|
+ }
|
|
+
|
|
setupPreferences()
|
|
}
|
|
|
|
@@ -113,4 +178,8 @@ class SiteSettingsFragment : PreferenceFragmentCompat() {
|
|
)
|
|
}
|
|
}
|
|
+
|
|
+ companion object {
|
|
+ private const val JIT_OVERRIDE_EXIT_DELAY = 2000L
|
|
+ }
|
|
}
|
|
diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml
|
|
index dbb7ece65c..e5b56bda69 100644
|
|
--- a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml
|
|
+++ b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml
|
|
@@ -441,6 +441,10 @@
|
|
<string name="pref_key_app_cold_start_count" translatable="false">pref_key_app_cold_start_count</string>
|
|
<string name="pref_key_app_is_onboarding_set_as_default_displayed" translatable="false">pref_key_app_is_onboarding_set_as_default_displayed</string>
|
|
|
|
+ <!-- Content Settings -->
|
|
+ <string name="pref_key_javascript_enabled" translatable="false">pref_key_javascript_enabled</string>
|
|
+ <string name="pref_key_jit_enabled" translatable="false">pref_key_jit_enabled</string>
|
|
+ <string name="pref_key_wasm_enabled" translatable="false">pref_key_wasm_enabled</string>
|
|
<string name="pref_key_desktop_browsing" translatable="false">pref_key_desktop_browsing</string>
|
|
|
|
<!-- Crash reporting -->
|
|
diff --git a/mobile/android/fenix/app/src/main/res/xml/site_permissions_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/site_permissions_preferences.xml
|
|
index ef1dcb4e6e..25e429567d 100644
|
|
--- a/mobile/android/fenix/app/src/main/res/xml/site_permissions_preferences.xml
|
|
+++ b/mobile/android/fenix/app/src/main/res/xml/site_permissions_preferences.xml
|
|
@@ -25,6 +25,28 @@
|
|
android:title="@string/preference_feature_desktop_mode_default"
|
|
app:iconSpaceReserved="false" />
|
|
|
|
+ <SwitchPreference
|
|
+ android:icon="@drawable/mozac_ic_lock_24"
|
|
+ android:defaultValue="true"
|
|
+ android:key="@string/pref_key_javascript_enabled"
|
|
+ android:title="@string/preference_javascript_enabled"
|
|
+ app:iconSpaceReserved="false" />
|
|
+
|
|
+ <SwitchPreference
|
|
+ android:icon="@drawable/mozac_ic_lock_24"
|
|
+ android:defaultValue="false"
|
|
+ android:key="@string/pref_key_jit_enabled"
|
|
+ android:summary="@string/restart_required_summary"
|
|
+ android:title="@string/preference_jit_enabled"
|
|
+ app:iconSpaceReserved="false" />
|
|
+
|
|
+ <SwitchPreference
|
|
+ android:icon="@drawable/mozac_ic_lock_24"
|
|
+ android:defaultValue="true"
|
|
+ android:key="@string/pref_key_wasm_enabled"
|
|
+ android:title="@string/preference_wasm_enabled"
|
|
+ app:iconSpaceReserved="false" />
|
|
+
|
|
</androidx.preference.PreferenceCategory>
|
|
|
|
<androidx.preference.PreferenceCategory
|