Dan Ballard pushed to branch tor-browser-151.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: a68e4b13 by clairehurst at 2026-06-02T11:15:33-06:00 fixup! [android] Disable features and functionality Bug 45031: Disable AI features for android - - - - - 29cd7db3 by clairehurst at 2026-06-02T11:15:34-06:00 fixup! [android] Rename as Tor Browser Bug 45031: Disable AI features on Android - - - - - 14 changed files: - mobile/android/android-components/components/browser/state/src/main/java/mozilla/components/browser/state/state/TranslationsBrowserState.kt - mobile/android/android-components/components/concept/ai-controls/src/main/java/mozilla/components/concept/ai/controls/AIFeatureBlock.kt - mobile/android/android-components/components/lib/ai-controls/src/main/java/mozilla/components/lib/ai/controls/AIFeatureBlockStorage.kt - mobile/android/fenix/app/nimbus.fml.yaml - mobile/android/fenix/app/src/beta/res/drawable-hdpi/fenix_search_widget.png - mobile/android/fenix/app/src/debug/res/drawable-hdpi/fenix_search_widget.png - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsAIControllableFeature.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsEnabledSettings.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/settings/TranslationsSettingsState.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt - mobile/android/fenix/app/src/main/res/drawable-hdpi/fenix_search_widget.png - mobile/android/fenix/app/src/nightly/res/drawable-hdpi/fenix_search_widget.png - mobile/android/fenix/app/src/release/res/drawable-hdpi/fenix_search_widget.png Changes: ===================================== mobile/android/android-components/components/browser/state/src/main/java/mozilla/components/browser/state/state/TranslationsBrowserState.kt ===================================== @@ -25,7 +25,7 @@ import mozilla.components.concept.engine.translate.TranslationSupport * See [TranslationsState.translationError] for session level errors. */ data class TranslationsBrowserState( - val isTranslationsEnabled: Boolean = true, + val isTranslationsEnabled: Boolean = false, val isEngineSupported: Boolean? = null, val offerTranslation: Boolean? = null, val supportedLanguages: TranslationSupport? = null, ===================================== mobile/android/android-components/components/concept/ai-controls/src/main/java/mozilla/components/concept/ai/controls/AIFeatureBlock.kt ===================================== @@ -32,7 +32,7 @@ interface AIFeatureBlock { } private class InMemoryAIFeatureBlock(initialBlocked: Boolean) : AIFeatureBlock { - private val _isBlocked = MutableStateFlow(initialBlocked) + private val _isBlocked = MutableStateFlow(true) override val isBlocked: Flow<Boolean> = _isBlocked override suspend fun block() { @@ -40,6 +40,6 @@ private class InMemoryAIFeatureBlock(initialBlocked: Boolean) : AIFeatureBlock { } override suspend fun unblock() { - _isBlocked.value = false + _isBlocked.value = true } } ===================================== mobile/android/android-components/components/lib/ai-controls/src/main/java/mozilla/components/lib/ai/controls/AIFeatureBlockStorage.kt ===================================== @@ -28,11 +28,11 @@ internal interface AIFeatureBlockStorage { } private class InMemoryAiFeatureBlockStorage(initialBlocked: Boolean) : AIFeatureBlockStorage { - private val _isBlocked = MutableStateFlow(initialBlocked) + private val _isBlocked = MutableStateFlow(true) override val isBlocked: Flow<Boolean> = _isBlocked override suspend fun setBlocked(isBlocked: Boolean) { - _isBlocked.value = isBlocked + _isBlocked.value = true } } @@ -46,13 +46,13 @@ internal class DataStoreBackedAIFeatureBlockStorage( override val isBlocked: Flow<Boolean> get() = dataStore.data.map { preferences -> - preferences[isBlockedKey] ?: false + true } override suspend fun setBlocked(isBlocked: Boolean) { dataStore.updateData { it.toMutablePreferences().also { preferences -> - preferences[isBlockedKey] = isBlocked + preferences[isBlockedKey] = true } } } ===================================== mobile/android/fenix/app/nimbus.fml.yaml ===================================== @@ -323,13 +323,13 @@ features: defaults: - channel: developer value: - enabled: true + enabled: false - channel: nightly value: - enabled: true + enabled: false - channel: beta value: - enabled: true + enabled: false setup-checklist: description: A feature on the home page that allows the user to track onboarding setup progress. @@ -407,42 +407,42 @@ features: description: > Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.) type: Boolean - default: true + default: false main-flow-browser-menu-enabled: description: > Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.) type: Boolean - default: true + default: false page-settings-enabled: description: > Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.) 'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature. type: Boolean - default: true + default: false global-settings-enabled: description: > Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.) 'page-settings-enabled' must also be enabled for users to access this feature. type: Boolean - default: true + default: false global-lang-settings-enabled: description: > Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature. type: Boolean - default: true + default: false global-site-settings-enabled: description: > Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature. type: Boolean - default: true + default: false downloads-enabled: description: > Show the global language model download options entry point for translations. ('Download languages' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature. type: Boolean - default: true + default: false navigation-toolbar: description: Feature for navigation toolbar. @@ -1262,7 +1262,7 @@ features: defaults: - channel: developer value: - enabled: true + enabled: false - channel: nightly value: enabled: false ===================================== mobile/android/fenix/app/src/beta/res/drawable-hdpi/fenix_search_widget.png ===================================== Binary files a/mobile/android/fenix/app/src/beta/res/drawable-hdpi/fenix_search_widget.png and b/mobile/android/fenix/app/src/beta/res/drawable-hdpi/fenix_search_widget.png differ ===================================== mobile/android/fenix/app/src/debug/res/drawable-hdpi/fenix_search_widget.png ===================================== Binary files a/mobile/android/fenix/app/src/debug/res/drawable-hdpi/fenix_search_widget.png and b/mobile/android/fenix/app/src/debug/res/drawable-hdpi/fenix_search_widget.png differ ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt ===================================== @@ -396,7 +396,7 @@ class MenuDialogFragment : BottomSheetDialogFragment() { }.collectAsState(initial = false) val isTranslationsEnabled = TranslationsEnabledSettings.dataStore(requireContext()) - .isEnabled.collectAsState(true) + .isEnabled.collectAsState(false) MenuDialogBottomSheet( modifier = Modifier ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsAIControllableFeature.kt ===================================== @@ -22,8 +22,8 @@ class TranslationsAIControllableFeature( override val isEnabled: Flow<Boolean> = settings.isEnabled override suspend fun set(enabled: Boolean) { - settings.setEnabled(enabled) - browserStore.dispatch(TranslationsAction.SetTranslationsEnabledAction(enabled)) + settings.setEnabled(false) + browserStore.dispatch(TranslationsAction.SetTranslationsEnabledAction(false)) } companion object : AIFeatureMetadata { ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationsEnabledSettings.kt ===================================== @@ -29,10 +29,10 @@ interface TranslationsEnabledSettings { * An in-memory version for tests, previews, etc. */ fun inMemory(isEnabledInitial: Boolean = false) = object : TranslationsEnabledSettings { - private val _isEnabled = MutableStateFlow(isEnabledInitial) + private val _isEnabled = MutableStateFlow(false) override val isEnabled: Flow<Boolean> = _isEnabled override suspend fun setEnabled(isEnabled: Boolean) { - _isEnabled.value = isEnabled + _isEnabled.value = false } } @@ -50,13 +50,13 @@ internal class DataStoreBackedTranslationsEnabledSettings( private val isEnabledKey = booleanPreferencesKey("is_enabled_key") override val isEnabled: Flow<Boolean> = dataStore.data.map { preferences -> - preferences[isEnabledKey] ?: true + false } override suspend fun setEnabled(isEnabled: Boolean) { dataStore.updateData { it.toMutablePreferences().also { preferences -> - preferences[isEnabledKey] = isEnabled + preferences[isEnabledKey] = false } } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/settings/TranslationsSettingsState.kt ===================================== @@ -21,6 +21,6 @@ data class TranslationsSettingsState( val showAutomaticTranslations: Boolean, val showNeverTranslate: Boolean, val showDownloads: Boolean, - val translationsEnabled: Boolean, + val translationsEnabled: Boolean = false, val switchItems: List<TranslationSwitchItem>, ) ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt ===================================== @@ -1908,7 +1908,7 @@ class Settings( var shouldShowVoiceSearch by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_voice_search), - default = true, + default = false, ) /** @@ -2799,7 +2799,7 @@ class Settings( var aiControlsFeatureFlagEnabled by booleanPreference( key = appContext.getPreferenceKey(R.string.pref_key_enable_ai_controls), - default = Config.channel.isNightlyOrDebug, + default = false, ) var importBookmarksFeatureFlagEnabled by booleanPreference( ===================================== mobile/android/fenix/app/src/main/res/drawable-hdpi/fenix_search_widget.png ===================================== Binary files a/mobile/android/fenix/app/src/main/res/drawable-hdpi/fenix_search_widget.png and b/mobile/android/fenix/app/src/main/res/drawable-hdpi/fenix_search_widget.png differ ===================================== mobile/android/fenix/app/src/nightly/res/drawable-hdpi/fenix_search_widget.png ===================================== Binary files a/mobile/android/fenix/app/src/nightly/res/drawable-hdpi/fenix_search_widget.png and b/mobile/android/fenix/app/src/nightly/res/drawable-hdpi/fenix_search_widget.png differ ===================================== mobile/android/fenix/app/src/release/res/drawable-hdpi/fenix_search_widget.png ===================================== Binary files a/mobile/android/fenix/app/src/release/res/drawable-hdpi/fenix_search_widget.png and b/mobile/android/fenix/app/src/release/res/drawable-hdpi/fenix_search_widget.png differ View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/6f6690e... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/6f6690e... 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
participants (1)
-
Dan Ballard (@dan)