lists.torproject.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

tbb-commits

Thread Start a new thread
Threads by month
  • ----- 2026 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
tbb-commits@lists.torproject.org

  • 1 participants
  • 20603 discussions
[Git][tpo/applications/tor-browser][tor-browser-152.0a1-16.0-2] 2 commits: fixup! TB 30237: Add v3 onion services client authentication prompt
by morgan (@morgan) 09 Jun '26

09 Jun '26
morgan pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: f861b51e by Henry Wilkes at 2026-06-09T12:46:49+00:00 fixup! TB 30237: Add v3 onion services client authentication prompt TB 44888: Use button opacity CSS variable. - - - - - 5f27d879 by Henry Wilkes at 2026-06-09T12:46:49+00:00 fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection TB 44888: Use button opacity CSS variable. - - - - - 2 changed files: - browser/components/onionservices/content/authPreferences.css - browser/components/torpreferences/content/torPreferences.css Changes: ===================================== browser/components/onionservices/content/authPreferences.css ===================================== @@ -30,8 +30,7 @@ * TODO: Replace with moz-button when it handles this for us. See * tor-browser#43275. */ button.spoof-button-disabled { - /* Borrow the :disabled rule from common-shared.css */ - opacity: 0.4; + opacity: var(--button-opacity-disabled); /* Also ensure it does not get hover or active styling. */ pointer-events: none; } ===================================== browser/components/torpreferences/content/torPreferences.css ===================================== @@ -9,8 +9,7 @@ * TODO: Replace with moz-button when it handles this for us. See * tor-browser#43275. */ button.spoof-button-disabled { - /* Borrow the :disabled rule from common-shared.css */ - opacity: 0.4; + opacity: var(--button-opacity-disabled); /* Also ensure it does not get hover or active styling. */ pointer-events: none; } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/068ab2… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/068ab2… 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
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-152.0a1-16.0-2] fixup! [android] Disable features and functionality
by Dan Ballard (@dan) 08 Jun '26

08 Jun '26
Dan Ballard pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 068ab2f5 by clairehurst at 2026-06-08T16:54:02-06:00 fixup! [android] Disable features and functionality Bug 44769: Remove crash screen - - - - - 1 changed file: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/startupCrash/StartupCrashScreen.kt Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/startupCrash/StartupCrashScreen.kt ===================================== @@ -53,15 +53,13 @@ internal fun StartupCrashScreen(store: StartupCrashStore) { verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ) { - ScreenImg() - - Spacer(modifier = Modifier.height(16.dp)) ScreenText() Spacer(modifier = Modifier.height(24.dp)) - when (state.uiState) { + // tb#44769 Force state.uiState to be UiState.Finished because we don't want to report crashes + when (UiState.Finished) { UiState.Idle -> { ReportButtons(store) } @@ -153,16 +151,6 @@ private fun ScreenText() { ), style = FirefoxTheme.typography.headline5, ) - - Text( - text = stringResource( - R.string.startup_crash_body, - stringResource(R.string.firefox), - ), - color = MaterialTheme.colorScheme.onSurfaceVariant, - style = FirefoxTheme.typography.body2, - textAlign = TextAlign.Center, - ) } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/068ab2f… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/068ab2f… 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
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-152.0a1-16.0-2] fixup! TB 40026 [android]: Implement Security Level settings on Android.
by Dan Ballard (@dan) 08 Jun '26

08 Jun '26
Dan Ballard pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: ab12da36 by clairehurst at 2026-06-08T16:41:03-06:00 fixup! TB 40026 [android]: Implement Security Level settings on Android. - - - - - 1 changed file: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorSecurityLevelFragment.kt Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorSecurityLevelFragment.kt ===================================== @@ -125,8 +125,7 @@ class TorSecurityLevelFragment : Fragment(), SystemInsetsPaddedFragment { R.color.settings_button_white, ) binding.cancelButton.setOnClickListener { - @Suppress("DEPRECATION") - requireActivity().onBackPressed() + requireActivity().onBackPressedDispatcher.onBackPressed() } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ab12da3… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ab12da3… 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
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-152.0a1-16.0-2] 2 commits: fixup! [android] Implement Android-native Connection Assist UI
by Dan Ballard (@dan) 08 Jun '26

08 Jun '26
Dan Ballard pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 5eb5f5ef by clairehurst at 2026-06-08T15:31:58-07:00 fixup! [android] Implement Android-native Connection Assist UI Bug 43576: Connection Assist on Android Fast Follows (Bug 41188) Add frequent regions UI - - - - - 21e669d3 by clairehurst at 2026-06-08T15:31:58-07:00 [android] TBA strings Bug 43576: Connection Assist on Android Fast Follows (Bug 41188) Add frequent regions UI - - - - - 5 changed files: - + mobile/android/android-components/components/ui/icons/src/main/res/drawable/unthemed_dropdown_arrow.xml - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt - mobile/android/fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml - mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml Changes: ===================================== mobile/android/android-components/components/ui/icons/src/main/res/drawable/unthemed_dropdown_arrow.xml ===================================== @@ -0,0 +1,5 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp"> + + <path android:fillColor="#FBFBFE" android:pathData="M7,10L12,15L17,10H7Z"/> + +</vector> ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt ===================================== @@ -4,7 +4,6 @@ package org.mozilla.fenix.tor -import android.content.Intent import android.graphics.Color import android.graphics.Typeface import android.os.Build @@ -18,9 +17,40 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.AdapterView -import android.widget.ArrayAdapter import androidx.appcompat.content.res.AppCompatResources +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.material3.DividerDefaults +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi +import androidx.compose.material3.adaptive.currentWindowDpSize +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.ViewCompositionStrategy +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.DpOffset +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import androidx.core.view.isEmpty import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -29,8 +59,10 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.navigation.fragment.findNavController +import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch import mozilla.components.support.base.feature.UserInteractionHandler +import mozilla.components.ui.colors.PhotonColors import mozilla.components.ui.colors.R as colorsR import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R @@ -48,7 +80,9 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler, SystemIn private var _binding: FragmentTorConnectionAssistBinding? = null private val binding get() = _binding!! - private lateinit var regionDropDownSpinnerAdapter: ArrayAdapter<String> + private val firstMenuItem: MutableStateFlow<String> by lazy { + MutableStateFlow(getString(R.string.connection_assist_automatic_country_detection)) + } override fun onCreateView( inflater: LayoutInflater, @@ -210,95 +244,186 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler, SystemIn private fun updateRegionDropdown(screen: ConnectAssistUiState) { if (screen.regionDropDownVisible) { - if (binding.countryDropDown.isEmpty()) { - regionDropDownSpinnerAdapter = initializeSpinner() + firstMenuItem.value = getString(screen.regionDropDownDefaultItem) + if (binding.regionDropDown.isEmpty()) { + binding.regionDropDown.apply { + setContent { + setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) + RegionDropDown() + } + } torConnectionAssistViewModel.fetchFrequentRegions() torConnectionAssistViewModel.fetchRegionNames() } - setFirstItemInCountryDropDown(getString(screen.regionDropDownDefaultItem)) - if (screen == ConnectAssistUiState.ChooseRegion || screen == ConnectAssistUiState.ConfirmRegion || screen == ConnectAssistUiState.RegionNotFound) { torConnectionAssistViewModel.selectDefaultRegion() - setDropDownSelectionToSelectedCountryCode() } - binding.unblockTheInternetInCountryDescription.visibility = View.VISIBLE - binding.countryDropDown.visibility = View.VISIBLE + binding.regionDropDown.visibility = View.VISIBLE } else { - binding.unblockTheInternetInCountryDescription.visibility = View.GONE - binding.countryDropDown.visibility = View.GONE + binding.regionDropDown.visibility = View.GONE } } - private fun setDropDownSelectionToSelectedCountryCode() { - binding.countryDropDown.setSelection( - indexOfSelectedCountryCode(), - ) - } - - private fun indexOfSelectedCountryCode() : Int { - return torConnectionAssistViewModel.regionCodeNameMap.value?.keys?.indexOf( - torConnectionAssistViewModel.selectedCountryCode.value, - )?.plus(1) ?: 0 - } - - private fun setFirstItemInCountryDropDown(item: String) { - if (!regionDropDownSpinnerAdapter.isEmpty) { - regionDropDownSpinnerAdapter.remove(regionDropDownSpinnerAdapter.getItem(0)) - } - regionDropDownSpinnerAdapter.insert(item, 0) - } - - private fun initializeSpinner(): ArrayAdapter<String> { - val spinnerAdapter: ArrayAdapter<String> = - ArrayAdapter<String>( - requireContext(), - android.R.layout.simple_spinner_item, - android.R.id.text1, - ) - spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) - binding.countryDropDown.adapter = spinnerAdapter - binding.countryDropDown.onItemSelectedListener = - object : AdapterView.OnItemSelectedListener { - override fun onItemSelected( - parent: AdapterView<*>?, - view: View?, - position: Int, - id: Long, - ) { - torConnectionAssistViewModel.setCountryCodeToSelectedItem(position) - updateButton1(torConnectionAssistViewModel.torConnectScreen.value) - } - - override fun onNothingSelected(parent: AdapterView<*>?) {} - } - - viewLifecycleOwner.lifecycleScope.launch { - repeatOnLifecycle(Lifecycle.State.STARTED) { - torConnectionAssistViewModel.regionCodeNameMap.collect { - if (it != null) { - spinnerAdapter.clear() - spinnerAdapter.add(getString(torConnectionAssistViewModel.torConnectScreen.value.regionDropDownDefaultItem)) - spinnerAdapter.addAll(it.values) + @Composable + fun RegionDropDown( + textStyle: TextStyle = TextStyle( + fontSize = 16.sp, + lineHeight = 24.sp, + fontWeight = FontWeight(400), + color = PhotonColors.LightGrey05, + letterSpacing = 0.15.sp, + ), + labelTextStyle: TextStyle = TextStyle( + fontSize = 14.sp, + lineHeight = 20.sp, + fontWeight = FontWeight(400), + color = PhotonColors.LightGrey40, + letterSpacing = 0.25.sp, + ), + ) { + var expanded by rememberSaveable { mutableStateOf(false) } + Box( + modifier = Modifier.fillMaxWidth() + ) { + TextButton( + onClick = { expanded = !expanded }, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + ) { + Column { + Text( + getString(R.string.connection_assist_unblock_the_internet_in_country_or_region), + color = PhotonColors.LightGrey05, + modifier = Modifier.padding(bottom = 8.dp), + fontSize = 14.sp, + ) + Row { + Text( + torConnectionAssistViewModel.regionCodeNameMap.collectAsState().value?.get( + torConnectionAssistViewModel.selectedCountryCode.collectAsState().value, + ) ?: firstMenuItem.collectAsState().value, + color = PhotonColors.LightGrey05, + fontSize = 14.sp, + ) + Spacer(modifier = Modifier.weight(1f)) + Image( + painterResource(mozilla.components.ui.icons.R.drawable.unthemed_dropdown_arrow), + contentDescription = null, + ) } + HorizontalDivider(Modifier, thickness = 1.dp, color = PhotonColors.LightGrey05) } } - } - - viewLifecycleOwner.lifecycleScope.launch { - repeatOnLifecycle(Lifecycle.State.STARTED) { - torConnectionAssistViewModel.frequentRegionCodes.collect { - if (it != null) { - for (region in it) { - Log.d(TAG, "collected region: $region") + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false }, + offset = DpOffset(x = 24.dp, y = 0.dp), + modifier = Modifier.background(color = PhotonColors.Violet90) + ) { + @OptIn(ExperimentalMaterial3AdaptiveApi::class) + LazyColumn( + Modifier + .width(250.dp) + .height(currentWindowDpSize().height) // fixMaxHeight() doesn't work, use this instead + ) { + item { + RegionDropdownMenuItem( + "automatic", + firstMenuItem.collectAsState().value, + dismissAction = { expanded = false }, + textStyle = textStyle, + ) + } + if (torConnectionAssistViewModel.frequentRegionCodes.value?.isEmpty() == false) { + item { + HorizontalDivider(Modifier, DividerDefaults.Thickness, color = PhotonColors.Ink05) + DropdownMenuItem( + text = { + Text( + text = getString(R.string.connection_assist_frequently_selected_locations), + style = labelTextStyle, + ) + }, + onClick = {}, + ) + } + viewLifecycleOwner.lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.STARTED) { + torConnectionAssistViewModel.frequentRegionCodes.collect { codes -> + if (codes != null) { + for (code in codes) { + item { + RegionDropdownMenuItem( + code, + torConnectionAssistViewModel.regionCodeNameMap.collectAsState().value?.get( + code, + ), + dismissAction = { expanded = false }, + textStyle = textStyle, + ) + } + } + } + } + } + } + item { + HorizontalDivider(Modifier, DividerDefaults.Thickness, color = PhotonColors.Ink05) + DropdownMenuItem( + text = { + Text( + text = getString(R.string.connection_assist_other_locations), + style = labelTextStyle, + ) + }, + onClick = {} + ) + } + } + viewLifecycleOwner.lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.STARTED) { + torConnectionAssistViewModel.regionCodeNameMap.collect { regions -> + if (regions != null) { + for (region in regions.toList()) { + item { + RegionDropdownMenuItem( + region.first, region.second, + dismissAction = { expanded = false }, + textStyle = textStyle, + ) + } + } + } + } + } } } - } } } + } - return spinnerAdapter + @Composable + fun RegionDropdownMenuItem( + key: String, + text: String?, + dismissAction: () -> Unit, + textStyle: TextStyle, + ) { + DropdownMenuItem( + modifier = Modifier.padding(start = 8.dp), + text = { Text( + text ?: return@DropdownMenuItem, + style = textStyle, + ) }, + onClick = { + torConnectionAssistViewModel.selectedCountryCode.value = key + updateButton1(torConnectionAssistViewModel.torConnectScreen.value) + dismissAction() + }, + ) } private fun setButton1(screen: ConnectAssistUiState) { ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt ===================================== @@ -116,14 +116,6 @@ class TorConnectionAssistViewModel( selectedCountryCode.value = torConnectStage.value?.defaultRegion ?: "automatic" } - fun setCountryCodeToSelectedItem(position: Int) { - selectedCountryCode.value = - regionCodeNameMap.value?.keys?.toList() - ?.getOrNull(position - 1) ?: "automatic" - // position - 1 since we have the default/first value of automatic - Log.d(TAG, "selectedCountryCode = ${selectedCountryCode.value}") - } - val shouldOpenHome: MutableLiveData<Boolean> by lazy { MutableLiveData(false) } ===================================== mobile/android/fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml ===================================== @@ -109,30 +109,14 @@ android:textColor="@color/photonLightGrey05" app:layout_constraintTop_toBottomOf="@id/title_description" /> - <TextView - android:id="@+id/unblock_the_internet_in_country_description" + <androidx.compose.ui.platform.ComposeView + android:id="@+id/regionDropDown" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingHorizontal="24dp" - android:layout_marginTop="24dp" - android:text="@string/connection_assist_unblock_the_internet_in_country_or_region" - android:textColor="@color/photonLightGrey05" - android:visibility="gone" - app:layout_constraintTop_toBottomOf="@id/title_description" /> - - <androidx.appcompat.widget.AppCompatSpinner - android:id="@+id/country_drop_down" - style="@style/Widget.AppCompat.Spinner.Underlined" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="24dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="24dp" - android:textColor="@color/photonLightGrey05" android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/unblock_the_internet_in_country_description" /> + app:layout_constraintTop_toBottomOf="@id/quickstart_switch" /> <ImageView android:id="@+id/wordmarkLogo" ===================================== mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml ===================================== @@ -91,6 +91,10 @@ <!-- Connection assist, --> <string name="connection_assist_select_country_or_region">Select country or region</string> <!-- Connection assist. --> + <string name="connection_assist_frequently_selected_locations">Frequently selected locations</string> + <!-- Connection assist. --> + <string name="connection_assist_other_locations">Other locations</string> + <!-- Connection assist. --> <string name="connection_assist_try_a_bridge_button">Try a bridge</string> <!-- Connection assist. --> <string name="connection_assist_trying_a_bridge_title">Trying a bridge…</string> View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/bfdbea… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/bfdbea… 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
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-152.0a1-16.0-2] 2 commits: fixup! [android] Implement Android-native Connection Assist UI
by Dan Ballard (@dan) 08 Jun '26

08 Jun '26
Dan Ballard pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: bff7e7d7 by clairehurst at 2026-06-08T11:44:47-06:00 fixup! [android] Implement Android-native Connection Assist UI Bug 43576: Connection Assist on Android Fast Follows (Bug 41188) Add frequent regions - - - - - bfdbead3 by clairehurst at 2026-06-08T11:44:47-06:00 fixup! TB 42247: Android helpers for the TorProvider Bug 43576: Connection Assist on Android Fast Follows (Bug 41188) Add frequent regions - - - - - 4 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt - mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java - toolkit/modules/TorAndroidIntegration.sys.mjs Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt ===================================== @@ -212,6 +212,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler, SystemIn if (screen.regionDropDownVisible) { if (binding.countryDropDown.isEmpty()) { regionDropDownSpinnerAdapter = initializeSpinner() + torConnectionAssistViewModel.fetchFrequentRegions() torConnectionAssistViewModel.fetchRegionNames() } @@ -285,6 +286,18 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler, SystemIn } } + viewLifecycleOwner.lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.STARTED) { + torConnectionAssistViewModel.frequentRegionCodes.collect { + if (it != null) { + for (region in it) { + Log.d(TAG, "collected region: $region") + } + } + } + } + } + return spinnerAdapter } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt ===================================== @@ -80,6 +80,14 @@ class TorConnectionAssistViewModel( } } + fun fetchFrequentRegions() { + torAndroidIntegration.frequentRegionNamesGet { frequentRegionNames -> + if (frequentRegionNames != null) { + frequentRegionCodes.value = frequentRegionNames + } + } + } + override fun onCleared() { torAndroidIntegration.unregisterBootstrapStateChangeListener(this) super.onCleared() @@ -96,6 +104,10 @@ class TorConnectionAssistViewModel( MutableStateFlow(null) } + val frequentRegionCodes: MutableStateFlow<Array<String>?> by lazy { + MutableStateFlow(null) + } + val selectedCountryCode: MutableStateFlow<String> by lazy { MutableStateFlow("automatic") } ===================================== mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java ===================================== @@ -60,6 +60,7 @@ public class TorAndroidIntegration implements BundleEventListener { private static final String EVENT_QUICKSTART_GET = "GeckoView:Tor:QuickstartGet"; private static final String EVENT_QUICKSTART_SET = "GeckoView:Tor:QuickstartSet"; private static final String EVENT_REGION_NAMES_GET = "GeckoView:Tor:RegionNamesGet"; + private static final String EVENT_FREQUENT_REGION_NAMES_GET = "GeckoView:Tor:FrequentRegionNamesGet"; private static final String EVENT_SHOULD_SHOW_TOR_CONNECT = "GeckoView:Tor:ShouldShowTorConnect"; private static final String CONTROL_PORT_FILE = "/control-ipc"; @@ -709,6 +710,19 @@ public class TorAndroidIntegration implements BundleEventListener { }); } + public interface FrequentRegionNamesGetter { + void onValue(String[] frequentRegionNames); + } + + public void frequentRegionNamesGet(FrequentRegionNamesGetter frequentRegionNamesGetter) { + EventDispatcher.getInstance().queryBundle(EVENT_FREQUENT_REGION_NAMES_GET).then( frequentRegionNames -> { + if (frequentRegionNames != null) { + frequentRegionNamesGetter.onValue(frequentRegionNames.getStringArray("codes")); + } + return new GeckoResult<Void>(); + }); + } + public interface ShouldShowTorConnectGetter { void onValue(Boolean shouldShowTorConnect); } ===================================== toolkit/modules/TorAndroidIntegration.sys.mjs ===================================== @@ -49,6 +49,7 @@ const ListenedEvents = Object.freeze({ quickstartGet: "GeckoView:Tor:QuickstartGet", quickstartSet: "GeckoView:Tor:QuickstartSet", regionNamesGet: "GeckoView:Tor:RegionNamesGet", + frequentRegionNamesGet: "GeckoView:Tor:FrequentRegionNamesGet", shouldShowTorConnectGet: "GeckoView:Tor:ShouldShowTorConnect", }); @@ -213,6 +214,11 @@ class TorAndroidIntegrationImpl { case ListenedEvents.regionNamesGet: callback?.onSuccess(lazy.TorConnect.getRegionNames()); return; + case ListenedEvents.frequentRegionNamesGet: + callback?.onSuccess({ + codes: await lazy.TorConnect.getFrequentRegions(), + }); + return; case ListenedEvents.shouldShowTorConnectGet: callback?.onSuccess(lazy.TorConnect.shouldShowTorConnect()); return; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/631e5e… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/631e5e… 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
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-152.0a1-16.0-2] [android] Disable features and functionality
by clairehurst (@clairehurst) 08 Jun '26

08 Jun '26
clairehurst pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 631e5e4c by clairehurst at 2026-06-08T11:34:52-06:00 [android] Disable features and functionality tb#44175: Remove all default browser functionality (Android) - - - - - 3 changed files: - mobile/android/fenix/app/src/main/AndroidManifest.xml - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt - mobile/android/fenix/app/src/main/res/xml/preferences.xml Changes: ===================================== mobile/android/fenix/app/src/main/AndroidManifest.xml ===================================== @@ -521,7 +521,6 @@ <data android:host="home"/> <data android:host="home_collections"/> <data android:host="install_search_widget"/> - <data android:host="make_default_browser"/> <data android:host="open"/> <data android:host="settings"/> <data android:host="settings_accessibility"/> @@ -560,54 +559,6 @@ android:exported="true" android:excludeFromRecents="true" > - <!-- - Respond to `Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER)` - --> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.APP_BROWSER"/> - <category android:name="android.intent.category.DEFAULT"/> - </intent-filter> - - <intent-filter> - <action android:name="android.intent.action.VIEW" /> - - <category android:name="android.intent.category.DEFAULT" /> - <category android:name="android.intent.category.BROWSABLE" /> - <category android:name="mozilla.components.pwa.category.SHORTCUT" /> - <data android:scheme="http" /> - <data android:scheme="https" /> - </intent-filter> - - <!--Exposed specific deep links for third-party apps to open wallpaper settings.--> - <intent-filter> - <action android:name="android.intent.action.VIEW" /> - <category android:name="android.intent.category.BROWSABLE" /> - <category android:name="android.intent.category.DEFAULT" /> - <data android:scheme="${deepLinkScheme}" - android:host="settings_wallpapers"/> - </intent-filter> - - <intent-filter> - <action android:name="android.intent.action.VIEW" /> - - <category android:name="android.intent.category.BROWSABLE" /> - <category android:name="android.intent.category.DEFAULT" /> - - <data android:scheme="http" /> - <data android:scheme="https" /> - <data android:mimeType="text/html" /> - <data android:mimeType="text/plain" /> - <data android:mimeType="application/xhtml+xml" /> - </intent-filter> - -<!-- - <intent-filter> - <action android:name="android.intent.action.SEND" /> - <category android:name="android.intent.category.DEFAULT" /> - <data android:mimeType="text/plain" /> - </intent-filter> ---> <intent-filter> <action android:name="android.intent.action.SEARCH" /> ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt ===================================== @@ -615,8 +615,6 @@ class SettingsFragment : PreferenceFragmentCompat(), SystemInsetsPaddedFragment, val debuggingKey = getPreferenceKey(R.string.pref_key_remote_debugging) val preferenceLeakCanary = findPreference<Preference>(leakKey) val preferenceRemoteDebugging = findPreference<Preference>(debuggingKey) - val preferenceMakeDefaultBrowser = - requirePreference<DefaultBrowserPreference>(R.string.pref_key_make_default_browser) // Copied from PrivateBrowsingFragment with some removals requirePreference<SwitchPreferenceCompat>(R.string.pref_key_allow_screenshots_in_private_mode).apply { @@ -648,12 +646,6 @@ class SettingsFragment : PreferenceFragmentCompat(), SystemInsetsPaddedFragment, true } - preferenceMakeDefaultBrowser.apply { - updateSwitch() - onPreferenceClickListener = - getClickListenerForMakeDefaultBrowser() - } - val preferenceStartProfiler = findPreference<Preference>(getPreferenceKey(R.string.pref_key_start_profiler)) @@ -700,30 +692,6 @@ class SettingsFragment : PreferenceFragmentCompat(), SystemInsetsPaddedFragment, setupConnectionPreferences() } - private val setToDefaultPromptRequestLauncher: ActivityResultLauncher<Intent> = - registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> - with(requireContext()) { - maybeNavigateToSystemSetToDefaultAction(result.resultCode, settings(), dateTimeProvider) { - navigateToDefaultBrowserAppsSettings(BuildManufacturerChecker()) - } - } - } - - /** - * For >=Q -> Use new RoleManager API to show in-app browser switching dialog. - * For <Q && >=N -> Navigate user to Android Default Apps Settings. - * For <N -> Open sumo page to show user how to change default app. - */ - private fun getClickListenerForMakeDefaultBrowser(): Preference.OnPreferenceClickListener { - return Preference.OnPreferenceClickListener { - maybeRequestDefaultBrowserPrompt( - WeakReference((requireActivity() as? HomeActivity)), - setToDefaultPromptRequestLauncher, - ) - true - } - } - private fun navigateFromSettings(directions: NavDirections) { view?.findNavController()?.let { navController -> if (navController.currentDestination?.id == R.id.settingsFragment) { ===================================== mobile/android/fenix/app/src/main/res/xml/preferences.xml ===================================== @@ -108,11 +108,6 @@ app:iconSpaceReserved="false" app:isPreferenceVisible="false" android:title="@string/preferences_import_bookmarks" /> - - <org.mozilla.fenix.settings.DefaultBrowserPreference - android:key="@string/pref_key_make_default_browser" - app:iconSpaceReserved="false" - android:title="@string/preferences_set_as_default_browser" /> </androidx.preference.PreferenceCategory> <androidx.preference.PreferenceCategory View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/631e5e4… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/631e5e4… 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
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-152.0a1-16.0-2] fixup! Firefox preference overrides.
by henry (@henry) 08 Jun '26

08 Jun '26
henry pushed to branch mullvad-browser-152.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: bc769667 by Henry Wilkes at 2026-06-08T17:12:43+01:00 fixup! Firefox preference overrides. BB 44857: Drop browser.display.use_system_colors. - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -570,11 +570,6 @@ pref("pdfjs.disabled", false, locked); // tor-browser#43850. Keep forced colors off by default for all platforms. // Upstream sets a value of "0" for Windows. pref("browser.display.document_color_use", 1); -// Bug 40057: Ensure system colors are not used for CSS4 colors. -// FIXME: This preference seems to be unread since bugzilla bug 1898096, but -// still exists in the static preference list. Remove when upstream removes -// this or confirms it will not be used again in the future. -pref("browser.display.use_system_colors", false); // tor-browser#43366: do not use system accent color in inputs. // See also https://bugzilla.mozilla.org/show_bug.cgi?id=1861362. pref("widget.non-native-theme.use-theme-accent", false); View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/bc7… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/bc7… 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
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-152.0a1-16.0-2] fixup! Firefox preference overrides.
by henry (@henry) 08 Jun '26

08 Jun '26
henry pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 7846ef4d by Henry Wilkes at 2026-06-08T16:11:54+00:00 fixup! Firefox preference overrides. BB 44857: Drop browser.display.use_system_colors. - - - - - 1 changed file: - browser/app/profile/001-base-profile.js Changes: ===================================== browser/app/profile/001-base-profile.js ===================================== @@ -570,11 +570,6 @@ pref("pdfjs.disabled", false, locked); // tor-browser#43850. Keep forced colors off by default for all platforms. // Upstream sets a value of "0" for Windows. pref("browser.display.document_color_use", 1); -// Bug 40057: Ensure system colors are not used for CSS4 colors. -// FIXME: This preference seems to be unread since bugzilla bug 1898096, but -// still exists in the static preference list. Remove when upstream removes -// this or confirms it will not be used again in the future. -pref("browser.display.use_system_colors", false); // tor-browser#43366: do not use system accent color in inputs. // See also https://bugzilla.mozilla.org/show_bug.cgi?id=1861362. pref("widget.non-native-theme.use-theme-accent", false); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/7846ef4… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/7846ef4… 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
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-152.0a1-16.0-2] fixup! BB 44711: Hide unwanted setting controls in Base Browser.
by henry (@henry) 08 Jun '26

08 Jun '26
henry pushed to branch mullvad-browser-152.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: 83c5fe5c by Henry Wilkes at 2026-06-08T17:09:53+01:00 fixup! BB 44711: Hide unwanted setting controls in Base Browser. BB 45018: Add resistFingerprinting settings prior to importing other modules. Also, remove a stray "resistFingeprinting" Setting definition in privacy.mjs that should have been removed in the 152 rebase. - - - - - 2 changed files: - browser/components/preferences/config/privacy.mjs - browser/components/preferences/main.js Changes: ===================================== browser/components/preferences/config/privacy.mjs ===================================== @@ -3582,11 +3582,6 @@ Preferences.addSetting({ }, }); -Preferences.addSetting({ - id: "resistFingerprinting", - pref: "privacy.resistFingerprinting", -}); - Preferences.addSetting({ id: "resistFingerprintingPBM", pref: "privacy.resistFingerprinting.pbmode", ===================================== browser/components/preferences/main.js ===================================== @@ -39,6 +39,16 @@ ChromeUtils.defineESModuleGetters(this, { "resource://autofill/FormAutofillPreferences.sys.mjs", }); +// Rather than add "privacy.resistFingerprinting" preference and the +// "resistFingerprinting" Setting in privacy.mjs, we add them early *prior* to +// importing any config/ modules which require it. +// See tor-browser#44630 and tor-browser#45018. +Preferences.add({ id: "privacy.resistFingerprinting", type: "bool" }); +Preferences.addSetting({ + id: "resistFingerprinting", + pref: "privacy.resistFingerprinting", +}); + ChromeUtils.importESModule( "chrome://browser/content/preferences/config/accessibility.mjs", { global: "current" } @@ -93,10 +103,6 @@ function canShowAiFeature(featureSetting, defaultSetting) { } Preferences.addAll([ - // Rather than add "privacy.resistFingerprinting" in privacy.js, we add it - // early so we can define the "resistFingerprinting" `Setting` in this file. - // See below. See tor-browser#44630. - { id: "privacy.resistFingerprinting", type: "bool" }, // Startup { id: "browser.startup.page", type: "int" }, { id: "browser.startup.windowsLaunchOnLogin.enabled", type: "bool" }, @@ -129,18 +135,6 @@ if (AppConstants.HAVE_SHELL_SERVICE) { ]); } -// Rather than add "resistFingerprinting" in privacy.js, we add it to the -// settings early so we can have it be part of the setting config's `deps` field -// early. See tor-browser#44630. -// In particular, `Setting.deps` is lazy set. For many settings, this will only -// be set *after* all settings have been added. However, for settings with a -// `setup` field, the `deps` value will be set during construction, so we need -// the corresponding dependency available prior to construction. -Preferences.addSetting({ - id: "resistFingerprinting", - pref: "privacy.resistFingerprinting", -}); - Preferences.addSetting({ id: "privateBrowsingAutoStart", pref: "browser.privatebrowsing.autostart", View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/83c… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/83c… 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
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-152.0a1-16.0-2] fixup! BB 44711: Hide unwanted setting controls in Base Browser.
by henry (@henry) 08 Jun '26

08 Jun '26
henry pushed to branch tor-browser-152.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: c92588e8 by Henry Wilkes at 2026-06-08T16:06:41+00:00 fixup! BB 44711: Hide unwanted setting controls in Base Browser. BB 45018: Add resistFingerprinting settings prior to importing other modules. Also, remove a stray "resistFingeprinting" Setting definition in privacy.mjs that should have been removed in the 152 rebase. - - - - - 2 changed files: - browser/components/preferences/config/privacy.mjs - browser/components/preferences/main.js Changes: ===================================== browser/components/preferences/config/privacy.mjs ===================================== @@ -3580,11 +3580,6 @@ Preferences.addSetting({ }, }); -Preferences.addSetting({ - id: "resistFingerprinting", - pref: "privacy.resistFingerprinting", -}); - Preferences.addSetting({ id: "resistFingerprintingPBM", pref: "privacy.resistFingerprinting.pbmode", ===================================== browser/components/preferences/main.js ===================================== @@ -39,6 +39,16 @@ ChromeUtils.defineESModuleGetters(this, { "resource://autofill/FormAutofillPreferences.sys.mjs", }); +// Rather than add "privacy.resistFingerprinting" preference and the +// "resistFingerprinting" Setting in privacy.mjs, we add them early *prior* to +// importing any config/ modules which require it. +// See tor-browser#44630 and tor-browser#45018. +Preferences.add({ id: "privacy.resistFingerprinting", type: "bool" }); +Preferences.addSetting({ + id: "resistFingerprinting", + pref: "privacy.resistFingerprinting", +}); + ChromeUtils.importESModule( "chrome://browser/content/preferences/config/accessibility.mjs", { global: "current" } @@ -93,10 +103,6 @@ function canShowAiFeature(featureSetting, defaultSetting) { } Preferences.addAll([ - // Rather than add "privacy.resistFingerprinting" in privacy.js, we add it - // early so we can define the "resistFingerprinting" `Setting` in this file. - // See below. See tor-browser#44630. - { id: "privacy.resistFingerprinting", type: "bool" }, // Startup { id: "browser.startup.page", type: "int" }, { id: "browser.startup.windowsLaunchOnLogin.enabled", type: "bool" }, @@ -129,18 +135,6 @@ if (AppConstants.HAVE_SHELL_SERVICE) { ]); } -// Rather than add "resistFingerprinting" in privacy.js, we add it to the -// settings early so we can have it be part of the setting config's `deps` field -// early. See tor-browser#44630. -// In particular, `Setting.deps` is lazy set. For many settings, this will only -// be set *after* all settings have been added. However, for settings with a -// `setup` field, the `deps` value will be set during construction, so we need -// the corresponding dependency available prior to construction. -Preferences.addSetting({ - id: "resistFingerprinting", - pref: "privacy.resistFingerprinting", -}); - Preferences.addSetting({ id: "privateBrowsingAutoStart", pref: "browser.privatebrowsing.autostart", View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/c92588e… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/c92588e… 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
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • ...
  • 2061
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.