brizental pushed to branch tor-browser-153.1.0esr-16.0-1 at The Tor Project / Applications / Tor Browser Commits: 4ba775a2 by Beatriz Rizental at 2026-08-24T15:13:56-03:00 fixup! TB 34403: [android] Disable Normal mode by default. Bug 44210: Drop disableNormalModeByDefault setting. This setting is not useful, because it (1) is not changeable by the user and (2) it just adds complexity to the original patch to disable normal mode. - - - - - f6924714 by Beatriz Rizental at 2026-08-24T15:13:57-03:00 fixup! TB 34403: [android] Disable Normal mode by default. Bug 44210: [EXTRA] Drop test changes from original patch. These test changes justse rebase conflicts. We are not running these tests yet. Let's drop it for now and deal with it when we decide to run the tests -- if we do. - - - - - 10 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/bookmarks/BookmarksScreen.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/browsingmode/BrowsingModeManager.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/search/ApplicationSearchMiddleware.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/HttpsOnlyFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt - mobile/android/fenix/app/src/main/res/values/preference_keys.xml - mobile/android/fenix/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/bookmarks/BookmarksScreen.kt ===================================== @@ -82,7 +82,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.core.graphics.toColorInt -import androidx.compose.ui.platform.LocalContext import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable @@ -128,7 +127,6 @@ import org.mozilla.fenix.components.components import org.mozilla.fenix.compose.Favicon import org.mozilla.fenix.compose.list.SelectableFaviconListItem import org.mozilla.fenix.compose.list.SelectableIconListItem -import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.getRootView import org.mozilla.fenix.ext.components import org.mozilla.fenix.search.SearchFragmentAction.SuggestionClicked @@ -1129,15 +1127,11 @@ private fun BookmarkListOverflowMenu( onDismissRequest: () -> Unit, store: BookmarksStore, ) { - val menuItems = listOfNotNull( + val menuItems = listOf( MenuItem.TextItem( text = Text.Resource(R.string.bookmark_menu_select_all_bookmarks), onClick = { store.dispatch(BookmarksListMenuAction.SelectAll) }, ), - MenuItem.TextItem( - text = Text.Resource(R.string.bookmark_menu_open_in_new_tab_button), - onClick = { store.dispatch(BookmarksListMenuAction.MultiSelect.OpenInNormalTabsClicked) }, - ).takeIf { !LocalContext.current.components.settings.shouldDisableNormalMode }, MenuItem.TextItem( text = Text.Resource(R.string.bookmark_menu_open_in_private_tab_button), onClick = { store.dispatch(BookmarksListMenuAction.MultiSelect.OpenInPrivateTabsClicked) }, @@ -1198,7 +1192,7 @@ private fun BookmarkListItemMenu( bookmark: BookmarkItem.Bookmark, store: BookmarksStore, ) { - val menuItems = listOfNotNull( + val menuItems = listOf( MenuItem.TextItem( text = Text.Resource(R.string.bookmark_menu_select_button), onClick = { store.dispatch(BookmarksListMenuAction.Bookmark.SelectClicked(bookmark)) }, @@ -1217,10 +1211,6 @@ private fun BookmarkListItemMenu( text = Text.Resource(R.string.bookmark_menu_share_button), onClick = { store.dispatch(BookmarksListMenuAction.Bookmark.ShareClicked(bookmark)) }, ), - MenuItem.TextItem( - text = Text.Resource(R.string.bookmark_menu_open_in_new_tab_button), - onClick = { store.dispatch(BookmarksListMenuAction.Bookmark.OpenInNormalTabClicked(bookmark)) }, - ).takeIf { !LocalContext.current.components.settings.shouldDisableNormalMode }, MenuItem.TextItem( text = Text.Resource(R.string.bookmark_menu_open_in_private_tab_button), onClick = { store.dispatch(BookmarksListMenuAction.Bookmark.OpenInPrivateTabClicked(bookmark)) }, @@ -1245,7 +1235,7 @@ private fun BookmarkListFolderMenu( folder: BookmarkItem.Folder, store: BookmarksStore, ) { - val menuItems = listOfNotNull( + val menuItems = listOf( MenuItem.TextItem( text = Text.Resource(R.string.bookmark_menu_select_button), onClick = { store.dispatch(BookmarksListMenuAction.Folder.SelectClicked(folder)) }, @@ -1260,10 +1250,6 @@ private fun BookmarkListFolderMenu( store.dispatch(BookmarksListMenuAction.Folder.MoveClicked(folder)) }, ), - MenuItem.TextItem( - text = Text.Resource(R.string.bookmark_menu_open_all_in_tabs_button), - onClick = { store.dispatch(BookmarksListMenuAction.Folder.OpenAllInNormalTabClicked(folder)) }, - ).takeIf { !LocalContext.current.components.settings.shouldDisableNormalMode }, MenuItem.TextItem( text = Text.Resource(R.string.bookmark_menu_open_all_in_private_tabs_button), onClick = { store.dispatch(BookmarksListMenuAction.Folder.OpenAllInPrivateTabClicked(folder)) }, ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/browsingmode/BrowsingModeManager.kt ===================================== @@ -74,17 +74,7 @@ class DefaultBrowsingModeManager( * Returns the [BrowsingMode] set by the [intent] or the last known [BrowsingMode]. */ private fun getModeFromIntentOrLastKnown(intent: Intent?): BrowsingMode { - if (settings.shouldDisableNormalMode) { - return BrowsingMode.Private - } - - intent?.toSafeIntent()?.let { - if (it.hasExtra(PRIVATE_BROWSING_MODE)) { - val startPrivateMode = it.getBooleanExtra(PRIVATE_BROWSING_MODE, false) - return BrowsingMode.fromBoolean(isPrivate = startPrivateMode) - } - } - - return settings.lastKnownMode + // tor-browser#44210: Hard-code always on PBM. + return BrowsingMode.Private } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/search/ApplicationSearchMiddleware.kt ===================================== @@ -18,7 +18,6 @@ import mozilla.components.browser.state.state.BrowserState import mozilla.components.feature.search.ext.createApplicationSearchEngine import mozilla.components.lib.state.Middleware import mozilla.components.lib.state.Store -import org.mozilla.fenix.ext.components import org.mozilla.fenix.R import mozilla.components.ui.icons.R as iconsR @@ -35,7 +34,7 @@ const val TABS_SEARCH_ENGINE_ID = "tabs_search_engine_id" * @param scope [CoroutineScope] used to launch coroutines. */ class ApplicationSearchMiddleware( - private val context: Context, + context: Context, private val stringProvider: (Int) -> String = { context.getString(it) }, private val bitmapProvider: (Int) -> Bitmap = { getDrawable(context, it)?.toBitmap()!! }, private val scope: CoroutineScope = CoroutineScope(Dispatchers.IO), @@ -55,7 +54,7 @@ class ApplicationSearchMiddleware( private fun loadSearchEngines( store: Store<BrowserState, BrowserAction>, ) = scope.launch { - val searchEngines = listOfNotNull( + val searchEngines = listOf( createApplicationSearchEngine( id = BOOKMARKS_SEARCH_ENGINE_ID, name = stringProvider(R.string.library_bookmarks), @@ -68,12 +67,6 @@ class ApplicationSearchMiddleware( url = "", icon = bitmapProvider(iconsR.drawable.mozac_ic_tab_tray_24), ), - createApplicationSearchEngine( - id = HISTORY_SEARCH_ENGINE_ID, - name = stringProvider(R.string.library_history), - url = "", - icon = bitmapProvider(iconsR.drawable.mozac_ic_history_24), - ).takeIf { !context.components.settings.shouldDisableNormalMode }, ) store.dispatch(SearchAction.ApplicationSearchEnginesLoaded(searchEngines)) ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/HttpsOnlyFragment.kt ===================================== @@ -62,7 +62,7 @@ class HttpsOnlyFragment : Fragment(), SystemInsetsPaddedFragment { updateEngineHttpsOnlyMode() } - binding.httpsOnlyModes.isGone = requireContext().components.settings.shouldDisableNormalMode + binding.httpsOnlyModes.isGone = true return binding.root } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt ===================================== @@ -331,15 +331,7 @@ class SettingsFragment : PreferenceFragmentCompat(), SystemInsetsPaddedFragment, getString(R.string.delete_browsing_data_quit_off) } // Hide "Delete browsing data on quit" when in Private Browsing-only mode - deleteBrowsingDataPreference.isVisible = - !deleteBrowsingDataPreference.context.components.settings.shouldDisableNormalMode - - - if (!settings.shouldDisableNormalMode) { - val tabSettingsPreference = - requirePreference<Preference>(R.string.pref_key_tabs) - tabSettingsPreference.summary = context?.components?.settings?.getTabTimeoutString() - } + deleteBrowsingDataPreference.isVisible = false // val autofillPreference = requirePreference<Preference>(R.string.pref_key_credit_cards) // autofillPreference.title = if (settings.addressFeature) { ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt ===================================== @@ -49,11 +49,11 @@ class TabsSettingsFragment : PreferenceFragmentCompat(), SystemInsetsPaddedFragm setPreferencesFromResource(R.xml.tabs_preferences, rootKey) findPreference<RadioButtonPreference>(getString(R.string.pref_key_close_tabs_manually))?.parent?.apply { - isVisible = !context.components.settings.shouldDisableNormalMode + isVisible = false } findPreference<PreferenceCategory>(getString(R.string.pref_key_inactive_tabs_category))?.apply { - isVisible = !context.components.settings.shouldDisableNormalMode + isVisible = false } startForResult = registerForActivityResult( ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt ===================================== @@ -49,7 +49,7 @@ class SearchEngineFragment : PreferenceFragmentCompat(), SystemInsetsPaddedFragm } findPreference<CheckBoxPreference>(getString(R.string.pref_key_show_search_suggestions_in_private))?.apply { - isVisible = !context.components.settings.shouldDisableNormalMode + isVisible = false } view?.hideKeyboard() ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt ===================================== @@ -881,14 +881,9 @@ class Settings( default = 1f, ) - val shouldDisableNormalMode by booleanPreference( - appContext.getPreferenceKey(R.string.pref_key_disable_normal_mode), - true - ) - val shouldShowHistorySuggestions by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_search_browsing_history), - default = !shouldDisableNormalMode, + default = false, ) val shouldShowBookmarkSuggestions by booleanPreference( @@ -1463,7 +1458,7 @@ class Settings( get() { val lastKnownModeWasPrivate = preferences.getBoolean( appContext.getPreferenceKey(R.string.pref_key_last_known_mode_private), - shouldDisableNormalMode, + true, ) return if (lastKnownModeWasPrivate) { @@ -1705,7 +1700,7 @@ class Settings( var shouldShowSearchSuggestionsInPrivate by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_search_suggestions_in_private), - default = shouldDisableNormalMode, + default = true, ) /** ===================================== mobile/android/fenix/app/src/main/res/values/preference_keys.xml ===================================== @@ -48,7 +48,6 @@ <string name="pref_key_delete_permissions_now" translatable="false">pref_key_delete_permissions_now</string> <string name="pref_key_delete_downloads_now" translatable="false">pref_key_delete_downloads_now</string> <string name="pref_key_delete_browsing_data_on_quit_categories" translatable="false">pref_key_delete_browsing_data_on_quit_categories</string> - <string name="pref_key_disable_normal_mode" translatable="false">pref_key_disable_normal_mode</string> <string name="pref_key_last_known_mode_private" translatable="false">pref_key_last_known_mode_private</string> <string name="pref_key_addons" translatable="false">pref_key_addons</string> <string name="pref_key_install_local_addon" translatable="false">pref_key_install_local_addon</string> ===================================== mobile/android/fenix/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt ===================================== @@ -66,13 +66,13 @@ class SettingsTest { fun launchLinksInPrivateTab() { // When just created // Then - assertTrue(settings.openLinksInAPrivateTab) + assertFalse(settings.openLinksInAPrivateTab) // When - settings.openLinksInAPrivateTab = false + settings.openLinksInAPrivateTab = true // Then - assertFalse(settings.openLinksInAPrivateTab) + assertTrue(settings.openLinksInAPrivateTab) } @Test View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/03e9a8f... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/03e9a8f... You're receiving this email because of your account on gitlab.torproject.org. Manage all notifications: https://gitlab.torproject.org/-/profile/notifications | Help: https://gitlab.torproject.org/help