tbb-commits
Threads by month
- ----- 2025 -----
- 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
- 18606 discussions

[Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Implement Android-native Connection Assist UI
by Dan Ballard (@dan) 01 May '24
by Dan Ballard (@dan) 01 May '24
01 May '24
Dan Ballard pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android
Commits:
4d86739b by clairehurst at 2024-04-30T15:25:18-06:00
fixup! Implement Android-native Connection Assist UI
- - - - -
6 changed files:
- + fenix/app/src/main/java/org/mozilla/fenix/tor/ConnectAssistUiState.kt
- fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
- fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
- fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt
- + fenix/app/src/main/res/drawable/browser_location.xml
- fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml
Changes:
=====================================
fenix/app/src/main/java/org/mozilla/fenix/tor/ConnectAssistUiState.kt
=====================================
@@ -0,0 +1,288 @@
+package org.mozilla.fenix.tor
+
+import androidx.annotation.ColorRes
+import androidx.annotation.DrawableRes
+import androidx.annotation.IntRange
+import androidx.annotation.StringRes
+import org.mozilla.fenix.R
+
+enum class ConnectAssistUiState(
+ val progressBarVisible: Boolean,
+ @IntRange(0, 100) var progress: Int = 0,
+ @ColorRes val progressTintColorResource: Int? = null,
+ val backButtonVisible: Boolean,
+ val settingsButtonVisible: Boolean,
+ val torConnectImageVisible: Boolean,
+ @DrawableRes val torConnectImageResource: Int = R.drawable.connect,
+ val titleLargeTextViewVisible: Boolean,
+ @StringRes val titleLargeTextViewTextStringResource: Int = R.string.connection_assist_tor_connect_title,
+ val titleDescriptionVisible: Boolean,
+ @StringRes val learnMoreStringResource: Int? = null,
+ @StringRes val internetErrorDescription: Int? = null,
+ @StringRes val internetErrorDescription1: Int? = null,
+ @StringRes val internetErrorDescription2: Int? = null,
+ @StringRes val titleDescriptionTextStringResource: Int? = R.string.preferences_tor_network_settings_explanation,
+ val quickstartSwitchVisible: Boolean,
+ val unblockTheInternetInCountryDescriptionVisible: Boolean,
+ val countryDropDownVisible: Boolean,
+ val torBootstrapButton1Visible: Boolean,
+ @StringRes val torBootstrapButton1TextStringResource: Int = R.string.tor_bootstrap_connect,
+ val torBootstrapButton1ShouldShowTryingABridge: Boolean = false,
+ val torBootstrapButton2Visible: Boolean,
+ @StringRes val torBootstrapButton2TextStringResource: Int? = R.string.connection_assist_configure_connection_button,
+ val torBootstrapButton2ShouldOpenSettings: Boolean = true,
+ val wordmarkLogoVisible: Boolean,
+) {
+ Splash(
+ progressBarVisible = false,
+ backButtonVisible = false,
+ settingsButtonVisible = false,
+ torConnectImageVisible = false,
+ titleLargeTextViewVisible = false,
+ titleDescriptionVisible = false,
+ quickstartSwitchVisible = false,
+ unblockTheInternetInCountryDescriptionVisible = false,
+ countryDropDownVisible = false,
+ torBootstrapButton1Visible = false,
+ torBootstrapButton2Visible = false,
+ wordmarkLogoVisible = true,
+ ),
+ Configuring(
+ progressBarVisible = false,
+ progress = 0,
+ backButtonVisible = false,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.connect,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_tor_connect_title,
+ titleDescriptionVisible = true,
+ titleDescriptionTextStringResource = R.string.preferences_tor_network_settings_explanation,
+ quickstartSwitchVisible = true,
+ unblockTheInternetInCountryDescriptionVisible = false,
+ countryDropDownVisible = false,
+ torBootstrapButton1Visible = true,
+ torBootstrapButton2Visible = true,
+ torBootstrapButton2TextStringResource = R.string.connection_assist_configure_connection_button,
+ torBootstrapButton2ShouldOpenSettings = true,
+ wordmarkLogoVisible = false,
+ ),
+ Bootstrapping(
+ progressBarVisible = true,
+ progress = 0,
+ backButtonVisible = false,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.connect,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_connecting_title,
+ titleDescriptionVisible = true,
+ titleDescriptionTextStringResource = R.string.preferences_tor_network_settings_explanation,
+ quickstartSwitchVisible = true,
+ unblockTheInternetInCountryDescriptionVisible = false,
+ countryDropDownVisible = false,
+ torBootstrapButton1Visible = false,
+ torBootstrapButton2Visible = true,
+ torBootstrapButton2TextStringResource = R.string.btn_cancel,
+ torBootstrapButton2ShouldOpenSettings = false,
+ wordmarkLogoVisible = false,
+ ),
+ InternetError(
+ progressBarVisible = true,
+ progress = 100,
+ progressTintColorResource = R.color.warning_yellow,
+ backButtonVisible = true,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.globe_broken,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_internet_error_title,
+ titleDescriptionVisible = true,
+ learnMoreStringResource = R.string.connection_assist_internet_error_learn_more,
+ internetErrorDescription = R.string.connection_assist_internet_error_description,
+ titleDescriptionTextStringResource = null,
+ quickstartSwitchVisible = false,
+ unblockTheInternetInCountryDescriptionVisible = false,
+ countryDropDownVisible = false,
+ torBootstrapButton1Visible = true,
+ torBootstrapButton1TextStringResource = R.string.connection_assist_internet_error_try_again,
+ torBootstrapButton2Visible = true,
+ torBootstrapButton2TextStringResource = R.string.connection_assist_configure_connection_button,
+ torBootstrapButton2ShouldOpenSettings = true,
+ wordmarkLogoVisible = false,
+ ),
+ TryingAgain(
+ progressBarVisible = true,
+ progress = 0,
+ progressTintColorResource = null,
+ backButtonVisible = true,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.connect,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_trying_again_waiting_title,
+ titleDescriptionVisible = true,
+ learnMoreStringResource = R.string.connection_assist_internet_error_learn_more,
+ internetErrorDescription = R.string.connection_assist_internet_error_description,
+ titleDescriptionTextStringResource = null,
+ quickstartSwitchVisible = false,
+ unblockTheInternetInCountryDescriptionVisible = false,
+ countryDropDownVisible = false,
+ torBootstrapButton1Visible = false,
+ torBootstrapButton2Visible = true,
+ torBootstrapButton2TextStringResource = R.string.btn_cancel,
+ torBootstrapButton2ShouldOpenSettings = false,
+ wordmarkLogoVisible = false,
+ ),
+ TryABridge(
+ progressBarVisible = true,
+ progress = 100,
+ progressTintColorResource = R.color.warning_yellow,
+ backButtonVisible = true,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.connect_broken,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_cant_connect_to_tor_title,
+ titleDescriptionVisible = true,
+ learnMoreStringResource = R.string.connection_assist_internet_error_learn_more,
+ internetErrorDescription = R.string.connection_assist_try_a_bridge_description,
+ titleDescriptionTextStringResource = null,
+ quickstartSwitchVisible = false,
+ unblockTheInternetInCountryDescriptionVisible = true,
+ countryDropDownVisible = true,
+ torBootstrapButton1Visible = true,
+ torBootstrapButton1TextStringResource = R.string.connection_assist_try_a_bridge_button,
+ torBootstrapButton1ShouldShowTryingABridge = true,
+ torBootstrapButton2Visible = false,
+ torBootstrapButton2TextStringResource = null,
+ torBootstrapButton2ShouldOpenSettings = true,
+ wordmarkLogoVisible = false,
+ ),
+ TryingABridge(
+ progressBarVisible = true,
+ progress = 0,
+ progressTintColorResource = null,
+ backButtonVisible = true,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.connect,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_trying_a_bridge_title,
+ titleDescriptionVisible = true,
+ learnMoreStringResource = R.string.connection_assist_internet_error_learn_more,
+ internetErrorDescription = R.string.connection_assist_try_a_bridge_description,
+ titleDescriptionTextStringResource = null,
+ quickstartSwitchVisible = true,
+ unblockTheInternetInCountryDescriptionVisible = false,
+ countryDropDownVisible = false,
+ torBootstrapButton1Visible = false,
+ torBootstrapButton2Visible = true,
+ torBootstrapButton2TextStringResource = R.string.btn_cancel,
+ torBootstrapButton2ShouldOpenSettings = false,
+ wordmarkLogoVisible = false,
+ ),
+ LocationError(
+ progressBarVisible = true,
+ progress = 100,
+ progressTintColorResource = R.color.warning_yellow,
+ backButtonVisible = true,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.browser_location,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_location_error_title,
+ titleDescriptionVisible = true,
+ learnMoreStringResource = R.string.connection_assist_location_error_learn_more_link,
+ internetErrorDescription = R.string.connection_assist_location_error_description,
+ internetErrorDescription1 = R.string.connection_assist_find_bridge_location_description,
+ internetErrorDescription2 = R.string.connection_assist_select_country_try_again,
+ titleDescriptionTextStringResource = null,
+ quickstartSwitchVisible = false,
+ unblockTheInternetInCountryDescriptionVisible = true,
+ countryDropDownVisible = true,
+ torBootstrapButton1Visible = true,
+ torBootstrapButton1TextStringResource = R.string.connection_assist_try_a_bridge_button,
+ torBootstrapButton1ShouldShowTryingABridge = true,
+ torBootstrapButton2Visible = false,
+ torBootstrapButton2TextStringResource = null,
+ torBootstrapButton2ShouldOpenSettings = true,
+ wordmarkLogoVisible = false,
+ ),
+ LocationCheck(
+ progressBarVisible = true,
+ progress = 100,
+ progressTintColorResource = R.color.warning_yellow,
+ backButtonVisible = true,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.browser_location,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_location_check_title,
+ titleDescriptionVisible = true,
+ learnMoreStringResource = R.string.connection_assist_location_error_learn_more_link,
+ internetErrorDescription = R.string.connection_assist_location_error_description,
+ internetErrorDescription1 = R.string.connection_assist_find_bridge_location_description,
+ internetErrorDescription2 = R.string.connection_assist_select_country_try_again,
+ titleDescriptionTextStringResource = null,
+ quickstartSwitchVisible = false,
+ unblockTheInternetInCountryDescriptionVisible = true,
+ countryDropDownVisible = true,
+ torBootstrapButton1Visible = true,
+ torBootstrapButton1TextStringResource = R.string.connection_assist_try_a_bridge_button,
+ torBootstrapButton1ShouldShowTryingABridge = true,
+ torBootstrapButton2Visible = false,
+ torBootstrapButton2TextStringResource = null,
+ torBootstrapButton2ShouldOpenSettings = true,
+ wordmarkLogoVisible = false,
+ ),
+ LastTry(
+ progressBarVisible = true,
+ progress = 0,
+ backButtonVisible = true,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.connect,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_last_try_title,
+ titleDescriptionVisible = true,
+ learnMoreStringResource = R.string.connection_assist_location_error_learn_more_link,
+ internetErrorDescription = R.string.connection_assist_location_error_description,
+ internetErrorDescription1 = R.string.connection_assist_find_bridge_location_description,
+ internetErrorDescription2 = R.string.connection_assist_select_country_try_again,
+ titleDescriptionTextStringResource = null,
+ quickstartSwitchVisible = true,
+ unblockTheInternetInCountryDescriptionVisible = false,
+ countryDropDownVisible = false,
+ torBootstrapButton1Visible = false,
+ torBootstrapButton2Visible = true,
+ torBootstrapButton2TextStringResource = R.string.btn_cancel,
+ torBootstrapButton2ShouldOpenSettings = false,
+ wordmarkLogoVisible = false,
+ ),
+ FinalError(
+ progressBarVisible = true,
+ progress = 100,
+ progressTintColorResource = R.color.warning_yellow,
+ backButtonVisible = true,
+ settingsButtonVisible = true,
+ torConnectImageVisible = true,
+ torConnectImageResource = R.drawable.connect_broken,
+ titleLargeTextViewVisible = true,
+ titleLargeTextViewTextStringResource = R.string.connection_assist_final_error_title,
+ titleDescriptionVisible = true,
+ learnMoreStringResource = R.string.connection_assist_final_error_learn_more_link,
+ internetErrorDescription = R.string.connection_assist_final_error_description1,
+ internetErrorDescription1 = R.string.connection_assist_final_error_troubleshoot_connection_link,
+ titleDescriptionTextStringResource = null,
+ quickstartSwitchVisible = false,
+ unblockTheInternetInCountryDescriptionVisible = false,
+ countryDropDownVisible = false,
+ torBootstrapButton1Visible = true,
+ torBootstrapButton1TextStringResource = R.string.connection_assist_internet_error_try_again,
+ torBootstrapButton2Visible = true,
+ torBootstrapButton2TextStringResource = R.string.connection_assist_configure_connection_button,
+ torBootstrapButton2ShouldOpenSettings = true,
+ wordmarkLogoVisible = false,
+ )
+}
=====================================
fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
=====================================
@@ -24,27 +24,35 @@ import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.navigation.fragment.findNavController
import kotlinx.coroutines.launch
+import mozilla.components.support.base.feature.UserInteractionHandler
import org.mozilla.fenix.R
import org.mozilla.fenix.databinding.FragmentTorConnectionAssistBinding
import org.mozilla.fenix.ext.hideToolbar
-class TorConnectionAssistFragment : Fragment() {
+class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
private val TAG = "TorConnectionAssistFrag"
- private var _binding: FragmentTorConnectionAssistBinding? = null
- private val binding get() = _binding!!
-
private val viewModel: TorConnectionAssistViewModel by viewModels()
+ private lateinit var binding: FragmentTorConnectionAssistBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?,
): View {
- _binding = FragmentTorConnectionAssistBinding.inflate(
+ binding = FragmentTorConnectionAssistBinding.inflate(
inflater, container, false,
)
+ viewLifecycleOwner.lifecycleScope.launch {
+ repeatOnLifecycle(Lifecycle.State.STARTED) {
+ viewModel.torConnectScreen.collect { screen ->
+ Log.d(TAG, "torConnectScreen is $screen")
+ showScreen(screen)
+ }
+ }
+ }
+
return binding.root
}
@@ -56,23 +64,6 @@ class TorConnectionAssistFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- viewModel.torConnectState.collect { torConnectState ->
- Log.d(TAG, "torConnectState is ${torConnectState.state}")
- when (torConnectState) {
- TorConnectState.Initial -> showSplash()
- TorConnectState.Configuring -> showConfiguring()
- TorConnectState.AutoBootstrapping -> showBootstrapping()
- TorConnectState.Bootstrapping -> showBootstrapping()
- TorConnectState.Error -> showError()
- TorConnectState.Bootstrapped -> openHome()
- TorConnectState.Disabled -> openHome()
- }
- }
- }
- }
-
viewModel.progress().observe(
viewLifecycleOwner,
) { progress ->
@@ -88,243 +79,96 @@ class TorConnectionAssistFragment : Fragment() {
) {
binding.quickstartSwitch.isChecked = it == true
}
-
- binding.quickstartSwitch.setOnCheckedChangeListener { _, isChecked ->
- viewModel.handleQuickstartChecked(isChecked)
- }
}
-
- private fun showSplash() {
- binding.torBootstrapProgressBar.visibility = View.GONE
- binding.settingsButton.visibility = View.GONE
- binding.backButton.visibility = View.GONE
- binding.torConnectImage.visibility = View.GONE
- binding.titleLargeTextView.visibility = View.GONE
- binding.titleDescription.visibility = View.GONE
- binding.quickstartSwitch.visibility = View.GONE
- binding.torBootstrapButton1.visibility = View.GONE
- binding.torBootstrapButton2.visibility = View.GONE
- binding.wordmarkLogo.visibility = View.VISIBLE
+ override fun onDestroyView() {
+ super.onDestroyView()
}
+ private fun showScreen(screen: ConnectAssistUiState) {
+ binding.apply {
+ torBootstrapProgressBar.visibility = if (screen.progressBarVisible) View.VISIBLE else View.GONE
+ torBootstrapProgressBar.progress = screen.progress
+ torBootstrapProgressBar.progressTintList =
+ screen.progressTintColorResource?.let {
+ AppCompatResources.getColorStateList(requireContext(),
+ it
+ )
+ }
- private fun showConfiguring() {
- binding.wordmarkLogo.visibility = View.GONE
-
- binding.torBootstrapProgressBar.visibility = View.INVISIBLE
- binding.torBootstrapProgressBar.progress = 0
- binding.backButton.visibility = View.INVISIBLE
- binding.settingsButton.visibility = View.VISIBLE
- binding.settingsButton.setOnClickListener {
- viewModel.cancelTorBootstrap()
- openSettings()
- }
- binding.torConnectImage.visibility = View.VISIBLE
- binding.torConnectImage.setImageResource(R.drawable.connect)
- binding.titleLargeTextView.visibility = View.VISIBLE
- binding.titleLargeTextView.text = getString(R.string.connection_assist_tor_connect_title)
- binding.titleDescription.visibility = View.VISIBLE
- binding.titleDescription.text =
- getString(R.string.preferences_tor_network_settings_explanation)
- binding.quickstartSwitch.visibility = View.VISIBLE
- binding.quickstartSwitch.isChecked = viewModel.quickstartToggle().value == true
-
- binding.unblockTheInternetInCountryDescription.visibility = View.GONE
- binding.countryDropDown.visibility = View.GONE
+ settingsButton.visibility = if (screen.settingsButtonVisible) View.VISIBLE else View.GONE
+ settingsButton.setOnClickListener {
+ viewModel.cancelTorBootstrap()
+ openSettings()
+ }
- binding.torBootstrapButton1.visibility = View.VISIBLE
- binding.torBootstrapButton1.text = getString(R.string.tor_bootstrap_connect)
- binding.torBootstrapButton1.setOnClickListener {
- viewModel.handleConnect(lifecycleScope = lifecycleScope)
- showBootstrapping()
- }
+ backButton.visibility = if (screen.backButtonVisible) View.VISIBLE else View.INVISIBLE
+ backButton.setOnClickListener {
+ viewModel.handleBackButtonPressed()
+ }
- binding.torBootstrapButton2.visibility = View.VISIBLE
- binding.torBootstrapButton2.text =
- getString(R.string.connection_assist_configure_connection_button)
- binding.torBootstrapButton2.setOnClickListener {
- viewModel.cancelTorBootstrap()
- openTorConnectionSettings()
- }
- }
+ torConnectImage.visibility = if (screen.torConnectImageVisible) View.VISIBLE else View.GONE
+ torConnectImage.setImageResource(screen.torConnectImageResource)
+
+ titleLargeTextView.visibility = if (screen.titleLargeTextViewVisible) View.VISIBLE else View.GONE
+ titleLargeTextView.text = getString(screen.titleLargeTextViewTextStringResource)
+ titleDescription.visibility = if (screen.titleDescriptionVisible) View.VISIBLE else View.GONE
+ if (screen.learnMoreStringResource != null && screen.internetErrorDescription != null) {
+ val learnMore: String = getString(screen.learnMoreStringResource)
+ val internetErrorDescription: String =
+ if (screen.internetErrorDescription1 == null) {
+ getString(
+ screen.internetErrorDescription,
+ learnMore,
+ )
+ } else if (screen.internetErrorDescription2 == null) {
+ getString(
+ screen.internetErrorDescription,
+ getString(screen.internetErrorDescription1),
+ learnMore,
+ )
+ } else {
+ getString(
+ screen.internetErrorDescription,
+ getString(screen.internetErrorDescription1),
+ getString(screen.internetErrorDescription2),
+ learnMore,
+ )
+ }
+ handleDescriptionWithClickable(internetErrorDescription, learnMore)
+ } else if (screen.titleDescriptionTextStringResource != null) {
+ titleDescription.text = getString(screen.titleDescriptionTextStringResource)
+ }
+ quickstartSwitch.visibility = if (screen.quickstartSwitchVisible) View.VISIBLE else View.GONE
+ quickstartSwitch.isChecked = viewModel.quickstartToggle().value == true
+ quickstartSwitch.setOnCheckedChangeListener { _, isChecked ->
+ viewModel.handleQuickstartChecked(isChecked)
+ }
- private fun showBootstrapping() {
- binding.wordmarkLogo.visibility = View.GONE
+ unblockTheInternetInCountryDescription.visibility = if (screen.unblockTheInternetInCountryDescriptionVisible) View.VISIBLE else View.GONE
+ countryDropDown.visibility = if (screen.countryDropDownVisible) View.VISIBLE else View.GONE
- binding.torBootstrapProgressBar.visibility = View.VISIBLE
- binding.torBootstrapProgressBar.progress = 0
- binding.backButton.visibility = View.INVISIBLE
- binding.settingsButton.visibility = View.VISIBLE
- binding.settingsButton.setOnClickListener {
- viewModel.cancelTorBootstrap()
- openSettings()
- }
- binding.torConnectImage.visibility = View.VISIBLE
- binding.torConnectImage.setImageResource(R.drawable.connect)
- binding.titleLargeTextView.visibility = View.VISIBLE
- binding.titleLargeTextView.text = getString(R.string.connection_assist_connecting_title)
- binding.titleDescription.visibility = View.VISIBLE
- binding.titleDescription.text =
- getString(R.string.preferences_tor_network_settings_explanation)
- binding.quickstartSwitch.visibility = View.VISIBLE
- binding.quickstartSwitch.isChecked = viewModel.quickstartToggle().value == true
- binding.quickstartSwitch.jumpDrawablesToCurrentState()
- binding.torBootstrapButton1.visibility = View.INVISIBLE
- binding.torBootstrapButton2.visibility = View.VISIBLE
- binding.torBootstrapButton2.text = getString(R.string.btn_cancel)
- binding.torBootstrapButton2.setOnClickListener { viewModel.cancelTorBootstrap() }
- }
+ torBootstrapButton1.visibility = if (screen.torBootstrapButton1Visible) View.VISIBLE else View.GONE
+ torBootstrapButton1.text = getString(screen.torBootstrapButton1TextStringResource)
+ torBootstrapButton1.setOnClickListener { viewModel.handleButton1Pressed(screen, lifecycleScope) }
- private suspend fun showError() {
- viewModel.torError.collect {
- Log.d(
- TAG,
- "TorError: details = ${it?.details ?: "null details"}, message = ${it?.message ?: "null message"}",
- )
- when (viewModel.handleError(it)) {
- ErrorScreen.CantConnectToInternet -> showCantConnectToInternet()
- ErrorScreen.CantConnectToTorDirectly -> showCantConnectToTorDirectly()
- ErrorScreen.WeCouldntFindYourLocation -> showWeCouldntFindYourLocation()
- ErrorScreen.WereStillHavingTroubleConnecting -> showWereStillHavingTroubleConnecting()
- ErrorScreen.WeWerentAbleToConnectAutomatically -> showWeWerentAbleToConnectAutomatically()
- null -> {
- // no op
- Log.d(TAG, "ErrorScreen: null, nothing shown")
+ torBootstrapButton2.visibility = if (screen.torBootstrapButton2Visible) View.VISIBLE else View.GONE
+ torBootstrapButton2.text = screen.torBootstrapButton2TextStringResource?.let {
+ getString(
+ it
+ )
+ }
+ torBootstrapButton2.setOnClickListener {
+ viewModel.cancelTorBootstrap()
+ if (screen.torBootstrapButton2ShouldOpenSettings){
+ openTorConnectionSettings()
+ } else {
+ showScreen(ConnectAssistUiState.Configuring)
}
}
- }
- }
-
- private fun showCantConnectToInternet() {
- Log.d(TAG, "showCantConnectToInternet()")
- binding.torBootstrapProgressBar.visibility = View.VISIBLE
- binding.torBootstrapProgressBar.progressTintList =
- AppCompatResources.getColorStateList(requireContext(), R.color.warning_yellow)
- binding.torBootstrapProgressBar.progress = 100
-
- binding.backButton.visibility = View.VISIBLE
- binding.backButton.setOnClickListener {
- showConfiguring()
- }
-
- binding.torConnectImage.setImageResource(R.drawable.globe_broken)
- binding.titleLargeTextView.text = getString(R.string.connection_assist_internet_error_title)
- val learnMore: String = getString(R.string.connection_assist_internet_error_learn_more)
- val internetErrorDescription: String = getString(
- R.string.connection_assist_internet_error_description,
- learnMore,
- )
- handleDescriptionWithClickable(internetErrorDescription, learnMore)
-
- binding.quickstartSwitch.visibility = View.GONE
-
- binding.torBootstrapButton1.visibility = View.VISIBLE
- binding.torBootstrapButton1.text =
- getString(R.string.connection_assist_internet_error_try_again)
- binding.torBootstrapButton1.setOnClickListener {
- showTryingAgain()
- viewModel.handleConnect(lifecycleScope = lifecycleScope)
- }
-
- binding.torBootstrapButton2.text =
- getString(R.string.connection_assist_configure_connection_button)
- binding.torBootstrapButton2.setOnClickListener {
- openTorConnectionSettings()
- }
- }
-
- private fun showTryingAgain() {
- Log.d(TAG, "showTryingAgain()")
- binding.torBootstrapProgressBar.progress = 0
- binding.torBootstrapProgressBar.visibility = View.VISIBLE
- binding.torBootstrapProgressBar.progressTintList = null
- binding.torConnectImage.setImageResource(R.drawable.connect)
- binding.titleLargeTextView.text =
- getString(R.string.connection_assist_trying_again_waiting_title)
-
- binding.quickstartSwitch.visibility = View.GONE
- binding.torBootstrapButton1.visibility = View.INVISIBLE
- binding.torBootstrapButton2.visibility = View.VISIBLE
- binding.torBootstrapButton2.text = getString(R.string.btn_cancel)
- binding.torBootstrapButton2.setOnClickListener {
- viewModel.cancelTorBootstrap()
- showConfiguring()
- }
- }
-
- private fun showCantConnectToTorDirectly() {
- Log.d(TAG, "showCantConnectToTorDirectly()")
- binding.torBootstrapProgressBar.visibility = View.VISIBLE
- binding.torBootstrapProgressBar.progressTintList =
- AppCompatResources.getColorStateList(requireContext(), R.color.warning_yellow)
- binding.torBootstrapProgressBar.progress = 100
-
- binding.backButton.visibility = View.VISIBLE
- binding.backButton.setOnClickListener {
- showConfiguring()
- }
-
- binding.torConnectImage.setImageResource(R.drawable.globe_broken)
- binding.titleLargeTextView.text =
- getString(R.string.connection_assist_cant_connect_to_tor_title)
-
- val learnMore: String = getString(R.string.connection_assist_internet_error_learn_more)
- val tryABridge: String = getString(
- R.string.connection_assist_try_a_bridge_description,
- learnMore,
- )
- handleDescriptionWithClickable(tryABridge, learnMore)
-
- binding.quickstartSwitch.visibility = View.GONE
- binding.unblockTheInternetInCountryDescription.visibility = View.VISIBLE
- binding.countryDropDown.visibility = View.VISIBLE
- // TODO implement countryDropDown
-
- binding.torBootstrapButton1.visibility = View.VISIBLE
- binding.torBootstrapButton1.text = getString(R.string.connection_assist_try_a_bridge_button)
- binding.torBootstrapButton1.setOnClickListener {
- viewModel.tryABridge()
- showTryingABridge()
+ wordmarkLogo.visibility = if(screen.wordmarkLogoVisible) View.VISIBLE else View.GONE
}
- binding.torBootstrapButton2.visibility = View.GONE
- }
-
- private fun showTryingABridge() {
- Log.d(TAG, "showTryingABridge()")
- // TODO(Not implemented)
- binding.torBootstrapButton2.setOnClickListener {
- showTryingABridge()
- }
- }
-
- private fun showWeCouldntFindYourLocation() {
- Log.d(TAG, "showWeCouldntFindYourLocation()")
- // TODO(Not implemented)
- binding.torBootstrapButton2.setOnClickListener {
- showTryingABridge()
- }
- }
-
- private fun showWereStillHavingTroubleConnecting() {
- Log.d(TAG, "showWereStillHavingTroubleConnecting()")
- TODO("Not yet implemented")
- }
-
- private fun showTryingOneMoreTime() {
- Log.d(TAG, "showTryingOneMoreTime()")
- TODO("Not yet implemented")
- }
-
- private fun showWeWerentAbleToConnectAutomatically() {
- Log.d(TAG, "showWeWerentAbleToConnectAutomatically()")
- TODO("Not yet implemented")
- }
-
- private fun showUnknownError() {
- Log.d(TAG, "showUnknownError()")
- TODO("Not yet implemented")
}
/**
@@ -377,4 +221,9 @@ class TorConnectionAssistFragment : Fragment() {
),
)
}
+
+ override fun onBackPressed(): Boolean {
+ return viewModel.handleBackButtonPressed()
+ }
+
}
=====================================
fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
=====================================
@@ -23,11 +23,8 @@ class TorConnectionAssistViewModel(
private val _torController: TorControllerGV = components.torController as TorControllerGV
- private val _torConnectState = MutableStateFlow(TorConnectState.Initial)
- internal val torConnectState: StateFlow<TorConnectState> = _torConnectState
-
- private val _torError = MutableStateFlow(_torController.getLastErrorState())
- internal val torError: StateFlow<TorError?> = _torError
+ private val _torConnectScreen = MutableStateFlow(ConnectAssistUiState.Splash)
+ internal val torConnectScreen: StateFlow<ConnectAssistUiState> = _torConnectScreen
private val _progress = MutableLiveData(0)
fun progress(): LiveData<Int> {
@@ -45,7 +42,7 @@ class TorConnectionAssistViewModel(
_torController.registerTorListener(this)
}
- fun handleConnect(
+ private fun handleConnect(
withDebugLogging: Boolean = false,
lifecycleScope: LifecycleCoroutineScope? = null,
) {
@@ -61,6 +58,17 @@ class TorConnectionAssistViewModel(
_quickStartToggle.value = checked
}
+ fun handleButton1Pressed(
+ screen: ConnectAssistUiState,
+ lifecycleScope: LifecycleCoroutineScope?,
+ ) {
+ if (screen.torBootstrapButton1ShouldShowTryingABridge) {
+ tryABridge()
+ } else {
+ handleConnect(lifecycleScope = lifecycleScope)
+ }
+ }
+
fun cancelTorBootstrap() {
_torController.stopTor()
_torController.setTorStopped()
@@ -80,33 +88,126 @@ class TorConnectionAssistViewModel(
if (progress != null) {
_progress.value = progress.toInt()
}
- _torConnectState.value = _torController.lastKnownStatus
- _torError.value = _torController.getLastErrorState()
+
+ when (_torController.lastKnownStatus) {
+ TorConnectState.Initial -> _torConnectScreen.value = ConnectAssistUiState.Splash
+ TorConnectState.Configuring -> handleConfiguring()
+ TorConnectState.AutoBootstrapping -> handleBootstrap()
+ TorConnectState.Bootstrapping -> handleBootstrap()
+ TorConnectState.Error -> handleError()
+ else -> {}
+ }
+ }
+
+ private fun handleConfiguring() {
+ if (_torController.lastKnownError == null) {
+ _torConnectScreen.value = ConnectAssistUiState.Configuring
+ } else {
+ handleError()
+ }
+ }
+
+ private fun handleBootstrap() {
+ when (_torConnectScreen.value) {
+ ConnectAssistUiState.InternetError -> {
+ _torConnectScreen.value = ConnectAssistUiState.TryingAgain
+ }
+
+ ConnectAssistUiState.TryingAgain -> {
+ /** stay here */
+ }
+
+ ConnectAssistUiState.TryABridge -> {
+ _torConnectScreen.value = ConnectAssistUiState.TryingABridge
+ }
+
+ ConnectAssistUiState.LocationError -> {
+ _torConnectScreen.value = ConnectAssistUiState.TryingABridge
+ }
+
+ ConnectAssistUiState.TryingABridge -> {
+ /** stay here */
+ }
+
+ ConnectAssistUiState.LocationCheck -> {
+ _torConnectScreen.value = ConnectAssistUiState.LastTry
+ }
+
+ ConnectAssistUiState.LastTry -> {
+ /** stay here */
+ }
+
+ else -> _torConnectScreen.value = ConnectAssistUiState.Bootstrapping
+ }
+ }
+
+ private fun handleError() {
+ _torController.lastKnownError?.apply {
+ Log.d(
+ TAG,
+ "TorError(message = $message, details = $details, phase = $phase, reason = $reason",
+ )
+ // TODO better error handling
+ _torConnectScreen.value = ConnectAssistUiState.InternetError
+ }
}
override fun onTorStopped() {
Log.d(TAG, "onTorStopped()")
}
- internal fun handleError(it: TorError?): ErrorScreen? {
- // TODO(Only partly implemented)
- if (it?.message == null){
- return null
+ private fun tryABridge() {
+ if (!_torController.bridgesEnabled) {
+ _torController.bridgesEnabled = true
+ _torController.bridgeTransport =
+ TorBridgeTransportConfig.BUILTIN_OBFS4 // TODO select based on country
}
- return ErrorScreen.CantConnectToInternet
+ handleConnect(withDebugLogging = true)
}
- fun tryABridge() {
- // TODO("Try a bridge not enabled")
- // connect to bridge based on country
- // try connecting
+ fun handleBackButtonPressed(): Boolean {
+ when (torConnectScreen.value) {
+ ConnectAssistUiState.Splash -> return false
+ ConnectAssistUiState.Configuring -> return false
+ ConnectAssistUiState.Bootstrapping -> cancelTorBootstrap()
+ ConnectAssistUiState.InternetError -> {
+ _torController.lastKnownError = null
+ _torConnectScreen.value = ConnectAssistUiState.Configuring
+ }
+
+ ConnectAssistUiState.TryingAgain -> {
+ cancelTorBootstrap()
+ }
+
+ ConnectAssistUiState.TryABridge -> {
+ _torController.lastKnownError = null
+ _torConnectScreen.value = ConnectAssistUiState.Configuring
+ }
+
+ ConnectAssistUiState.TryingABridge -> {
+ _torController.stopTor()
+ _torConnectScreen.value = ConnectAssistUiState.TryABridge
+ }
+
+ ConnectAssistUiState.LocationError -> {
+ _torConnectScreen.value = ConnectAssistUiState.TryABridge
+ }
+
+ ConnectAssistUiState.LocationCheck -> {
+ _torConnectScreen.value = ConnectAssistUiState.LocationError
+ }
+
+ ConnectAssistUiState.LastTry -> {
+ _torController.stopTor()
+ _torConnectScreen.value = ConnectAssistUiState.LocationCheck
+ }
+
+ ConnectAssistUiState.FinalError -> {
+ _torConnectScreen.value = ConnectAssistUiState.LocationCheck
+ }
+ }
+ return true
}
-}
-internal enum class ErrorScreen {
- CantConnectToInternet,
- CantConnectToTorDirectly,
- WeCouldntFindYourLocation,
- WereStillHavingTroubleConnecting,
- WeWerentAbleToConnectAutomatically,
}
+
=====================================
fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt
=====================================
@@ -285,7 +285,7 @@ class TorControllerGV(
// TorEventsBootstrapStateChangeListener
override fun onBootstrapStateChange(newStateVal: String?) {
- Log.d(TAG, "onBootstrapStateChange($newStateVal)")
+ Log.d(TAG, "onBootstrapStateChange(newStateVal = $newStateVal)")
val newState: TorConnectState = TorConnectState.valueOf(newStateVal ?: "Error")
if (newState.isError() && wasTorBootstrapped) {
=====================================
fenix/app/src/main/res/drawable/browser_location.xml
=====================================
@@ -0,0 +1,17 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="40dp"
+ android:height="40dp"
+ android:viewportWidth="40"
+ android:viewportHeight="40">
+ <group>
+ <clip-path
+ android:pathData="M0,0h40v40h-40z"/>
+ <path
+ android:pathData="M19.332,28.605C19.332,23.853 23.361,20 28.332,20C33.303,20 37.332,23.853 37.332,28.605C37.332,32.002 32.736,36.822 30.113,39.296C29.636,39.748 28.997,40 28.332,40C27.667,40 27.028,39.748 26.551,39.296C23.928,36.822 19.332,32.001 19.332,28.605ZM26.865,24.958C27.33,24.766 27.829,24.667 28.332,24.667C29.349,24.667 30.324,25.07 31.043,25.789C31.761,26.508 32.165,27.483 32.165,28.5C32.165,29.517 31.761,30.492 31.043,31.211C30.324,31.93 29.349,32.333 28.332,32.333C27.829,32.333 27.33,32.234 26.865,32.042C26.4,31.849 25.977,31.566 25.621,31.211C25.265,30.855 24.983,30.432 24.791,29.967C24.598,29.502 24.499,29.003 24.499,28.5C24.499,27.997 24.598,27.498 24.791,27.033C24.983,26.568 25.265,26.146 25.621,25.789C25.977,25.434 26.4,25.151 26.865,24.958Z"
+ android:fillColor="#FFA436"
+ android:fillType="evenOdd"/>
+ <path
+ android:pathData="M38.509,22.9C38.721,21.771 38.832,20.607 38.832,19.417C38.832,9.061 30.438,0.667 20.082,0.667C9.727,0.667 1.332,9.061 1.332,19.417C1.332,29.772 9.727,38.167 20.082,38.167C20.825,38.167 21.559,38.124 22.279,38.039C19.438,34.942 16.665,31.167 16.665,28.233C16.665,25.223 17.971,22.499 20.082,20.526V14.846C22.098,14.846 23.809,16.151 24.416,17.962C25.33,17.658 26.298,17.458 27.301,17.375C26.412,14.225 23.517,11.917 20.082,11.917L20.082,9.221C25.042,9.221 29.175,12.764 30.089,17.456C31.169,17.608 32.2,17.899 33.161,18.308C32.598,11.578 26.957,6.292 20.082,6.292V3.596C28.819,3.596 35.903,10.679 35.903,19.417C35.903,19.589 35.9,19.761 35.894,19.933C36.942,20.767 37.83,21.771 38.509,22.9Z"
+ android:fillColor="#FBFBFE"/>
+ </group>
+</vector>
=====================================
fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml
=====================================
@@ -3,7 +3,6 @@
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/tor_bootstrap_background_gradient"
View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/4d8…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/4d8…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-build][main] Update rbm for rbm#40076
by boklm (@boklm) 01 May '24
by boklm (@boklm) 01 May '24
01 May '24
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
97043406 by Nicolas Vigier at 2024-05-01T10:10:41+02:00
Update rbm for rbm#40076
- - - - -
1 changed file:
- rbm
Changes:
=====================================
rbm
=====================================
@@ -1 +1 @@
-Subproject commit 05e32169dfad9f3cc3eb6aa3f93d9b7a1690290e
+Subproject commit 148d8541f177f318bfd8c8abfbf9fa96f581ceb8
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] 8 commits: fixup! Bug 30237: Add v3 onion services client authentication prompt
by richard (@richard) 30 Apr '24
by richard (@richard) 30 Apr '24
30 Apr '24
richard pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser
Commits:
795b62a7 by Henry Wilkes at 2024-04-25T10:32:13+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42542: Remove the OnionServicesAuthPrompt class.
The class is merged into OnionAuthPrompt. This currently only works when
only one tab triggers the prompt at a time.
Not linted to improve commit readability.
- - - - -
38d07333 by Henry Wilkes at 2024-04-25T10:32:14+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42542: Lint after removing OnionServicesAuthPrompt class.
- - - - -
a35c7a68 by Henry Wilkes at 2024-04-25T11:55:07+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42542: Re-handle showing errors.
Call "_showWarning" rather than "show" when we have an error.
Do not attempt to show the prompt if we cannot determine the onion
service id.
For the service id regex, use "^(.*\.)?" instead of "^(.*\.)*": since the
".*" is greedy, this can only ever match up to once.
- - - - -
df3374c4 by Henry Wilkes at 2024-04-30T11:11:39+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42542: Reset the authentication prompt when switching between two
authentication tabs.
We keep a record of which tab details are being shown in the
notification popup. We reset the prompt whenever we want to show
different details.
We also fetch elements and set event listeners (once) when we initialize
OnionAuthPrompt. In particular, the listeners should only react to the
shown details.
We also assume that elements with an ID exist in the DOM.
- - - - -
0cacad0c by Henry Wilkes at 2024-04-30T11:11:46+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42542: Follow recent coding conventions.
Do not prefix variable names with "a" and use triple equality.
- - - - -
82fa0a97 by Henry Wilkes at 2024-04-30T11:11:46+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42542: Use "keydown" instead of deprecated "keypress".
Also, stop handling "Escape" key since it is already handled by
PopupNotification.
- - - - -
78107767 by Henry Wilkes at 2024-04-30T11:11:47+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42542: Add documentation to OnionAuthPrompt.
- - - - -
170cb7ab by Henry Wilkes at 2024-04-30T11:11:47+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42542: Add a logger to OnionAuthPrompt.
- - - - -
2 changed files:
- browser/components/onionservices/content/authPopup.inc.xhtml
- browser/components/onionservices/content/authPrompt.js
Changes:
=====================================
browser/components/onionservices/content/authPopup.inc.xhtml
=====================================
@@ -5,7 +5,9 @@
<description id="tor-clientauth-notification-desc"/>
<label id="tor-clientauth-notification-learnmore"
class="text-link popup-notification-learnmore-link"
- is="text-link"/>
+ is="text-link"
+ href="about:manual#onion-services_onion-service-authentication"
+ useoriginprincipal="true"/>
<html:div>
<html:input id="tor-clientauth-notification-key" type="password"/>
<html:div id="tor-clientauth-warning"/>
=====================================
browser/components/onionservices/content/authPrompt.js
=====================================
@@ -2,350 +2,417 @@
"use strict";
-const OnionAuthPrompt = (function () {
+var OnionAuthPrompt = {
// Only import to our internal scope, rather than the global scope of
// browser.xhtml.
- const lazy = {};
- ChromeUtils.defineESModuleGetters(lazy, {
- TorProviderBuilder: "resource://gre/modules/TorProviderBuilder.sys.mjs",
- TorStrings: "resource://gre/modules/TorStrings.sys.mjs",
- CommonUtils: "resource://services-common/utils.sys.mjs",
- });
-
- // OnionServicesAuthPrompt objects run within the main/chrome process.
- // aReason is the topic passed within the observer notification that is
- // causing this auth prompt to be displayed.
- function OnionServicesAuthPrompt(aBrowser, aFailedURI, aReason, aOnionName) {
- this._browser = aBrowser;
- this._failedURI = aFailedURI;
- this._reasonForPrompt = aReason;
- this._onionHostname = aOnionName;
- }
-
- const topics = {
+ _lazy: {},
+
+ /**
+ * The topics to listen to.
+ *
+ * @type {Object<string, string>}
+ */
+ _topics: {
clientAuthMissing: "tor-onion-services-clientauth-missing",
clientAuthIncorrect: "tor-onion-services-clientauth-incorrect",
- };
-
- OnionServicesAuthPrompt.prototype = {
- show(aWarningMessage) {
- let mainAction = {
- label: lazy.TorStrings.onionServices.authPrompt.done,
- accessKey: lazy.TorStrings.onionServices.authPrompt.doneAccessKey,
- leaveOpen: true, // Callback is responsible for closing the notification.
- callback: this._onDone.bind(this),
- };
-
- let dialogBundle = Services.strings.createBundle(
- "chrome://global/locale/dialog.properties"
- );
-
- let cancelAccessKey = dialogBundle.GetStringFromName("accesskey-cancel");
- if (!cancelAccessKey) {
- cancelAccessKey = "c";
- } // required by PopupNotifications.show()
-
- let cancelAction = {
- label: dialogBundle.GetStringFromName("button-cancel"),
- accessKey: cancelAccessKey,
- callback: this._onCancel.bind(this),
- };
-
- let _this = this;
- let options = {
- autofocus: true,
- hideClose: true,
- persistent: true,
- removeOnDismissal: false,
- eventCallback(aTopic) {
- if (aTopic === "showing") {
- _this._onPromptShowing(aWarningMessage);
- } else if (aTopic === "shown") {
- _this._onPromptShown();
- } else if (aTopic === "removed") {
- _this._onPromptRemoved();
- }
- },
- };
-
- this._prompt = PopupNotifications.show(
- this._browser,
- "tor-clientauth",
- "",
- "tor-clientauth-notification-icon",
- mainAction,
- [cancelAction],
- options
- );
- },
-
- _onPromptShowing(aWarningMessage) {
- let xulDoc = this._browser.ownerDocument;
- let descElem = xulDoc.getElementById("tor-clientauth-notification-desc");
- if (descElem) {
- // Handle replacement of the onion name within the localized
- // string ourselves so we can show the onion name as bold text.
- // We do this by splitting the localized string and creating
- // several HTML <span> elements.
- const fmtString = lazy.TorStrings.onionServices.authPrompt.description;
- const [prefix, suffix] = fmtString.split("%S");
-
- const domainEl = xulDoc.createElement("span");
- domainEl.id = "tor-clientauth-notification-onionname";
- domainEl.textContent = TorUIUtils.shortenOnionAddress(
- this._onionHostname
- );
-
- descElem.replaceChildren(prefix, domainEl, suffix);
- }
-
- // Set "Learn More" label and href.
- let learnMoreElem = xulDoc.getElementById(
- "tor-clientauth-notification-learnmore"
- );
- if (learnMoreElem) {
- learnMoreElem.setAttribute(
- "value",
- lazy.TorStrings.onionServices.learnMore
- );
- learnMoreElem.setAttribute(
- "href",
- "about:manual#onion-services_onion-service-authentication"
- );
- learnMoreElem.setAttribute("useoriginprincipal", "true");
- }
-
- this._showWarning(aWarningMessage);
- let checkboxElem = this._getCheckboxElement();
- if (checkboxElem) {
- checkboxElem.checked = false;
- }
- },
-
- _onPromptShown() {
- let keyElem = this._getKeyElement();
- if (keyElem) {
- keyElem.setAttribute(
- "placeholder",
- lazy.TorStrings.onionServices.authPrompt.keyPlaceholder
- );
- this._boundOnKeyFieldKeyPress = this._onKeyFieldKeyPress.bind(this);
- this._boundOnKeyFieldInput = this._onKeyFieldInput.bind(this);
- keyElem.addEventListener("keypress", this._boundOnKeyFieldKeyPress);
- keyElem.addEventListener("input", this._boundOnKeyFieldInput);
- keyElem.focus();
- }
- },
-
- _onPromptRemoved() {
- if (this._boundOnKeyFieldKeyPress) {
- let keyElem = this._getKeyElement();
- if (keyElem) {
- keyElem.value = "";
- keyElem.removeEventListener(
- "keypress",
- this._boundOnKeyFieldKeyPress
- );
- this._boundOnKeyFieldKeyPress = undefined;
- keyElem.removeEventListener("input", this._boundOnKeyFieldInput);
- this._boundOnKeyFieldInput = undefined;
+ },
+
+ /**
+ * @typedef {object} PromptDetails
+ *
+ * @property {Browser} browser - The browser this prompt is for.
+ * @property {string} cause - The notification that cause this prompt.
+ * @property {string} onionHost - The onion host name.
+ * @property {nsIURI} uri - The browser URI when the notification was
+ * triggered.
+ * @property {string} onionServiceId - The onion service ID for this host.
+ * @property {Notification} [notification] - The notification instance for
+ * this prompt.
+ */
+
+ /**
+ * The currently shown details in the prompt.
+ */
+ _shownDetails: null,
+
+ /**
+ * Used for logging to represent PromptDetails.
+ *
+ * @param {PromptDetails} details - The details to represent.
+ * @returns {string} - The representation of these details.
+ */
+ _detailsRepr(details) {
+ if (!details) {
+ return "none";
+ }
+ return `${details.browser.browserId}:${details.onionHost}`;
+ },
+
+ /**
+ * Show a new prompt, using the given details.
+ *
+ * @param {PromptDetails} details - The details to show.
+ */
+ show(details) {
+ this._logger.debug(`New Notification: ${this._detailsRepr(details)}`);
+
+ let mainAction = {
+ label: this.TorStrings.onionServices.authPrompt.done,
+ accessKey: this.TorStrings.onionServices.authPrompt.doneAccessKey,
+ leaveOpen: true, // Callback is responsible for closing the notification.
+ callback: this._onDone.bind(this),
+ };
+
+ let dialogBundle = Services.strings.createBundle(
+ "chrome://global/locale/dialog.properties"
+ );
+
+ let cancelAccessKey = dialogBundle.GetStringFromName("accesskey-cancel");
+ if (!cancelAccessKey) {
+ cancelAccessKey = "c";
+ } // required by PopupNotifications.show()
+
+ // The first secondarybuttoncommand (cancelAction) should be triggered when
+ // the user presses "Escape".
+ let cancelAction = {
+ label: dialogBundle.GetStringFromName("button-cancel"),
+ accessKey: cancelAccessKey,
+ callback: this._onCancel.bind(this),
+ };
+
+ let options = {
+ autofocus: true,
+ hideClose: true,
+ persistent: true,
+ removeOnDismissal: false,
+ eventCallback: topic => {
+ if (topic === "showing") {
+ this._onPromptShowing(details);
+ } else if (topic === "shown") {
+ this._onPromptShown();
+ } else if (topic === "removed") {
+ this._onPromptRemoved(details);
}
+ },
+ };
+
+ details.notification = PopupNotifications.show(
+ details.browser,
+ "tor-clientauth",
+ "",
+ "tor-clientauth-notification-icon",
+ mainAction,
+ [cancelAction],
+ options
+ );
+ },
+
+ /**
+ * Callback when the prompt is about to be shown.
+ *
+ * @param {PromptDetails?} details - The details to show, or null to shown
+ * none.
+ */
+ _onPromptShowing(details) {
+ if (details === this._shownDetails) {
+ // The last shown details match this one exactly.
+ // This happens when we switch tabs to a page that has no prompt and then
+ // switch back.
+ // We don't want to reset the current state in this case.
+ // In particular, we keep the current _keyInput value and _persistCheckbox
+ // the same.
+ this._logger.debug(`Already showing: ${this._detailsRepr(details)}`);
+ return;
+ }
+
+ this._logger.debug(`Now showing: ${this._detailsRepr(details)}`);
+
+ this._shownDetails = details;
+
+ // Clear the key input.
+ // In particular, clear the input when switching tabs.
+ this._keyInput.value = "";
+ this._persistCheckbox.checked = false;
+
+ // Handle replacement of the onion name within the localized
+ // string ourselves so we can show the onion name as bold text.
+ // We do this by splitting the localized string and creating
+ // several HTML <span> elements.
+ const fmtString = this.TorStrings.onionServices.authPrompt.description;
+ const [prefix, suffix] = fmtString.split("%S");
+
+ const domainEl = document.createElement("span");
+ domainEl.id = "tor-clientauth-notification-onionname";
+ domainEl.textContent = TorUIUtils.shortenOnionAddress(
+ this._shownDetails?.onionHost ?? ""
+ );
+
+ this._descriptionEl.replaceChildren(prefix, domainEl, suffix);
+
+ this._showWarning(undefined);
+ },
+
+ /**
+ * Callback after the prompt is shown.
+ */
+ _onPromptShown() {
+ this._keyInput.focus();
+ },
+
+ /**
+ * Callback when a Notification is removed.
+ *
+ * @param {PromptDetails} details - The details for the removed notification.
+ */
+ _onPromptRemoved(details) {
+ if (details !== this._shownDetails) {
+ // Removing the notification for some other page.
+ // For example, closing another tab that also requires authentication.
+ this._logger.debug(`Removed not shown: ${this._detailsRepr(details)}`);
+ return;
+ }
+ this._logger.debug(`Removed shown: ${this._detailsRepr(details)}`);
+ // Reset the prompt as a precaution.
+ // In particular, we want to clear the input so that the entered key does
+ // not persist.
+ this._onPromptShowing(null);
+ },
+
+ /**
+ * Callback when the user submits the key.
+ */
+ async _onDone() {
+ this._logger.debug(
+ `Sumbitting key: ${this._detailsRepr(this._shownDetails)}`
+ );
+
+ // Grab the details before they might change as we await.
+ const { browser, onionServiceId, notification } = this._shownDetails;
+ const isPermanent = this._persistCheckbox.checked;
+
+ const base64key = this._keyToBase64(this._keyInput.value);
+ if (!base64key) {
+ this._showWarning(this.TorStrings.onionServices.authPrompt.invalidKey);
+ return;
+ }
+
+ try {
+ const provider = await this._lazy.TorProviderBuilder.build();
+ await provider.onionAuthAdd(onionServiceId, base64key, isPermanent);
+ } catch (e) {
+ if (e.torMessage) {
+ this._showWarning(e.torMessage);
+ } else {
+ this._logger.error(`Failed to set key for ${onionServiceId}`, e);
+ this._showWarning(
+ this.TorStrings.onionServices.authPrompt.failedToSetKey
+ );
}
- },
-
- _onKeyFieldKeyPress(aEvent) {
- if (aEvent.keyCode == aEvent.DOM_VK_RETURN) {
- this._onDone();
- } else if (aEvent.keyCode == aEvent.DOM_VK_ESCAPE) {
- this._prompt.remove();
- this._onCancel();
- }
- },
-
- _onKeyFieldInput(aEvent) {
- this._showWarning(undefined); // Remove the warning.
- },
-
- async _onDone() {
- const keyElem = this._getKeyElement();
- if (!keyElem) {
- return;
- }
-
- const base64key = this._keyToBase64(keyElem.value);
- if (!base64key) {
- this._showWarning(lazy.TorStrings.onionServices.authPrompt.invalidKey);
- return;
- }
-
- this._prompt.remove();
-
- const controllerFailureMsg =
- lazy.TorStrings.onionServices.authPrompt.failedToSetKey;
+ return;
+ }
+
+ notification.remove();
+ // Success! Reload the page.
+ browser.sendMessageToActor("Browser:Reload", {}, "BrowserTab");
+ },
+
+ /**
+ * Callback when the user dismisses the prompt.
+ */
+ _onCancel() {
+ // Arrange for an error page to be displayed:
+ // we build a short script calling docShell.displayError()
+ // and we pass it as a data: URI to loadFrameScript(),
+ // which runs it in the content frame which triggered
+ // this authentication prompt.
+ this._logger.debug(`Cancelling: ${this._detailsRepr(this._shownDetails)}`);
+
+ const { browser, cause, uri } = this._shownDetails;
+ const errorCode =
+ cause === this._topics.clientAuthMissing
+ ? Cr.NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH
+ : Cr.NS_ERROR_TOR_ONION_SVC_BAD_CLIENT_AUTH;
+ const io =
+ 'ChromeUtils.import("resource://gre/modules/Services.jsm").Services.io';
+
+ browser.messageManager.loadFrameScript(
+ `data:application/javascript,${encodeURIComponent(
+ `docShell.displayLoadError(${errorCode}, ${io}.newURI(${JSON.stringify(
+ uri.spec
+ )}), undefined, undefined);`
+ )}`,
+ false
+ );
+ },
+
+ /**
+ * Show a warning message to the user or clear the warning.
+ *
+ * @param {string?} warningMessage - The message to show, or undefined to
+ * clear the current message.
+ */
+ _showWarning(warningMessage) {
+ this._logger.debug(`Showing warning: ${warningMessage}`);
+ if (warningMessage) {
+ this._warningEl.textContent = warningMessage;
+ this._warningEl.removeAttribute("hidden");
+ this._keyInput.classList.add("invalid");
+ } else {
+ this._warningEl.setAttribute("hidden", "true");
+ this._keyInput.classList.remove("invalid");
+ }
+ },
+
+ /**
+ * Convert the user-entered key into base64.
+ *
+ * @param {string} keyString - The key to convert.
+ * @returns {string?} - The base64 representation, or undefined if the given
+ * key was not the correct format.
+ */
+ _keyToBase64(keyString) {
+ if (!keyString) {
+ return undefined;
+ }
+
+ let base64key;
+ if (keyString.length === 52) {
+ // The key is probably base32-encoded. Attempt to decode.
+ // Although base32 specifies uppercase letters, we accept lowercase
+ // as well because users may type in lowercase or copy a key out of
+ // a tor onion-auth file (which uses lowercase).
+ let rawKey;
try {
- // ^(subdomain.)*onionserviceid.onion$ (case-insensitive)
- const onionServiceIdRegExp =
- /^(.*\.)*(?<onionServiceId>[a-z2-7]{56})\.onion$/i;
- // match() will return null on bad match, causing throw
- const onionServiceId = this._onionHostname
- .match(onionServiceIdRegExp)
- .groups.onionServiceId.toLowerCase();
-
- const checkboxElem = this._getCheckboxElement();
- const isPermanent = checkboxElem && checkboxElem.checked;
- const provider = await lazy.TorProviderBuilder.build();
- await provider.onionAuthAdd(onionServiceId, base64key, isPermanent);
- // Success! Reload the page.
- this._browser.sendMessageToActor("Browser:Reload", {}, "BrowserTab");
- } catch (e) {
- if (e.torMessage) {
- this.show(e.torMessage);
- } else {
- console.error(controllerFailureMsg, e);
- this.show(controllerFailureMsg);
- }
- }
- },
-
- _onCancel() {
- // Arrange for an error page to be displayed:
- // we build a short script calling docShell.displayError()
- // and we pass it as a data: URI to loadFrameScript(),
- // which runs it in the content frame which triggered
- // this authentication prompt.
- const failedURI = this._failedURI.spec;
- const errorCode =
- this._reasonForPrompt === topics.clientAuthMissing
- ? Cr.NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH
- : Cr.NS_ERROR_TOR_ONION_SVC_BAD_CLIENT_AUTH;
- const io =
- 'ChromeUtils.import("resource://gre/modules/Services.jsm").Services.io';
-
- this._browser.messageManager.loadFrameScript(
- `data:application/javascript,${encodeURIComponent(
- `docShell.displayLoadError(${errorCode}, ${io}.newURI(${JSON.stringify(
- failedURI
- )}), undefined, undefined);`
- )}`,
- false
- );
- },
-
- _getKeyElement() {
- let xulDoc = this._browser.ownerDocument;
- return xulDoc.getElementById("tor-clientauth-notification-key");
- },
-
- _getCheckboxElement() {
- let xulDoc = this._browser.ownerDocument;
- return xulDoc.getElementById("tor-clientauth-persistkey-checkbox");
- },
-
- _showWarning(aWarningMessage) {
- let xulDoc = this._browser.ownerDocument;
- let warningElem = xulDoc.getElementById("tor-clientauth-warning");
- let keyElem = this._getKeyElement();
- if (warningElem) {
- if (aWarningMessage) {
- warningElem.textContent = aWarningMessage;
- warningElem.removeAttribute("hidden");
- if (keyElem) {
- keyElem.className = "invalid";
- }
- } else {
- warningElem.setAttribute("hidden", "true");
- if (keyElem) {
- keyElem.className = "";
- }
- }
- }
- },
-
- // Returns undefined if the key is the wrong length or format.
- _keyToBase64(aKeyString) {
- if (!aKeyString) {
- return undefined;
- }
+ rawKey = this._lazy.CommonUtils.decodeBase32(keyString.toUpperCase());
+ } catch (e) {}
- let base64key;
- if (aKeyString.length == 52) {
- // The key is probably base32-encoded. Attempt to decode.
- // Although base32 specifies uppercase letters, we accept lowercase
- // as well because users may type in lowercase or copy a key out of
- // a tor onion-auth file (which uses lowercase).
- let rawKey;
+ if (rawKey) {
try {
- rawKey = lazy.CommonUtils.decodeBase32(aKeyString.toUpperCase());
+ base64key = btoa(rawKey);
} catch (e) {}
-
- if (rawKey) {
- try {
- base64key = btoa(rawKey);
- } catch (e) {}
- }
- } else if (
- aKeyString.length == 44 &&
- /^[a-zA-Z0-9+/]*=*$/.test(aKeyString)
- ) {
- // The key appears to be a correctly formatted base64 value. If not,
- // tor will return an error when we try to add the key via the
- // control port.
- base64key = aKeyString;
}
-
- return base64key;
- },
- };
-
- let retval = {
- init() {
- Services.obs.addObserver(this, topics.clientAuthMissing);
- Services.obs.addObserver(this, topics.clientAuthIncorrect);
- },
-
- uninit() {
- Services.obs.removeObserver(this, topics.clientAuthMissing);
- Services.obs.removeObserver(this, topics.clientAuthIncorrect);
- },
-
- // aSubject is the DOM Window or browser where the prompt should be shown.
- // aData contains the .onion name.
- observe(aSubject, aTopic, aData) {
- if (
- aTopic != topics.clientAuthMissing &&
- aTopic != topics.clientAuthIncorrect
- ) {
- return;
- }
-
- let browser;
- if (aSubject instanceof Ci.nsIDOMWindow) {
- let contentWindow = aSubject.QueryInterface(Ci.nsIDOMWindow);
- browser = contentWindow.docShell.chromeEventHandler;
- } else {
- browser = aSubject.QueryInterface(Ci.nsIBrowser);
- }
-
- if (!gBrowser.browsers.some(aBrowser => aBrowser == browser)) {
- return; // This window does not contain the subject browser; ignore.
+ } else if (
+ keyString.length === 44 &&
+ /^[a-zA-Z0-9+/]*=*$/.test(keyString)
+ ) {
+ // The key appears to be a correctly formatted base64 value. If not,
+ // tor will return an error when we try to add the key via the
+ // control port.
+ base64key = keyString;
+ }
+
+ return base64key;
+ },
+
+ /**
+ * Initialize the authentication prompt.
+ */
+ init() {
+ this._logger = console.createInstance({
+ prefix: "OnionAuthPrompt",
+ maxLogLevel: "Warn",
+ maxLogLevelPref: "browser.onionAuthPrompt.loglevel",
+ });
+
+ const { TorStrings } = ChromeUtils.importESModule(
+ "resource://gre/modules/TorStrings.sys.mjs"
+ );
+ this.TorStrings = TorStrings;
+ ChromeUtils.defineESModuleGetters(this._lazy, {
+ TorProviderBuilder: "resource://gre/modules/TorProviderBuilder.sys.mjs",
+ CommonUtils: "resource://services-common/utils.sys.mjs",
+ });
+
+ this._keyInput = document.getElementById("tor-clientauth-notification-key");
+ this._persistCheckbox = document.getElementById(
+ "tor-clientauth-persistkey-checkbox"
+ );
+ this._warningEl = document.getElementById("tor-clientauth-warning");
+ this._descriptionEl = document.getElementById(
+ "tor-clientauth-notification-desc"
+ );
+
+ // Set "Learn More" label and href.
+ const learnMoreElem = document.getElementById(
+ "tor-clientauth-notification-learnmore"
+ );
+ learnMoreElem.setAttribute(
+ "value",
+ this.TorStrings.onionServices.learnMore
+ );
+
+ this._keyInput.setAttribute(
+ "placeholder",
+ this.TorStrings.onionServices.authPrompt.keyPlaceholder
+ );
+ this._keyInput.addEventListener("keydown", event => {
+ if (event.key === "Enter") {
+ event.preventDefault();
+ this._onDone();
}
-
- let failedURI = browser.currentURI;
- let authPrompt = new OnionServicesAuthPrompt(
- browser,
- failedURI,
- aTopic,
- aData
+ });
+ this._keyInput.addEventListener("input", event => {
+ // Remove the warning.
+ this._showWarning(undefined);
+ });
+
+ Services.obs.addObserver(this, this._topics.clientAuthMissing);
+ Services.obs.addObserver(this, this._topics.clientAuthIncorrect);
+ },
+
+ /**
+ * Un-initialize the authentication prompt.
+ */
+ uninit() {
+ Services.obs.removeObserver(this, this._topics.clientAuthMissing);
+ Services.obs.removeObserver(this, this._topics.clientAuthIncorrect);
+ },
+
+ observe(subject, topic, data) {
+ if (
+ topic !== this._topics.clientAuthMissing &&
+ topic !== this._topics.clientAuthIncorrect
+ ) {
+ return;
+ }
+
+ // "subject" is the DOM window or browser where the prompt should be shown.
+ let browser;
+ if (subject instanceof Ci.nsIDOMWindow) {
+ let contentWindow = subject.QueryInterface(Ci.nsIDOMWindow);
+ browser = contentWindow.docShell.chromeEventHandler;
+ } else {
+ browser = subject.QueryInterface(Ci.nsIBrowser);
+ }
+
+ if (!gBrowser.browsers.includes(browser)) {
+ // This window does not contain the subject browser.
+ this._logger.debug(
+ `Window ${window.docShell.outerWindowID}: Ignoring ${topic}`
);
- authPrompt.show(undefined);
- },
- };
-
- return retval;
-})(); /* OnionAuthPrompt */
-
-Object.defineProperty(this, "OnionAuthPrompt", {
- value: OnionAuthPrompt,
- enumerable: true,
- writable: false,
-});
+ return;
+ }
+ this._logger.debug(
+ `Window ${window.docShell.outerWindowID}: Handling ${topic}`
+ );
+
+ const onionHost = data;
+ // ^(subdomain.)*onionserviceid.onion$ (case-insensitive)
+ const onionServiceId = onionHost
+ .match(/^(.*\.)?(?<onionServiceId>[a-z2-7]{56})\.onion$/i)
+ ?.groups.onionServiceId.toLowerCase();
+ if (!onionServiceId) {
+ this._logger.error(`Malformed onion address: ${onionHost}`);
+ return;
+ }
+
+ const details = {
+ browser,
+ cause: topic,
+ onionHost,
+ uri: browser.currentURI,
+ onionServiceId,
+ };
+ this.show(details);
+ },
+};
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/29ff3f…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/29ff3f…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/rbm][main] Bug 40076: Take refresh_input into account when computing input_files_id
by richard (@richard) 30 Apr '24
by richard (@richard) 30 Apr '24
30 Apr '24
richard pushed to branch main at The Tor Project / Applications / RBM
Commits:
148d8541 by Nicolas Vigier at 2024-04-25T14:54:32+02:00
Bug 40076: Take refresh_input into account when computing input_files_id
The `refresh_input` option forces refreshing an input_file. The option
is correctly taken into account when starting a build, but was not when
computing `input_files_id`.
- - - - -
1 changed file:
- lib/RBM.pm
Changes:
=====================================
lib/RBM.pm
=====================================
@@ -796,7 +796,7 @@ sub input_file_need_dl {
return undef;
}
return undef if $input_file->{exec};
- return undef if $fname;
+ return undef if ($fname && !$t->('refresh_input'));
return 1 if $input_file->{URL};
return 1 if $input_file->{content};
return undef;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/rbm/-/commit/148d8541f177f31…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/rbm/-/commit/148d8541f177f31…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-update-responses][main] alpha: new version, 13.5a7
by boklm (@boklm) 29 Apr '24
by boklm (@boklm) 29 Apr '24
29 Apr '24
boklm pushed to branch main at The Tor Project / Applications / Tor Browser update responses
Commits:
54df007d by Nicolas Vigier at 2024-04-29T16:51:58+02:00
alpha: new version, 13.5a7
- - - - -
30 changed files:
- update_3/alpha/.htaccess
- − update_3/alpha/13.5a3-13.5a6-linux-i686-ALL.xml
- − update_3/alpha/13.5a3-13.5a6-linux-x86_64-ALL.xml
- − update_3/alpha/13.5a3-13.5a6-macos-ALL.xml
- − update_3/alpha/13.5a3-13.5a6-windows-i686-ALL.xml
- − update_3/alpha/13.5a3-13.5a6-windows-x86_64-ALL.xml
- − update_3/alpha/13.5a4-13.5a6-linux-i686-ALL.xml
- − update_3/alpha/13.5a4-13.5a6-linux-x86_64-ALL.xml
- − update_3/alpha/13.5a4-13.5a6-macos-ALL.xml
- − update_3/alpha/13.5a4-13.5a6-windows-i686-ALL.xml
- − update_3/alpha/13.5a4-13.5a6-windows-x86_64-ALL.xml
- + update_3/alpha/13.5a4-13.5a7-linux-i686-ALL.xml
- + update_3/alpha/13.5a4-13.5a7-linux-x86_64-ALL.xml
- + update_3/alpha/13.5a4-13.5a7-macos-ALL.xml
- + update_3/alpha/13.5a4-13.5a7-windows-i686-ALL.xml
- + update_3/alpha/13.5a4-13.5a7-windows-x86_64-ALL.xml
- − update_3/alpha/13.5a5-13.5a6-linux-i686-ALL.xml
- − update_3/alpha/13.5a5-13.5a6-linux-x86_64-ALL.xml
- − update_3/alpha/13.5a5-13.5a6-macos-ALL.xml
- − update_3/alpha/13.5a5-13.5a6-windows-i686-ALL.xml
- − update_3/alpha/13.5a5-13.5a6-windows-x86_64-ALL.xml
- + update_3/alpha/13.5a5-13.5a7-linux-i686-ALL.xml
- + update_3/alpha/13.5a5-13.5a7-linux-x86_64-ALL.xml
- + update_3/alpha/13.5a5-13.5a7-macos-ALL.xml
- + update_3/alpha/13.5a5-13.5a7-windows-i686-ALL.xml
- + update_3/alpha/13.5a5-13.5a7-windows-x86_64-ALL.xml
- + update_3/alpha/13.5a6-13.5a7-linux-i686-ALL.xml
- + update_3/alpha/13.5a6-13.5a7-linux-x86_64-ALL.xml
- + update_3/alpha/13.5a6-13.5a7-macos-ALL.xml
- + update_3/alpha/13.5a6-13.5a7-windows-i686-ALL.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/mullvad-browser-update-responses][main] alpha: new version, 13.5a7
by boklm (@boklm) 29 Apr '24
by boklm (@boklm) 29 Apr '24
29 Apr '24
boklm pushed to branch main at The Tor Project / Applications / mullvad-browser-update-responses
Commits:
ac9f621a by Nicolas Vigier at 2024-04-29T15:33:08+02:00
alpha: new version, 13.5a7
- - - - -
29 changed files:
- update_1/alpha/.htaccess
- − update_1/alpha/13.5a3-13.5a6-linux-x86_64-ALL.xml
- − update_1/alpha/13.5a3-13.5a6-macos-ALL.xml
- − update_1/alpha/13.5a3-13.5a6-windows-x86_64-ALL.xml
- − update_1/alpha/13.5a4-13.5a6-linux-x86_64-ALL.xml
- − update_1/alpha/13.5a4-13.5a6-macos-ALL.xml
- − update_1/alpha/13.5a4-13.5a6-windows-x86_64-ALL.xml
- + update_1/alpha/13.5a4-13.5a7-linux-x86_64-ALL.xml
- + update_1/alpha/13.5a4-13.5a7-macos-ALL.xml
- + update_1/alpha/13.5a4-13.5a7-windows-x86_64-ALL.xml
- − update_1/alpha/13.5a5-13.5a6-linux-x86_64-ALL.xml
- − update_1/alpha/13.5a5-13.5a6-macos-ALL.xml
- − update_1/alpha/13.5a5-13.5a6-windows-x86_64-ALL.xml
- + update_1/alpha/13.5a5-13.5a7-linux-x86_64-ALL.xml
- + update_1/alpha/13.5a5-13.5a7-macos-ALL.xml
- + update_1/alpha/13.5a5-13.5a7-windows-x86_64-ALL.xml
- + update_1/alpha/13.5a6-13.5a7-linux-x86_64-ALL.xml
- + update_1/alpha/13.5a6-13.5a7-macos-ALL.xml
- + update_1/alpha/13.5a6-13.5a7-windows-x86_64-ALL.xml
- − update_1/alpha/13.5a6-linux-x86_64-ALL.xml
- − update_1/alpha/13.5a6-macos-ALL.xml
- − update_1/alpha/13.5a6-windows-x86_64-ALL.xml
- + update_1/alpha/13.5a7-linux-x86_64-ALL.xml
- + update_1/alpha/13.5a7-macos-ALL.xml
- + update_1/alpha/13.5a7-windows-x86_64-ALL.xml
- update_1/alpha/download-linux-x86_64.json
- update_1/alpha/download-macos.json
- update_1/alpha/download-windows-x86_64.json
- update_1/alpha/downloads.json
Changes:
=====================================
update_1/alpha/.htaccess
=====================================
@@ -1,22 +1,22 @@
RewriteEngine On
-RewriteRule ^[^/]+/13.5a6/ no-update.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/13.5a3/ALL 13.5a3-13.5a6-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/13.5a4/ALL 13.5a4-13.5a6-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/13.5a5/ALL 13.5a5-13.5a6-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/[^/]+/ALL 13.5a6-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/ 13.5a6-linux-x86_64-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/13.5a3/ALL 13.5a3-13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/13.5a4/ALL 13.5a4-13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/13.5a5/ALL 13.5a5-13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/[^/]+/ALL 13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/ 13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/13.5a3/ALL 13.5a3-13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/13.5a4/ALL 13.5a4-13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/13.5a5/ALL 13.5a5-13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/[^/]+/ALL 13.5a6-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/ 13.5a6-macos-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/13.5a3/ALL 13.5a3-13.5a6-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/13.5a4/ALL 13.5a4-13.5a6-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/13.5a5/ALL 13.5a5-13.5a6-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/[^/]+/ALL 13.5a6-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/ 13.5a6-windows-x86_64-ALL.xml [last]
+RewriteRule ^[^/]+/13.5a7/ no-update.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/13.5a4/ALL 13.5a4-13.5a7-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/13.5a5/ALL 13.5a5-13.5a7-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/13.5a6/ALL 13.5a6-13.5a7-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/[^/]+/ALL 13.5a7-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/ 13.5a7-linux-x86_64-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/13.5a4/ALL 13.5a4-13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/13.5a5/ALL 13.5a5-13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/13.5a6/ALL 13.5a6-13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/[^/]+/ALL 13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/ 13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/13.5a4/ALL 13.5a4-13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/13.5a5/ALL 13.5a5-13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/13.5a6/ALL 13.5a6-13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/[^/]+/ALL 13.5a7-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/ 13.5a7-macos-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/13.5a4/ALL 13.5a4-13.5a7-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/13.5a5/ALL 13.5a5-13.5a7-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/13.5a6/ALL 13.5a6-13.5a7-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/[^/]+/ALL 13.5a7-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/ 13.5a7-windows-x86_64-ALL.xml [last]
=====================================
update_1/alpha/13.5a3-13.5a6-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64-13.5a6_…" hashFunction="SHA512" hashValue="44fcf94bf30811ae31ced8d9982988e06e10a1dfa0190b000b34604dcac0d17f1610d6f1c61d59a45ff309ef3b188b9c333b37fde1a2f6a75aca0271f39c6339" size="108111355" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64--13.5a3…" hashFunction="SHA512" hashValue="9e777fddfa0f657288f0390076bd6a43a37a87743ac742fdaf9b958b3b4611a38fdce7b333371d1cf095e2d1323fd654578933adda2c4604748284e2f6b5fbc1" size="16581110" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a3-13.5a6-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos-13.5a6_ALL.mar" hashFunction="SHA512" hashValue="7ad0fd05c9b20bf197f189151f8c67a0f82fa33612643f4dddccaf26ca0592b035984366a3371efdb64ad5cfea71618912656d63e1d859b3b5d5badb8ed128c7" size="115521323" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos--13.5a3-13.5a6…" hashFunction="SHA512" hashValue="4f1b8188d674402974cae1373fa8fa452d9f93862885af4cb7ae555febf5a0a8c383d828b325039722aa0abb6b0f9004911a29e9f0b9a611bd7ca3bb91a9367e" size="17344873" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a3-13.5a6-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64-13.5a…" hashFunction="SHA512" hashValue="77a35c65b2e37e6012e9960ea1d5deca6f76dcb1a5bd76615873b251a984e23372e2a5f028416fcfd04c9acc942136c7846b78785f1f3b25e03805f6e4ef4cdb" size="89742748" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="7210d892e7a75d3247ac12ddc7d466df521b256c0ac76b1d2804221d3cce6d38faf327e071ce349ab460bf57e387ecfdfc523f8a94c4f62637442f03f04d8e96" size="13826633" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a4-13.5a6-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64-13.5a6_…" hashFunction="SHA512" hashValue="44fcf94bf30811ae31ced8d9982988e06e10a1dfa0190b000b34604dcac0d17f1610d6f1c61d59a45ff309ef3b188b9c333b37fde1a2f6a75aca0271f39c6339" size="108111355" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64--13.5a4…" hashFunction="SHA512" hashValue="422b7f0f69f4bb2474261143bbf4c947269f49ad165853636eec6f3b18708ac0e368afc5ff40efe7570413ac531337d577adb626867d1a794c39523b0c216bea" size="10315722" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a4-13.5a6-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos-13.5a6_ALL.mar" hashFunction="SHA512" hashValue="7ad0fd05c9b20bf197f189151f8c67a0f82fa33612643f4dddccaf26ca0592b035984366a3371efdb64ad5cfea71618912656d63e1d859b3b5d5badb8ed128c7" size="115521323" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos--13.5a4-13.5a6…" hashFunction="SHA512" hashValue="3bb3b0c5e75d032e95fefb5320072d0aa222bbd250a5a675a2271be8b1f17b44916bd5aee0a7ccb88da329f22cf6acde09f24eb4087d59ad0fb15f7a5f626845" size="13693861" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a4-13.5a6-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64-13.5a…" hashFunction="SHA512" hashValue="77a35c65b2e37e6012e9960ea1d5deca6f76dcb1a5bd76615873b251a984e23372e2a5f028416fcfd04c9acc942136c7846b78785f1f3b25e03805f6e4ef4cdb" size="89742748" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="91a657b6ab486dd9ba34e5529737afb17bc0de2a59ec06d76dc55dc484a685d6e8b2e80be9e5ac22688f4be56da10105e63855b81c49cd46ca047f0ea8b8ee44" size="10272365" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a4-13.5a7-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64-13.5a7_…" hashFunction="SHA512" hashValue="2f3c39a28b3da65e5592c6cf82a48849253e396b66cd564e57213cf1f7aa6946dd4a043cbaae823e8b881578661c16b6997c294a386ab79e9c35e582420532f0" size="108177359" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64--13.5a4…" hashFunction="SHA512" hashValue="aba1a3b3334ee8b8833cbd2c466049ec3e8633af7936b94b7bf105e138d6d066684029c4eeeef26c2e057162ec6f5d89d8ec6a87a24f96782ff0e89a9002c208" size="11357278" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a4-13.5a7-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos-13.5a7_ALL.mar" hashFunction="SHA512" hashValue="b169353967ad22a9e5b7f9911db2a0330e494971d98f009543ad29de3ca04d43945eca8707e8ceababcd84ce9e2f52bc02a3e9e343843ae545d6a619ca35aee4" size="115580635" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos--13.5a4-13.5a7…" hashFunction="SHA512" hashValue="954f52fde24e217ebcb9297d3b4de06437179343d723939f929a313b346b8d8267ea4ce11adc248288d91362f451cb7579263027f1d4159cbb35dd6ffdc7dc9f" size="75438707" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a4-13.5a7-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64-13.5a…" hashFunction="SHA512" hashValue="07b79ad9c1a9be538b56219a64531fb77972a581adb9996241a17456b062314970c949ce5ef8d31ac2bd6e4f0aef9a8a9d7ed7332c63cf19e026e156f8f81b90" size="89800128" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="8a7add2e7f21554e649388793eed84e72ad6e378167c54db0b1cd6c2d38b861309eb0b7135c3beb1888a14cf9ccc77934462c3cfec26a87c462cf8b2ce12d7d3" size="10938745" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a5-13.5a6-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64-13.5a6_…" hashFunction="SHA512" hashValue="44fcf94bf30811ae31ced8d9982988e06e10a1dfa0190b000b34604dcac0d17f1610d6f1c61d59a45ff309ef3b188b9c333b37fde1a2f6a75aca0271f39c6339" size="108111355" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64--13.5a5…" hashFunction="SHA512" hashValue="b05f7e5a78b61aaa08c2b594e90760f7e9ff79f2fdeb31381f8a2c85afa5996bcabbb08dc0b1bb5142d16a7accdb40583753f23d73806d50f0a865f810bd77ea" size="6911078" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a5-13.5a6-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos-13.5a6_ALL.mar" hashFunction="SHA512" hashValue="7ad0fd05c9b20bf197f189151f8c67a0f82fa33612643f4dddccaf26ca0592b035984366a3371efdb64ad5cfea71618912656d63e1d859b3b5d5badb8ed128c7" size="115521323" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos--13.5a5-13.5a6…" hashFunction="SHA512" hashValue="3ed0b46b6cfc4d28778045acc0338ec5d6fc9e0f7f651d15607128cbf9ed1b287955670a686cf4f8e4fb3541c5cd63ed44d5548de62e9ba0eb35039aaf385fad" size="9947238" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a5-13.5a6-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64-13.5a…" hashFunction="SHA512" hashValue="77a35c65b2e37e6012e9960ea1d5deca6f76dcb1a5bd76615873b251a984e23372e2a5f028416fcfd04c9acc942136c7846b78785f1f3b25e03805f6e4ef4cdb" size="89742748" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="8080c016add033f5dca2875c747a7f8c16ad68d28ec6d4bee5cd0d40fe33d3be7c5d085bd2f44aff073a0fbf73538915c481a99b8d695d2f6f12951d60a97c62" size="6715331" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a5-13.5a7-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64-13.5a7_…" hashFunction="SHA512" hashValue="2f3c39a28b3da65e5592c6cf82a48849253e396b66cd564e57213cf1f7aa6946dd4a043cbaae823e8b881578661c16b6997c294a386ab79e9c35e582420532f0" size="108177359" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64--13.5a5…" hashFunction="SHA512" hashValue="20f6c406be2a65fc95cb6f55217df1de1e404989e3e44375daf6b3247e26a4c3d7550fa750e73c09b3634b06b95549c3cef103f678fcdebd26e64381bb2b7b73" size="10785100" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a5-13.5a7-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos-13.5a7_ALL.mar" hashFunction="SHA512" hashValue="b169353967ad22a9e5b7f9911db2a0330e494971d98f009543ad29de3ca04d43945eca8707e8ceababcd84ce9e2f52bc02a3e9e343843ae545d6a619ca35aee4" size="115580635" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos--13.5a5-13.5a7…" hashFunction="SHA512" hashValue="eb7b6890b3eb2020b8f916fe1def6c05da2b20da5f4ff03175806a847fe34b7b04e770b306cd3a9cbdcb0505d03420e8b5cc54272788ebb93f941d8352c8892a" size="75285209" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a5-13.5a7-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64-13.5a…" hashFunction="SHA512" hashValue="07b79ad9c1a9be538b56219a64531fb77972a581adb9996241a17456b062314970c949ce5ef8d31ac2bd6e4f0aef9a8a9d7ed7332c63cf19e026e156f8f81b90" size="89800128" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="6b15fb4cb9dc42972602ad0558db2c395987ebc57fbce059a67a1192af8f6a8fc771877c9824c0e81d80933340014a39c6d51d7fdcbc35d104bc802571467834" size="9916729" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a6-13.5a7-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64-13.5a7_…" hashFunction="SHA512" hashValue="2f3c39a28b3da65e5592c6cf82a48849253e396b66cd564e57213cf1f7aa6946dd4a043cbaae823e8b881578661c16b6997c294a386ab79e9c35e582420532f0" size="108177359" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64--13.5a6…" hashFunction="SHA512" hashValue="9edd25e8674b44b3e132a01aec0388e6d19a33674a8551e2af03c4cc4342b2abc705247b4c55f4100c578b6f149e2995df467ff22a97246e109bf21e7ef8883a" size="8750651" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a6-13.5a7-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos-13.5a7_ALL.mar" hashFunction="SHA512" hashValue="b169353967ad22a9e5b7f9911db2a0330e494971d98f009543ad29de3ca04d43945eca8707e8ceababcd84ce9e2f52bc02a3e9e343843ae545d6a619ca35aee4" size="115580635" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos--13.5a6-13.5a7…" hashFunction="SHA512" hashValue="a8c6ea5ed2d6c25061572a9e7c7dab835836f988333d69c1d63c7856221f3a8ed7a50c75747389b717794618f79c44d700f89471c6ca0859d88bea95e08c7ece" size="74047521" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a6-13.5a7-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64-13.5a…" hashFunction="SHA512" hashValue="07b79ad9c1a9be538b56219a64531fb77972a581adb9996241a17456b062314970c949ce5ef8d31ac2bd6e4f0aef9a8a9d7ed7332c63cf19e026e156f8f81b90" size="89800128" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="6e772f84a813cddf33a10164de58e43512909b445e42ee93b84627d70b206be0e4eb837f4cd3a2b23dd706e3dce0ad9bda31c3620ea016d818bf75708950b1e7" size="8577815" type="partial"></patch></update></updates>
=====================================
update_1/alpha/13.5a6-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64-13.5a6_…" hashFunction="SHA512" hashValue="44fcf94bf30811ae31ced8d9982988e06e10a1dfa0190b000b34604dcac0d17f1610d6f1c61d59a45ff309ef3b188b9c333b37fde1a2f6a75aca0271f39c6339" size="108111355" type="complete"></patch></update></updates>
=====================================
update_1/alpha/13.5a6-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos-13.5a6_ALL.mar" hashFunction="SHA512" hashValue="7ad0fd05c9b20bf197f189151f8c67a0f82fa33612643f4dddccaf26ca0592b035984366a3371efdb64ad5cfea71618912656d63e1d859b3b5d5badb8ed128c7" size="115521323" type="complete"></patch></update></updates>
=====================================
update_1/alpha/13.5a6-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5a6" appVersion="13.5a6" platformVersion="115.9.0" buildID="20240327135729" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a6" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64-13.5a…" hashFunction="SHA512" hashValue="77a35c65b2e37e6012e9960ea1d5deca6f76dcb1a5bd76615873b251a984e23372e2a5f028416fcfd04c9acc942136c7846b78785f1f3b25e03805f6e4ef4cdb" size="89742748" type="complete"></patch></update></updates>
=====================================
update_1/alpha/13.5a7-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64-13.5a7_…" hashFunction="SHA512" hashValue="2f3c39a28b3da65e5592c6cf82a48849253e396b66cd564e57213cf1f7aa6946dd4a043cbaae823e8b881578661c16b6997c294a386ab79e9c35e582420532f0" size="108177359" type="complete"></patch></update></updates>
=====================================
update_1/alpha/13.5a7-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos-13.5a7_ALL.mar" hashFunction="SHA512" hashValue="b169353967ad22a9e5b7f9911db2a0330e494971d98f009543ad29de3ca04d43945eca8707e8ceababcd84ce9e2f52bc02a3e9e343843ae545d6a619ca35aee4" size="115580635" type="complete"></patch></update></updates>
=====================================
update_1/alpha/13.5a7-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5a7" appVersion="13.5a7" platformVersion="115.10.0" buildID="20240425120000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5a7" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64-13.5a…" hashFunction="SHA512" hashValue="07b79ad9c1a9be538b56219a64531fb77972a581adb9996241a17456b062314970c949ce5ef8d31ac2bd6e4f0aef9a8a9d7ed7332c63cf19e026e156f8f81b90" size="89800128" type="complete"></patch></update></updates>
=====================================
update_1/alpha/download-linux-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64-13.5a6.…","git_tag":"mb-13.5a6-build1","sig":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64-13.5a6.…","version":"13.5a6"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64-13.5a7.…","git_tag":"mb-13.5a7-build2","sig":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64-13.5a7.…","version":"13.5a7"}
\ No newline at end of file
=====================================
update_1/alpha/download-macos.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos-13.5a6.dmg","git_tag":"mb-13.5a6-build1","sig":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos-13.5a6.dmg.asc","version":"13.5a6"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos-13.5a7.dmg","git_tag":"mb-13.5a7-build2","sig":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos-13.5a7.dmg.asc","version":"13.5a7"}
\ No newline at end of file
=====================================
update_1/alpha/download-windows-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64-porta…","git_tag":"mb-13.5a6-build1","sig":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64-porta…","version":"13.5a6"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64-porta…","git_tag":"mb-13.5a7-build2","sig":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64-porta…","version":"13.5a7"}
\ No newline at end of file
=====================================
update_1/alpha/downloads.json
=====================================
@@ -1 +1 @@
-{"downloads":{"linux-x86_64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64-13.5a6.…","sig":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-linux-x86_64-13.5a6.…"}},"macos":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos-13.5a6.dmg","sig":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-macos-13.5a6.dmg.asc"}},"win64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64-porta…","sig":"https://cdn.mullvad.net/browser/13.5a6/mullvad-browser-windows-x86_64-porta…"}}},"tag":"mb-13.5a6-build1","version":"13.5a6"}
\ No newline at end of file
+{"downloads":{"linux-x86_64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64-13.5a7.…","sig":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-linux-x86_64-13.5a7.…"}},"macos":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos-13.5a7.dmg","sig":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-macos-13.5a7.dmg.asc"}},"win64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64-porta…","sig":"https://cdn.mullvad.net/browser/13.5a7/mullvad-browser-windows-x86_64-porta…"}}},"tag":"mb-13.5a7-build2","version":"13.5a7"}
\ No newline at end of file
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser-update-respo…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser-update-respo…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-build] Pushed new tag mb-13.5a7-build2
by boklm (@boklm) 28 Apr '24
by boklm (@boklm) 28 Apr '24
28 Apr '24
boklm pushed new tag mb-13.5a7-build2 at The Tor Project / Applications / tor-browser-build
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/tree/mb-…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-build][main] Bug 41114: Mullvad Browser 13.5a7-build2
by richard (@richard) 25 Apr '24
by richard (@richard) 25 Apr '24
25 Apr '24
richard pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
5059b98c by Nicolas Vigier at 2024-04-25T17:01:35+02:00
Bug 41114: Mullvad Browser 13.5a7-build2
Update pkg_revision to force rebuild of linux-packages. Having
var/browser_release_date being in the past should solve the
reproducibility problem of the deb file.
- - - - -
5 changed files:
- .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md
- .gitlab/issue_templates/Release Prep - Mullvad Browser Stable.md
- .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md
- .gitlab/issue_templates/Release Prep - Tor Browser Stable.md
- rbm.conf
Changes:
=====================================
.gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md
=====================================
@@ -39,7 +39,7 @@ Mullvad Browser Alpha (and Nightly) are on the `main` branch
- [ ] Update `rbm.conf`
- [ ] `var/torbrowser_version` : update to next version
- [ ] `var/torbrowser_build` : update to `$(MULLVAD_BROWSER_BUILD_N)`
- - [ ] `var/browser_release_date` : update to build date
+ - [ ] `var/browser_release_date` : update to build date. For the build to be reproducible, the date should be in the past when building.
- [ ] `var/torbrowser_incremental_from` : update to previous Desktop version
- **NOTE**: We try to build incrementals for the previous 3 desktop versions except in the case of a watershed update
- **IMPORTANT**: Really *actually* make sure this is the previous Desktop version or else the `make mullvadbrowser-incrementals-*` step will fail
=====================================
.gitlab/issue_templates/Release Prep - Mullvad Browser Stable.md
=====================================
@@ -39,7 +39,7 @@ Mullvad Browser Stable lives in the various `maint-$(MULLVAD_BROWSER_MAJOR).$(MU
- [ ] Update `rbm.conf`
- [ ] `var/torbrowser_version` : update to next version
- [ ] `var/torbrowser_build` : update to `$(MULLVAD_BROWSER_BUILD_N)`
- - [ ] `var/browser_release_date` : update to build date
+ - [ ] `var/browser_release_date` : update to build date. For the build to be reproducible, the date should be in the past when building.
- [ ] `var/torbrowser_incremental_from` : update to previous Desktop version
- **NOTE**: We try to build incrementals for the previous 3 desktop versions except in the case of a watershed update
- **IMPORTANT**: Really *actually* make sure this is the previous Desktop version or else the `make mullvadbrowser-incrementals-*` step will fail
=====================================
.gitlab/issue_templates/Release Prep - Tor Browser Alpha.md
=====================================
@@ -38,7 +38,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch
- [ ] Update `rbm.conf`
- [ ] `var/torbrowser_version` : update to next version
- [ ] `var/torbrowser_build` : update to `$(TOR_BROWSER_BUILD_N)`
- - [ ] `var/browser_release_date` : update to build date
+ - [ ] `var/browser_release_date` : update to build date. For the build to be reproducible, the date should be in the past when building.
- [ ] ***(Desktop Only)***`var/torbrowser_incremental_from` : update to previous Desktop version
- **NOTE**: We try to build incrementals for the previous 3 desktop versions except in the case of a watershed update
- **IMPORTANT**: Really *actually* make sure this is the previous Desktop version or else the `make torbrowser-incrementals-*` step will fail
=====================================
.gitlab/issue_templates/Release Prep - Tor Browser Stable.md
=====================================
@@ -38,7 +38,7 @@ Tor Browser Stable lives in the various `maint-$(TOR_BROWSER_MAJOR).$(TOR_BROWSE
- [ ] Update `rbm.conf`
- [ ] `var/torbrowser_version` : update to next version
- [ ] `var/torbrowser_build` : update to `$(TOR_BROWSER_BUILD_N)`
- - [ ] `var/browser_release_date` : update to build date
+ - [ ] `var/browser_release_date` : update to build date. For the build to be reproducible, the date should be in the past when building.
- [ ] ***(Desktop Only)***`var/torbrowser_incremental_from` : update to previous Desktop version
- **NOTE**: We try to build incrementals for the previous 3 desktop versions except in the case of a watershed update
- **IMPORTANT**: Really *actually* make sure this is the previous Desktop version or else the `make torbrowser-incrementals-*` step will fail
=====================================
rbm.conf
=====================================
@@ -74,11 +74,13 @@ buildconf:
var:
torbrowser_version: '13.5a7'
- torbrowser_build: 'build1'
+ torbrowser_build: 'build2'
torbrowser_incremental_from:
- '13.5a6'
- '13.5a5'
- '13.5a4'
+ # This should be the date of when the build is started. For the build
+ # to be reproducible, browser_release_date should always be in the past.
browser_release_date: '2024/04/25 12:00:00'
browser_release_date_timestamp: '[% USE date; date.format(c("var/browser_release_date"), "%s") %]'
updater_enabled: 1
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] fixup! Tor Browser strings
by Pier Angelo Vendrame (@pierov) 24 Apr '24
by Pier Angelo Vendrame (@pierov) 24 Apr '24
24 Apr '24
Pier Angelo Vendrame pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser
Commits:
29ff3f1e by Henry Wilkes at 2024-04-24T16:53:07+01:00
fixup! Tor Browser strings
Bug 42545: Rename "onionsite" to "onion site" in Fluent.
- - - - -
1 changed file:
- toolkit/locales/en-US/toolkit/global/tor-browser.ftl
Changes:
=====================================
toolkit/locales/en-US/toolkit/global/tor-browser.ftl
=====================================
@@ -611,25 +611,25 @@ rulesets-details-scope-input =
# "Regular expression" refers to the computing term for a special pattern used for matching: https://en.wikipedia.org/wiki/Regular_expression.
rulesets-details-scope-input-invalid = The scope could not be parsed as a regular expression
-## Onionsite error page.
-## "Onionsite" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+## Onion site error page.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
-onion-neterror-page-title = Problem loading onionsite
+onion-neterror-page-title = Problem loading onion site
onion-neterror-authorization-title = Authentication required
-onion-neterror-not-found-header = Onionsite not found
-onion-neterror-not-found-description = The most likely cause is that the onionsite is offline. Contact the onionsite administrator.
-onion-neterror-unreachable-header = Onionsite cannot be reached
-onion-neterror-unreachable-description = The onionsite is unreachable due an internal error.
-onion-neterror-disconnected-header = Onionsite has disconnected
-onion-neterror-disconnected-description = The most likely cause is that the onionsite is offline. Contact the onionsite administrator.
-onion-neterror-connection-failed-header = Unable to connect to onionsite
-onion-neterror-connection-failed-description = The onionsite is busy or the Tor network is overloaded. Try again later.
-onion-neterror-missing-authentication-header = Onionsite requires authentication
-onion-neterror-missing-authentication-description = Access to the onionsite requires a key but none was provided.
-onion-neterror-incorrect-authentication-header = Onionsite authentication failed
-onion-neterror-incorrect-authetication-description = The provided key is incorrect or has been revoked. Contact the onionsite administrator.
-onion-neterror-invalid-address-header = Invalid onionsite address
-onion-neterror-invalid-address-description = The provided onionsite address is invalid. Please check that you entered it correctly.
+onion-neterror-not-found-header = Onion site not found
+onion-neterror-not-found-description = The most likely cause is that the onion site is offline. Contact the onion site administrator.
+onion-neterror-unreachable-header = Onion site cannot be reached
+onion-neterror-unreachable-description = The onion site is unreachable due an internal error.
+onion-neterror-disconnected-header = Onion site has disconnected
+onion-neterror-disconnected-description = The most likely cause is that the onion site is offline. Contact the onion site administrator.
+onion-neterror-connection-failed-header = Unable to connect to onion site
+onion-neterror-connection-failed-description = The onion site is busy or the Tor network is overloaded. Try again later.
+onion-neterror-missing-authentication-header = Onion site requires authentication
+onion-neterror-missing-authentication-description = Access to the onion site requires a key but none was provided.
+onion-neterror-incorrect-authentication-header = Onion site authentication failed
+onion-neterror-incorrect-authetication-description = The provided key is incorrect or has been revoked. Contact the onion site administrator.
+onion-neterror-invalid-address-header = Invalid onion site address
+onion-neterror-invalid-address-description = The provided onion site address is invalid. Please check that you entered it correctly.
# "Circuit" refers to a Tor network circuit.
-onion-neterror-timed-out-header = Onionsite circuit creation timed out
-onion-neterror-timed-out-description = Failed to connect to the onionsite, possibly due to a poor network connection.
+onion-neterror-timed-out-header = Onion site circuit creation timed out
+onion-neterror-timed-out-description = Failed to connect to the onion site, possibly due to a poor network connection.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/29ff3f1…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/29ff3f1…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] fixup! Lox integration
by Pier Angelo Vendrame (@pierov) 24 Apr '24
by Pier Angelo Vendrame (@pierov) 24 Apr '24
24 Apr '24
Pier Angelo Vendrame pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser
Commits:
300bf571 by Henry Wilkes at 2024-04-24T12:27:50+00:00
fixup! Lox integration
Bug 42543: Demote the validateInvitation console message to "info".
- - - - -
1 changed file:
- toolkit/components/lox/Lox.sys.mjs
Changes:
=====================================
toolkit/components/lox/Lox.sys.mjs
=====================================
@@ -612,7 +612,7 @@ class LoxImpl {
try {
lazy.invitation_is_trusted(invite);
} catch (err) {
- lazy.logger.error(err);
+ lazy.logger.info(`Does not parse as an invite: "${invite}".`, err);
return false;
}
return true;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/300bf57…
--
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/300bf57…
You're receiving this email because of your account on gitlab.torproject.org.
1
0