Bug 1841361 - Allow advance user to enable Gecko logs

(cherry picked from commit c712c70d42ab1c0c9e89e830088760414b2e5ca3)
fenix/115.2.0
Arturo Mejia 11 months ago committed by mergify[bot]
parent 890ed76d96
commit 8788eeb188

@ -56,7 +56,7 @@ object GeckoProvider {
.crashHandler(CrashHandlerService::class.java)
.telemetryDelegate(GeckoAdapter())
.contentBlocking(policy.toContentBlockingSetting())
.debugLogging(Config.channel.isDebug)
.debugLogging(Config.channel.isDebug || context.components.settings.enableGeckoLogs)
.aboutConfigEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug)
.build()

@ -489,6 +489,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
}
setupCookieBannerPreference()
setupAmoCollectionOverridePreference(requireContext().settings())
setupGeckoLogsPreference(requireContext().settings())
setupAllowDomesticChinaFxaServerPreference()
setupHttpsOnlyPreferences()
setupNotificationPreference()
@ -561,6 +562,32 @@ class SettingsFragment : PreferenceFragmentCompat() {
}
}
@VisibleForTesting
internal fun setupGeckoLogsPreference(settings: Settings) {
val preferenceEnabledGeckoLogs =
findPreference<Preference>(getPreferenceKey(R.string.pref_key_enable_gecko_logs))
val show = settings.showSecretDebugMenuThisSession
preferenceEnabledGeckoLogs?.isVisible = show
preferenceEnabledGeckoLogs?.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { _, newValue ->
context?.settings()?.enableGeckoLogs = newValue as Boolean
Toast.makeText(
context,
getString(R.string.quit_application),
Toast.LENGTH_LONG,
).show()
Handler(Looper.getMainLooper()).postDelayed(
{
exitProcess(0)
},
FXA_SYNC_OVERRIDE_EXIT_DELAY,
)
true
}
}
private fun setupAllowDomesticChinaFxaServerPreference() {
val allowDomesticChinaFxAServer = getPreferenceKey(R.string.pref_key_allow_domestic_china_fxa_server)
val preferenceAllowDomesticChinaFxAServer = findPreference<SwitchPreference>(allowDomesticChinaFxAServer)

@ -1314,6 +1314,11 @@ class Settings(private val appContext: Context) : PreferencesHolder {
default = "",
)
var enableGeckoLogs by booleanPreference(
appContext.getPreferenceKey(R.string.pref_key_enable_gecko_logs),
default = Config.channel.isDebug,
)
fun amoCollectionOverrideConfigured(): Boolean {
return overrideAmoUser.isNotEmpty() || overrideAmoCollection.isNotEmpty()
}

@ -40,6 +40,7 @@
<string name="pref_key_addons" translatable="false">pref_key_addons</string>
<string name="pref_key_override_amo_user" translatable="false">pref_key_override_amo_user</string>
<string name="pref_key_override_amo_collection" translatable="false">pref_key_override_amo_collection</string>
<string name="pref_key_enable_gecko_logs" translatable="false">pref_key_enable_gecko_logs</string>
<string name="pref_key_help" translatable="false">pref_key_help</string>
<string name="pref_key_rate" translatable="false">pref_key_rate</string>
<string name="pref_key_about" translatable="false">pref_key_about</string>

@ -529,6 +529,11 @@
<string name="preferences_open_links_in_apps_never">Never</string>
<!-- Preference for open download with an external download manager app -->
<string name="preferences_external_download_manager">External download manager</string>
<!-- Preference for enabling gecko engine logs -->
<string name="preferences_enable_gecko_logs">Enable Gecko logs</string>
<!-- Message to indicate users that we are quitting the application to apply the changes -->
<string name="quit_application">Quitting the application to apply changes…</string>
<!-- Preference for add_ons -->
<string name="preferences_addons">Add-ons</string>
<!-- Preference for notifications -->

@ -177,6 +177,12 @@
android:title="@string/preferences_remote_debugging"
app:iconSpaceReserved="false"
android:defaultValue="false" />
<androidx.preference.SwitchPreference
android:defaultValue="false"
android:key="@string/pref_key_enable_gecko_logs"
app:iconSpaceReserved="false"
android:title="@string/preferences_enable_gecko_logs" />
</PreferenceCategory>
<androidx.preference.PreferenceCategory

Loading…
Cancel
Save