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

Keyboard Shortcuts

Thread View

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

tbb-commits

Thread Start a new thread
Download
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
tbb-commits@lists.torproject.org

  • 1 participants
  • 18632 discussions
[Git][tpo/applications/tor-browser-build] Pushed new tag tbb-13.5a3-build1
by richard (@richard) 21 Dec '23

21 Dec '23
richard pushed new tag tbb-13.5a3-build1 at The Tor Project / Applications / tor-browser-build -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/tree/tbb… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41021: Updated Tor Browser changelog
by richard (@richard) 21 Dec '23

21 Dec '23
richard pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: fd9b5cb8 by Richard Pospesel at 2023-12-21T22:49:46+00:00 Bug 41021: Updated Tor Browser changelog - - - - - 1 changed file: - projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt Changes: ===================================== projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt ===================================== @@ -11,22 +11,27 @@ Tor Browser 13.5a3 - December 22 2023 * Windows + macOS + Linux * Updated Firefox to 115.6.0esr * Bug 40856: Add a default for preferences in TorSettings [tor-browser] + * Bug 42099: Blind cross-origin requests to .tor.onion domains [tor-browser] * Bug 42189: Assertion failure: the value of mPrivateBrowsingId in the loadContext and in the loadInfo are not the same! [tor-browser] * Bug 42283: Tor Browser shouldn't ship blockchair by default [tor-browser] * Bug 42299: After adding incorrect bridge addres on user cannot go back to the Connection page [tor-browser] * Bug 42303: Remove unused "help" button logic in tor dialogs [tor-browser] * Bug 42319: Make all the wordmark of the same size [tor-browser] + * Windows + * Bug 42163: Make the 3rd party DLL blocklist obey portable mode [tor-browser] + * Bug 42179: PTs on Tor Browser 13 do not work with Windows 7 [tor-browser] + * Linux + * Bug 41050: Improve the disk leak sanitization on start-$browser [tor-browser-build] * Android * Updated GeckoView to 115.6.0esr * Bug 42248: Allow GeckoView to launch tor [tor-browser] * Bug 42249: Allow GeckoView to launch lyrebird [tor-browser] * Bug 42250: Allow Moat.sys.mjs to invoke lyrebird on Android [tor-browser] + * Bug 42301: Make TorSettings interact with the old Android Settings [tor-browser] * Bug 42313: Enable One UI Sans KR as a possible font for Korean (MozBug 1865238) [tor-browser] + * Bug 42323: Add a checkbox to enable the connect assist experiments on alpha [tor-browser] + * Bug 42324: Onion Location on Android is ignored [tor-browser] * Bug 42339: Backport Android security fixes from Firefox 121 to 115.6 - based Tor Browser [tor-browser] - * Windows - * Bug 42163: Make the 3rd party DLL blocklist obey portable mode [tor-browser] - * Linux - * Bug 41050: Improve disk leak sanitization on startup [tor-browser] * Build System * All Platforms * Updated Go to 1.21.5 @@ -42,6 +47,8 @@ Tor Browser 13.5a3 - December 22 2023 * Bug 41048: Drop the kcp-go project [tor-browser-build] * Windows + macOS + Linux * Bug 41031: Add command to unsign .mar files and compare with sha256sums-unsigned-build.txt [tor-browser-build] + * Bug 41056: Make it possible to use templates in var/torbrowser_incremental_from [tor-browser-build] + * Bug 41057: make fetch is not fetching mullvad repo [tor-browser-build] * Windows + macOS * Bug 41016: Switch from bullseye to bookworm for desktop platforms [tor-browser-build] * Windows @@ -49,6 +56,19 @@ Tor Browser 13.5a3 - December 22 2023 * Bug 41030: Add command to unsign .exe files and compare with sha256sums-unsigned-build.txt [tor-browser-build] * macOS * Bug 40990: Remove old macos signing scripts [tor-browser-build] + * Linux + * Bug 41046: Use the final path for Linux debug symbols [tor-browser-build] + +Tor Browser 13.0.8 - December 20 2023 + * Windows + * Bug 41053: All PT's crash instantly in 13.0.7 [tor-browser-build] + * Bug 42179: PTs on Tor Browser 13 do not work with Windows 7 [tor-browser] + * Linux + * Bug 41050: Improve the disk leak sanitization on start-$browser [tor-browser-build] + * Build System + * All Platforms + * Bug 41042: Add options to include updates in the changelog scripts [tor-browser-build] + * Bug 41043: Create script to push build requests to Mullvad build servers [tor-browser-build] Tor Browser 13.0.7 - December 19 2023 * All Platforms View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/f… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/f… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android] Pushed new tag firefox-android-115.2.1-13.5-1-build4
by Pier Angelo Vendrame (@pierov) 21 Dec '23

21 Dec '23
Pier Angelo Vendrame pushed new tag firefox-android-115.2.1-13.5-1-build4 at The Tor Project / Applications / firefox-android -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/tree/firef… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser] Pushed new tag tor-browser-115.6.0esr-13.5-1-build2
by Pier Angelo Vendrame (@pierov) 21 Dec '23

21 Dec '23
Pier Angelo Vendrame pushed new tag tor-browser-115.6.0esr-13.5-1-build2 at The Tor Project / Applications / Tor Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Add Tor integration and UI
by Pier Angelo Vendrame (@pierov) 21 Dec '23

21 Dec '23
Pier Angelo Vendrame pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android Commits: 4fbe1f59 by Pier Angelo Vendrame at 2023-12-21T21:58:05+00:00 fixup! Add Tor integration and UI Bug 42248: Allow GeckoView to launch tor Add a torrc-defaults with the configuration of pluggable transports. We should remove it once we remove tor-android-service and tor-onion-proxy-library, and include it in their replacement. - - - - - 1 changed file: - + fenix/app/src/main/assets/common/torrc-defaults Changes: ===================================== fenix/app/src/main/assets/common/torrc-defaults ===================================== @@ -0,0 +1,10 @@ +## torrc-defaults for Tor Browser for Android +AvoidDiskWrites 1 +# (stderr|stdout|syslog|file FILENAME). +Log notice stdout +CookieAuthentication 1 +DormantCanceledByStartup 1 +ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit exec ./libObfs4proxy.so +ClientTransportPlugin snowflake exec ./libSnowflake.so +ClientTransportPlugin webtunnel exec ./libWebtunnel.so +ClientTransportPlugin conjure exec ./libConjure.so -registerURL https://registration.refraction.network/api View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/4fb… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/4fb… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.6.0esr-13.5-1] Add built-in bridge lines for Android.
by Pier Angelo Vendrame (@pierov) 21 Dec '23

21 Dec '23
Pier Angelo Vendrame pushed to branch tor-browser-115.6.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 8d3d178e by Pier Angelo Vendrame at 2023-12-21T23:23:57+01:00 Add built-in bridge lines for Android. Temporary workaround for 13.5a3. We chould revert once tor-browser!877 is merged. - - - - - 1 changed file: - mobile/android/app/000-tor-browser-android.js Changes: ===================================== mobile/android/app/000-tor-browser-android.js ===================================== @@ -35,3 +35,68 @@ pref("security.webauth.webauthn_enable_android_fido2", false); // Disable the External App Blocker on Android pref("extensions.torbutton.launch_warning", false); + +// Temporarily add the built-in bridges here. + +pref("extensions.torlauncher.default_bridge_recommended_type", "obfs4"); + +// Default bridges. +pref( + "extensions.torlauncher.default_bridge.obfs4.1", + "obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.2", + "obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.3", + "obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.4", + "obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.5", + "obfs4 193.11.166.194:27015 2D82C2E354D531A68469ADF7F878FA6060C6BACA cert=4TLQPJrTSaDffMK7Nbao6LC7G9OW/NHkUwIdjLSS3KYf0Nv4/nQiiI8dY2TcsQx01NniOg iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.6", + "obfs4 193.11.166.194:27020 86AC7B8D430DAC4117E9F42C9EAED18133863AAF cert=0LDeJH4JzMDtkJJrFphJCiPqKx7loozKN7VNfuukMGfHO0Z8OGdzHVkhVAOfo1mUdv9cMg iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.7", + "obfs4 193.11.166.194:27025 1AE2C08904527FEA90C4C4F8C1083EA59FBC6FAF cert=ItvYZzW5tn6v3G4UnQa6Qz04Npro6e81AP70YujmK/KXwDFPTs3aHXcHp4n8Vt6w/bv8cA iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.8", + "obfs4 209.148.46.65:443 74FAD13168806246602538555B5521A0383A1875 cert=ssH+9rP8dG2NLDN2XuFw63hIO/9MNNinLmxQDpVa+7kTOa9/m+tGWT1SmSYpQ9uTBGa6Hw iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.9", + "obfs4 146.57.248.225:22 10A6CD36A537FCE513A322361547444B393989F0 cert=K1gDtDAIcUfeLqbstggjIw2rtgIKqdIhUlHp82XRqNSq/mtAjp1BIC9vHKJ2FAEpGssTPw iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.10", + "obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0" +); +pref( + "extensions.torlauncher.default_bridge.obfs4.11", + "obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0" +); + +pref( + "extensions.torlauncher.default_bridge.meek-azure.1", + "meek_lite 192.0.2.18:80 BE776A53492E1E044A26F17306E1BC46A55A1625 url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com" +); + +pref( + "extensions.torlauncher.default_bridge.snowflake.1", + "snowflake 192.0.2.3:80 2B280B23E1107BB62ABFC40DDCC8824814F80A72 fingerprint=2B280B23E1107BB62ABFC40DDCC8824814F80A72 url=https://snowflake-broker.torproject.net.global.prod.fastly.net/ front=cdn.sstatic.net ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn" +); + +pref( + "extensions.torlauncher.default_bridge.snowflake.2", + "snowflake 192.0.2.4:80 8838024498816A039FCBBAB14E6F40A0843051FA fingerprint=8838024498816A039FCBBAB14E6F40A0843051FA url=https://snowflake-broker.torproject.net.global.prod.fastly.net/ front=cdn.sstatic.net ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.net:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn" +); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/8d3d178… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/8d3d178… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] Enable the connect assist experiments on alpha
by Pier Angelo Vendrame (@pierov) 21 Dec '23

21 Dec '23
Pier Angelo Vendrame pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android Commits: 48593938 by clairehurst at 2023-12-21T14:48:46-07:00 Enable the connect assist experiments on alpha - - - - - 13 changed files: - android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt - android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt - fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt - fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt - fenix/app/src/main/java/org/mozilla/fenix/settings/TorNetworkSettingsFragment.kt - + fenix/app/src/main/java/org/mozilla/fenix/tor/TorBetaConnectionFeaturesFragment.kt - fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapFragment.kt - fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt - + fenix/app/src/main/res/layout/tor_network_settings_beta_connection_features.xml - fenix/app/src/main/res/navigation/nav_graph.xml - fenix/app/src/main/res/values/preference_keys.xml - fenix/app/src/main/res/xml/tor_network_settings_preferences.xml Changes: ===================================== android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt ===================================== @@ -799,6 +799,11 @@ class GeckoEngine( override var prioritizeOnions: Boolean get() = runtime.settings.prioritizeOnions set(value) { runtime.settings.prioritizeOnions = value } + override var useNewBootstrap: Boolean + get() = runtime.settings.useNewBootstrap + set(value) { + runtime.settings.useNewBootstrap = value + } }.apply { defaultSettings?.let { this.javascriptEnabled = it.javascriptEnabled @@ -824,6 +829,7 @@ class GeckoEngine( this.torSecurityLevel = it.torSecurityLevel this.spoofEnglish = it.spoofEnglish this.prioritizeOnions = it.prioritizeOnions + this.useNewBootstrap = it.useNewBootstrap } } @@ -929,6 +935,8 @@ class GeckoEngine( unBlockedBySmartBlock = this.blockingData.any { it.unBlockedBySmartBlock() }, ) } + + fun getTorIntegrationController() = runtime.getTorIntegrationController() } internal fun ContentBlockingController.LogEntry.BlockingData.hasBlockedCookies(): Boolean { ===================================== android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt ===================================== @@ -214,6 +214,8 @@ abstract class Settings { open var spoofEnglish: Boolean by UnsupportedSetting() open var prioritizeOnions: Boolean by UnsupportedSetting() + + open var useNewBootstrap: Boolean by UnsupportedSetting() } /** @@ -259,6 +261,7 @@ data class DefaultSettings( override var torSecurityLevel: Int = 4, override var spoofEnglish: Boolean = false, override var prioritizeOnions: Boolean = false, + override var useNewBootstrap: Boolean = false, ) : Settings() class UnsupportedSetting<T> { ===================================== fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -164,6 +164,11 @@ import org.mozilla.fenix.utils.Settings import java.lang.ref.WeakReference import java.util.Locale +import androidx.navigation.fragment.findNavController +import mozilla.components.browser.engine.gecko.GeckoEngine +import mozilla.components.browser.state.selector.findCustomTab +import org.mozilla.geckoview.TorIntegrationAndroid + /** * The main activity of the application. The application is primarily a single Activity (this one) * with fragments switching out to display different views. The most important views shown here are the: @@ -171,7 +176,7 @@ import java.util.Locale * - browser screen */ @SuppressWarnings("TooManyFunctions", "LargeClass", "LongParameterList", "LongMethod") -open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { +open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorIntegrationAndroid.BootstrapStateChangeListener { // DO NOT MOVE ANYTHING ABOVE THIS, GETTING INIT TIME IS CRITICAL // we need to store startup timestamp for warm startup. we cant directly store // inside AppStartupTelemetry since that class lives inside components and @@ -201,7 +206,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { private var inflater: LayoutInflater? = null - private val navHost by lazy { + val navHost by lazy { supportFragmentManager.findFragmentById(R.id.container) as NavHostFragment } @@ -396,6 +401,12 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { components.notificationsDelegate.bindToActivity(this) + val engine = components.core.engine + if (engine is GeckoEngine) { + val torIntegration = engine.getTorIntegrationController() + torIntegration.registerBootstrapStateChangeListener(this) + } + StartupTimeline.onActivityCreateEndHome(this) // DO NOT MOVE ANYTHING BELOW HERE. } @@ -609,6 +620,12 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // underlying Application, as well. (application as FenixApplication).terminate() } + + val engine = components.core.engine + if (engine is GeckoEngine) { + val torIntegration = engine.getTorIntegrationController() + torIntegration.unregisterBootstrapStateChangeListener(this) + } } override fun onConfigurationChanged(newConfig: Configuration) { @@ -1163,7 +1180,20 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { } open fun navigateToHome() { - navHost.navController.navigate(NavGraphDirections.actionStartupTorbootstrap()) + if (settings().useNewBootstrap) { + if (settings().useNewBootstrapNativeUi) { + navHost.navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist()) + } else { + navHost.navController.navigate(NavGraphDirections.actionStartupHome()) + openToBrowserAndLoad( + searchTermOrURL = "about:torconnect", + newTab = true, + from = BrowserDirection.FromHome, + ) + } + } else { + navHost.navController.navigate(NavGraphDirections.actionStartupTorbootstrap()) + } } override fun attachBaseContext(base: Context) { @@ -1341,4 +1371,15 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // telemetry purposes. const val PWA_RECENTLY_USED_THRESHOLD = DateUtils.DAY_IN_MILLIS * 30L } + + override fun onBootstrapStateChange(state: String) = Unit + override fun onBootstrapProgress(progress: Double, status: String, hasWarnings: Boolean) = Unit + override fun onBootstrapComplete() { + components.useCases.tabsUseCases.removeAllTabs() + navHost.navController.navigate(NavGraphDirections.actionStartupHome()) + } + override fun onBootstrapError(message: String, details: String) = Unit + override fun onSettingsRequested() { + navHost.navController.navigate(NavGraphDirections.actionGlobalSettingsFragment()) + } } ===================================== fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt ===================================== @@ -1189,6 +1189,9 @@ abstract class BaseBrowserFragment : val context = requireContext() resumeDownloadDialogState(selectedTab.id, context.components.core.store, context, toolbarHeight) it.announceForAccessibility(selectedTab.toDisplayTitle()) + if (getCurrentTab()?.content?.url == "about:torconnect") { + browserToolbarView.view.visibility = View.GONE + } } } else { view?.let { view -> initializeUI(view) } @@ -1206,6 +1209,24 @@ abstract class BaseBrowserFragment : components.useCases.sessionUseCases.reload() } hideToolbar() + handleBetaHtmlTorConnect() + } + + private fun handleBetaHtmlTorConnect() { + if (getCurrentTab()?.content?.url == "about:torconnect") { + if (!requireActivity().settings().useNewBootstrap) { + requireContext().components.useCases.tabsUseCases.removeAllTabs() + (requireActivity() as HomeActivity).navHost.navController.navigate( + NavGraphDirections.actionStartupTorbootstrap(), + ) + } else if (!requireActivity().settings().useNewBootstrapHtmlUi) { + requireContext().components.useCases.tabsUseCases.removeAllTabs() + (requireActivity() as HomeActivity).navigateToHome() + } else { + // This just makes it not flash (be visible for a split second) before handleTabSelected() hides it again + browserToolbarView.view.visibility = View.GONE + } + } } @CallSuper ===================================== fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt ===================================== @@ -146,6 +146,7 @@ class Core( torSecurityLevel = context.settings().torSecurityLevel().intRepresentation, spoofEnglish = context.settings().spoofEnglish, prioritizeOnions = context.settings().prioritizeOnions, + useNewBootstrap = context.settings().useNewBootstrap, ) GeckoEngine( ===================================== fenix/app/src/main/java/org/mozilla/fenix/settings/TorNetworkSettingsFragment.kt ===================================== @@ -76,6 +76,15 @@ class TorNetworkSettingsFragment : PreferenceFragmentCompat(), TorEvents { } } + requirePreference<Preference>(R.string.pref_key_use_new_bootstrap).apply { + setOnPreferenceClickListener { + val directions = + TorNetworkSettingsFragmentDirections.actionTorNetworkSettingsFragmentToBetaConnectionFeaturesFragment() + requireView().findNavController().navigate(directions) + true + } + } + setStatus() } ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorBetaConnectionFeaturesFragment.kt ===================================== @@ -0,0 +1,69 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.tor + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.core.view.children +import androidx.fragment.app.Fragment +import org.mozilla.fenix.databinding.TorNetworkSettingsBetaConnectionFeaturesBinding +import org.mozilla.fenix.ext.components +import org.mozilla.fenix.ext.settings + +/** + * Lets the user customize beta connection features mode. + */ +class TorBetaConnectionFeaturesFragment : Fragment() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, + ): View { + val binding = TorNetworkSettingsBetaConnectionFeaturesBinding.inflate(inflater) + + binding.enableBetaConnectionFeaturesSwitch.run { + isChecked = context.settings().useNewBootstrap + setConnectionAssistUI(binding, isChecked) + + setOnCheckedChangeListener { _, isConnectionAssistEnabled -> + context.settings().useNewBootstrap = isConnectionAssistEnabled + setConnectionAssistUI(binding, isConnectionAssistEnabled) + updateEngineConnectionAssistMode() + } + } + + // Since the beta connection features modes are in a RadioGroup we only need one listener to know of all their changes. + binding.useNewBootstrapWithNativeUiRadioButton.setOnCheckedChangeListener { _, _ -> + updateEngineConnectionAssistMode() + } + + return binding.root + } + + private fun setConnectionAssistUI( + binding: TorNetworkSettingsBetaConnectionFeaturesBinding, + isBetaConnectionAssistEnabled: Boolean, + ) { + if (!isBetaConnectionAssistEnabled) { + binding.enableBetaConnectionFeaturesModes.apply { + clearCheck() + children.forEach { it.isEnabled = false } + } + } else { + // Do not enable the native UI until it is actually available. + // binding.enableBetaConnectionFeaturesModes.children.forEach { it.isEnabled = true } + binding.useNewBootstrapWithHtmlUiRadioButton.isEnabled = true + binding.useNewBootstrapWithNativeUiRadioButton.isEnabled = false + } + } + + private fun updateEngineConnectionAssistMode() { + requireContext().components.core.engine.settings.useNewBootstrap = + requireContext().settings().useNewBootstrap + } + +} ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapFragment.kt ===================================== @@ -20,8 +20,10 @@ import org.mozilla.fenix.tor.interactor.DefaultTorBootstrapInteractor import org.mozilla.fenix.tor.interactor.TorBootstrapInteractor import androidx.navigation.fragment.findNavController import com.google.android.material.appbar.AppBarLayout +import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.hideToolbar +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.tor.controller.DefaultTorBootstrapController import org.mozilla.fenix.tor.view.TorBootstrapView @@ -169,6 +171,9 @@ class TorBootstrapFragment : Fragment() { // triggered to cause an automatic update on warm start (no tab selection occurs). So we // update it manually here. requireComponents.useCases.sessionUseCases.updateLastAccess() + if (requireContext().settings().useNewBootstrap){ + (requireActivity() as HomeActivity).navigateToHome() + } } private fun handleTorBootstrapConnect() { ===================================== fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt ===================================== @@ -1859,4 +1859,19 @@ class Settings(private val appContext: Context) : PreferencesHolder { * Indicates if the new Search settings UI is enabled. */ var enableUnifiedSearchSettingsUI: Boolean = showUnifiedSearchFeature && FeatureFlags.unifiedSearchSettings + + var useNewBootstrap by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_use_new_bootstrap), + default = false, + ) + + var useNewBootstrapNativeUi by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_use_new_bootstrap_with_android_native), + default = false, + ) + + var useNewBootstrapHtmlUi by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_use_new_bootstrap_with_html), + default = true + ) } ===================================== fenix/app/src/main/res/layout/tor_network_settings_beta_connection_features.xml ===================================== @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - 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" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <TextView + android:id="@+id/enable_beta_connection_features_title" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginBottom="2dp" + android:clickable="false" + android:text="Enable beta connection features" + android:textAppearance="@style/ListItemTextStyle" + android:textSize="16sp" + app:layout_constraintBottom_toTopOf="@id/enable_beta_connection_features_summary" + app:layout_constraintEnd_toStartOf="@id/enable_beta_connection_features_switch" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:lineHeight="24.sp" /> + + <TextView + android:id="@+id/enable_beta_connection_features_summary" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:text="Help us test our new connection assist features which focuses on a streamlined connection with better integration with bridges" + android:textColor="?attr/textSecondary" + android:textColorLink="?attr/textSecondary" + android:textSize="12sp" + app:layout_constraintBottom_toTopOf="@id/enable_beta_connection_features_modes" + app:layout_constraintEnd_toEndOf="@id/enable_beta_connection_features_title" + app:layout_constraintStart_toStartOf="@id/enable_beta_connection_features_title" + app:layout_constraintTop_toBottomOf="@id/enable_beta_connection_features_title" + app:lineHeight="16.sp" /> + + <androidx.appcompat.widget.SwitchCompat + android:id="@+id/enable_beta_connection_features_switch" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:minHeight="48dp" + android:paddingStart="18dp" + android:paddingEnd="18dp" + android:textColor="@color/state_list_text_color" + android:textOff="@string/studies_off" + android:textOn="@string/studies_on" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="@id/enable_beta_connection_features_title" /> + + <RadioGroup + android:id="@+id/enable_beta_connection_features_modes" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/enable_beta_connection_features_summary"> + + <org.mozilla.fenix.settings.PreferenceBackedRadioButton + android:id="@+id/use_new_bootstrap_with_html_ui_radio_button" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:attr/selectableItemBackground" + android:button="@null" + android:drawablePadding="@dimen/radio_button_preference_drawable_padding" + android:paddingStart="@dimen/radio_button_preference_horizontal" + android:paddingTop="@dimen/radio_button_preference_vertical" + android:paddingEnd="@dimen/radio_button_preference_horizontal" + android:paddingBottom="@dimen/radio_button_preference_vertical" + android:text="HTML UI" + android:textAppearance="?android:attr/textAppearanceListItem" + android:textSize="16sp" + app:drawableStartCompat="?android:attr/listChoiceIndicatorSingle" + app:preferenceKey="@string/pref_key_use_new_bootstrap_with_html" + app:preferenceKeyDefaultValue="true" /> + + <org.mozilla.fenix.settings.PreferenceBackedRadioButton + android:id="@+id/use_new_bootstrap_with_native_ui_radio_button" + android:layout_width="match_parent" + android:layout_height="48dp" + android:background="?android:attr/selectableItemBackground" + android:button="@null" + android:drawablePadding="@dimen/radio_button_preference_drawable_padding" + android:enabled="false" + android:paddingStart="@dimen/radio_button_preference_horizontal" + android:paddingTop="@dimen/radio_button_preference_vertical" + android:paddingEnd="@dimen/radio_button_preference_horizontal" + android:paddingBottom="@dimen/radio_button_preference_vertical" + android:text="Native Android UI" + android:textAppearance="?android:attr/textAppearanceListItem" + android:textSize="16sp" + app:drawableStartCompat="?android:attr/listChoiceIndicatorSingle" + app:preferenceKey="@string/pref_key_use_new_bootstrap_with_android_native" + app:preferenceKeyDefaultValue="false" /> + </RadioGroup> + +</androidx.constraintlayout.widget.ConstraintLayout> ===================================== fenix/app/src/main/res/navigation/nav_graph.xml ===================================== @@ -27,6 +27,12 @@ app:popUpTo="@id/startupFragment" app:popUpToInclusive="true" /> + <action + android:id="@+id/action_startup_tor_connection_assist" + app:destination="@+id/torConnectionAssistFragment" + app:popUpTo="@id/startupFragment" + app:popUpToInclusive="true" /> + <action android:id="@+id/action_global_home" app:destination="@id/homeFragment" @@ -941,12 +947,25 @@ app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" /> + <action + android:id="@+id/action_torNetworkSettingsFragment_to_BetaConnectionFeaturesFragment" + app:destination="@+id/torBetaConnectionFeaturesFragment" + app:enterAnim="@anim/slide_in_right" + app:exitAnim="@anim/slide_out_left" + app:popEnterAnim="@anim/slide_in_left" + app:popExitAnim="@anim/slide_out_right" /> </fragment> <fragment android:id="@+id/torBridgeConfigFragment" android:name="org.mozilla.fenix.settings.TorBridgeConfigFragment" android:label="@string/preferences_tor_network_settings_bridge_config" tools:layout="@layout/fragment_tor_bridge_config" /> + <fragment + android:id="@+id/torBetaConnectionFeaturesFragment" + android:name="org.mozilla.fenix.tor.TorBetaConnectionFeaturesFragment" + android:label="Enable beta connection features" + tools:layout="@layout/tor_network_settings_beta_connection_features" /> + <fragment android:id="@+id/trackingProtectionFragment" android:name="org.mozilla.fenix.settings.TrackingProtectionFragment"> ===================================== fenix/app/src/main/res/values/preference_keys.xml ===================================== @@ -376,6 +376,9 @@ <string name="pref_key_tor_network_settings" translatable="false">pref_key_tor_network_settings</string> <string name="pref_key_tor_network_settings_explanation" translatable="false">pref_key_tor_network_settings_explanation</string> <string name="pref_key_tor_network_settings_bridge_config" translatable="false">pref_key_tor_network_settings_bridge_config</string> + <string name="pref_key_use_new_bootstrap" translatable="false">pref_key_use_new_bootstrap</string> + <string name="pref_key_use_new_bootstrap_with_android_native" translatable="false">pref_key_use_new_bootstrap_with_android_native</string> + <string name="pref_key_use_new_bootstrap_with_html" translatable="false">pref_key_use_new_bootstrap_with_html</string> <string name="pref_key_tor_network_settings_bridge_config_explanation" translatable="false">pref_key_tor_network_settings_bridge_config_explanation</string> <string name="pref_key_tor_network_settings_bridge_config_toggle" translatable="false">pref_key_tor_network_settings_bridge_config_toggle</string> <string name="pref_key_tor_network_settings_bridge_config_builtin_bridge_obfs4" translatable="false">pref_key_tor_network_settings_bridge_config_builtin_bridge_obfs4</string> ===================================== fenix/app/src/main/res/xml/tor_network_settings_preferences.xml ===================================== @@ -27,4 +27,9 @@ android:title="@string/preferences_tor_network_settings_bridge_config" android:summary="@string/preferences_tor_network_settings_bridge_config_description" app:allowDividerAbove="true" /> + <Preference + android:key="@string/pref_key_use_new_bootstrap" + android:title="Enable beta connection features" + app:allowDividerAbove="true" /> + </androidx.preference.PreferenceScreen> View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/485… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/485… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.6.0esr-13.5-1] fixup! Bug 42247: Android helpers for the TorProvider
by Pier Angelo Vendrame (@pierov) 21 Dec '23

21 Dec '23
Pier Angelo Vendrame pushed to branch tor-browser-115.6.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: f422c485 by Dan Ballard at 2023-12-21T11:51:26-08:00 fixup! Bug 42247: Android helpers for the TorProvider Fix settings loading issues and saving - - - - - 2 changed files: - mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorIntegrationAndroid.java - toolkit/modules/TorAndroidIntegration.sys.mjs Changes: ===================================== mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorIntegrationAndroid.java ===================================== @@ -7,6 +7,7 @@ package org.mozilla.geckoview; import android.content.Context; +import android.os.AsyncTask; import android.util.Log; import androidx.annotation.AnyThread; @@ -131,7 +132,11 @@ public class TorIntegrationAndroid implements BundleEventListener { } else if (EVENT_MEEK_STOP.equals(event)) { stopMeek(message, callback); } else if (EVENT_SETTINGS_READY.equals(event)) { - loadSettings(message); + try { + new SettingsLoader().execute(message); + } catch(Exception e) { + Log.e(TAG, "SettingsLoader error: "+ e.toString()); + } } else if (EVENT_BOOTSTRAP_STATE_CHANGED.equals(event)) { String state = message.getString("state"); for (BootstrapStateChangeListener listener: mBootstrapStateListeners) { @@ -161,14 +166,24 @@ public class TorIntegrationAndroid implements BundleEventListener { } } - private void loadSettings(GeckoBundle message) { - if (TorLegacyAndroidSettings.unmigrated()) { - mSettings = TorLegacyAndroidSettings.loadTorSettings(); - setSettings(mSettings); - TorLegacyAndroidSettings.setMigrated(); - } else { - GeckoBundle bundle = message.getBundle("settings"); - mSettings = new TorSettings(bundle); + private class SettingsLoader extends AsyncTask<GeckoBundle, Void, TorSettings> { + protected TorSettings doInBackground(GeckoBundle... messages) { + GeckoBundle message = messages[0]; + TorSettings settings; + if (TorLegacyAndroidSettings.unmigrated()) { + settings = TorLegacyAndroidSettings.loadTorSettings(); + setSettings(settings, true, true); + TorLegacyAndroidSettings.setMigrated(); + } else { + GeckoBundle bundle = message.getBundle("settings"); + settings = new TorSettings(bundle); + } + return settings; + } + + @Override + protected void onPostExecute(TorSettings torSettings) { + mSettings = torSettings; } } @@ -515,8 +530,12 @@ public class TorIntegrationAndroid implements BundleEventListener { return EventDispatcher.getInstance().queryBundle(EVENT_SETTINGS_GET); } - public @NonNull GeckoResult<Void> setSettings(final TorSettings settings) { - return EventDispatcher.getInstance().queryVoid(EVENT_SETTINGS_SET, settings.asGeckoBundle()); + public @NonNull GeckoResult<Void> setSettings(final TorSettings settings, boolean save, boolean apply) { + GeckoBundle bundle = new GeckoBundle(3); + bundle.putBoolean("save", save); + bundle.putBoolean("apply", apply); + bundle.putBundle("settings", settings.asGeckoBundle()); + return EventDispatcher.getInstance().queryVoid(EVENT_SETTINGS_SET, bundle); } public @NonNull GeckoResult<Void> applySettings() { ===================================== toolkit/modules/TorAndroidIntegration.sys.mjs ===================================== @@ -136,13 +136,19 @@ class TorAndroidIntegrationImpl { return; case ListenedEvents.settingsSet: // This does not throw, so we do not have any way to report the error! - lazy.TorSettings.setSettings(data); + lazy.TorSettings.setSettings(data.settings); + if (data.save) { + lazy.TorSettings.saveToPrefs(); + } + if (data.apply) { + lazy.TorSettings.applySettings(); + } break; case ListenedEvents.settingsApply: await lazy.TorSettings.applySettings(); break; case ListenedEvents.settingsSave: - await lazy.TorSettings.saveSettings(); + await lazy.TorSettings.saveToPrefs(); break; case ListenedEvents.bootstrapBegin: lazy.TorConnect.beginBootstrap(); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f422c48… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f422c48… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41057: Also fetch mullvad-browser.git in `make fetch`
by boklm (@boklm) 21 Dec '23

21 Dec '23
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 264191d6 by Nicolas Vigier at 2023-12-21T13:09:58+01:00 Bug 41057: Also fetch mullvad-browser.git in `make fetch` - - - - - 1 changed file: - Makefile Changes: ===================================== Makefile ===================================== @@ -709,6 +709,7 @@ mullvadbrowser-kick-devmole-build: submodule-update fetch: submodule-update $(rbm) fetch + $(rbm) fetch firefox --target mullvadbrowser clean: submodule-update ./tools/clean-old View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/2… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/2… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Add Tor integration and UI
by Pier Angelo Vendrame (@pierov) 21 Dec '23

21 Dec '23
Pier Angelo Vendrame pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android Commits: a61486e2 by Pier Angelo Vendrame at 2023-12-21T17:15:26+00:00 fixup! Add Tor integration and UI Bug 42324: Onion location does not work after a browser restart - - - - - 2 changed files: - android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt - fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt Changes: ===================================== android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt ===================================== @@ -798,11 +798,7 @@ class GeckoEngine( } override var prioritizeOnions: Boolean get() = runtime.settings.prioritizeOnions - set(value) { - value.let { - runtime.settings.prioritizeOnions = it - } - } + set(value) { runtime.settings.prioritizeOnions = value } }.apply { defaultSettings?.let { this.javascriptEnabled = it.javascriptEnabled ===================================== fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt ===================================== @@ -485,7 +485,9 @@ class SettingsFragment : PreferenceFragmentCompat() { } preferencePrioritizeOnions?.setOnPreferenceChangeListener<Boolean> { preference, newValue -> - preference.context.components.core.engine.settings.prioritizeOnions = newValue + preference.context.settings().preferences.edit() + .putBoolean(preference.key, newValue).apply() + requireComponents.core.engine.settings.prioritizeOnions = newValue true } View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/a61… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/a61… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • ...
  • 1864
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.