New Release: Tor Browser 14.5

Tor Browser 14.5 is now available from the Tor Browser download page and distribution directory. This release marks the introduction of Connection Assist to Android, empowering mobile users who are subjected to strict censorship to unblock Tor at the press of a button. In addition, the Belarusian, Bulgarian and Portuguese (Portugal) languages are now available across all platforms.
What's new?
Connection Assist for Android
Tor aspires to connect as many people to the free and open internet as possible. But what happens if the Tor network itself is blocked in your country, by your ISP, or on your local network? The answer lies in bridges: a type of relay that's hidden from censors using various techniques we collectively call Pluggable Transports. However, censors may have found and blocked certain bridges already, and what works for one country or network may not work for another. This means that the process to find a working bridge to unblock Tor required some trial and error, and placed an undue burden on users who are subjected to strict censorship.
To simplify this process and help more users connect to Tor, we released Connection Assist for Linux, macOS and Windows in Tor Browser 11.5. Subsequently, should Tor Browser fail to establish a direct connection to the Tor network, Connection Assist will offer to find and try bridges for you. But before this feature could be made available on Android, we had to embark on a multi-year effort to refactor our tor integration across each platform first. This project has now reached an important milestone, and we're proud to announce the release of Connection Assist for Android today.
On a technical level, this means both desktop and Android now benefit from a shared backend (to a degree) and a leaner codebase, thanks to the elimination of a significant amount of legacy and redundant code. On a human level, not only is Connection Assist now available for Android, but Tor Browser users can expect more stable and less error-prone connections in general. In addition, this refactor provides a more robust foundation for future improvements too, such as making the circuit display available on Android, or potentially transitioning to arti in the further future.
Привет. Здравейте. Olá.
In order for Tor Browser to be accessible to as many people as possible, it needs to speak their languages. Thanks to the hard work and dedication of our volunteers, and the continued support of Localization Lab, three additional languages are now available on both desktop and Android: Belarusian, Bulgarian and Portuguese (Portugal). To check these out, follow these steps to change Tor Browser's language:
- On Linux, macOS or Windows, go to ☰ > Settings > General > Language and Appearance > Language.
- On Android, go to ⋮ > Settings > General > Language.
If you spot an error in these or any other language, you can learn more about how to contribute to the translation of Tor Browser, its documentation and our websites on our Community portal. Becoming a Tor translator is one of the most impactful ways you can help at-risk and censored internet users safely access Tor.
Small but mighty improvements
It's easy to focus on the big features at the expense of smaller things in release posts like these. However, smaller improvements can be just as impactful as the big ticket items, and help contribute towards the long-term usability and stability of Tor Browser. For instance, over the last few months our developers have invested considerable time into fixes like these:
Following similar improvements to Android in Tor Browser 13.5, the layout of Tor logs on desktop has been enhanced to aid readability. Logs now "stream" live on desktop too, so that you no longer need to close and reopen the dialog to refresh your logs.
Various edge-cases in Connection Assist's logic have been ironed out, and Tor Browser now makes fewer calls using moat (a type of brief, non-Tor connection that uses domain fronting) when diagnosing connection issues. Tor Browser for Desktop will also deliver warnings when changes to Tor Browser's Connection Settings (like configuring bridges) fail to apply, instead of failing silently, which wasn't good.
Quitting Tor Browser via the "Quit" menu item on Android now does a more thorough job of ending background processes and clearing recent tasks. Similarly, we've restored an older feature whereby Tor Browser will quit itself and close all tabs in the process if you back out of the app in a hurry – which is handy in a pinch.
These are just a few examples of some of the smaller improvements we've been working on. For a full accounting of all changes, please see the changelog below.
Known issues
Tor Browser 14.5 comes with a number of known issues that can be found in Tor Browser's issue tracker.
Get involved
If you find a bug or have a suggestion for how we could improve this release, we'd love to hear your feedback. If you would like to contribute to a future release, please see our guide for new contributors to get started.
Contributors <3
Thanks to all of the teams across Tor, and the wider community, who contributed to this release. In particular we'd like to extend our gratitude to the following volunteers who have contributed their expertise, labor and time:
- cschutijser
- cypherpunks1
- NoisyCoil
- thorin
Full changelog
The full changelog since Tor Browser 14.0.9 is:
- All Platforms
- Bug tor-browser#41710: Refactor about:torconnects relation to TorConnectParent
- Bug tor-browser#41921: Clean up initialisation and bridges conflict between TorSettings and TorConnect
- Bug tor-browser#42300: Do not store logs inside TorProvider
- Bug tor-browser#43308: Only allow "about:" pages to have access to contentaccessible branding assets
- Bug tor-browser#43323: Expose a stable asset from chrome:// to identify Tor, Base, and Mullvad Browser
- Bug tor-browser#43334: Developer Tools lacks data for Responsive Design Mode and Compatibility
- Bug tor-browser#43336: Move branding files out of torbutton
- Bug tor-browser#43337: Add branding files to translation CI
- Bug tor-browser#43345: Translation CI: Exclude android strings from the legacy branch
- Bug tor-browser#43446: Change the Tor Browser name between releases
- Bug tor-browser#43463: Include moat circumvention countries in the build (tor-browser part)
- Bug tor-browser#43488: Handle Moat connection errors and other non-bootstrapping errors in TorConnect
- Bug tor-browser#43490: Use lower case "n" for "Tor network" in the UI
- Bug tor-browser#43524: Enable new locales: be, bg and pt-PT
- Bug tor-browser#43529: AutoBootstrapAttempt cancel does not await BootstrapAttempt.cancel
- Bug tor-browser#43551: Backport Mozilla Bug 1924070 - modify H.264 extradata to match sample conversion code.
- Bug tor-browser#43575: Cleanup channel preferences
- Bug tor-browser#43628: Handle unavailability of NetworkLinkService API in Tor Connect
- Windows + macOS + Linux
- Bug tor-browser#40473: Tor logs UI not updated as new logs come in
- Bug tor-browser#41051: Replace Noto Sans Myanmar with Pyidaungsu
- Bug tor-browser#41755: Show the link to about:support in the help menu
- Bug tor-browser#41831: Some .tor.onion sites are not displaying the underlying V3 onion address
- Bug tor-browser#41919: Add temporarily visible web content-size overlay after resizing window when letterboxing is enabled
- Bug tor-browser#42186: Drop about:tbupdate
- Bug tor-browser#42550: Do not re-try auto-bootstrapping after the user selects a specific region in about:torconnect
- Bug tor-browser#42597: Lox.generateInvite does not convert JSON object to string
- Bug tor-browser#42656: about:torconnect new url location override (maybeUpdateOpenLocationForTorConnect) mostly does nothing
- Bug tor-browser#42670: Letterboxing sometimes visible even if disabled
- Bug tor-browser#42720: Link to release notes missing from "About Tor Browser" window
- Bug tor-browser#42739: Fix localization in the profile error dialog
- Bug tor-browser#42802: Make use of
:has
CSS selector - Bug tor-browser#43130: Adjust preferences for contrast theme or forced colors
- Bug tor-browser#43189: Remove privacy.resistFingerprinting.spoofOsInUserAgentHeader machinery entirely
- Bug tor-browser#43205: newwin / letterboxing rounding with subpixels is off
- Bug tor-browser#43237: Tweak Tor circuit display panel for screen readers
- Bug tor-browser#43254: Cancel Moat requests when no longer needed
- Bug tor-browser#43263: Onion site keys: add some alerts for screen readers
- Bug tor-browser#43294: Replace
Actor
willDestroy
withdidDestroy
- Bug tor-browser#43314: Tidy up connection preferences for screen readers and keyboard users
- Bug tor-browser#43320: Improve how bridge settings appear in search results
- Bug tor-browser#43321: Do not focus the connect button if the user has never connected before
- Bug tor-browser#43328: Improve tor log dialog
- Bug tor-browser#43398: tor-urlbar-button-plain hover styling is overwritten by tor-button rule
- Bug tor-browser#43405: Handle failing to apply tor settings
- Bug tor-browser#43406: Hide the "Onion Available" button whilst the "Connect" button is shown
- Bug tor-browser#43461: Drop our wordmark padding
- Bug tor-browser#43462: Use NetworkLinkService instead of Moat for the internet test
- Bug tor-browser#43465: Show the urlbar Connect button during a bootstrap or final error
- Bug tor-browser#43466: Drop unnecessary CSS rules in branding aboutDialog.css
- Bug tor-browser#43647: Race condition in about:tor prevents displaying localised survey banner
- Bug tor-browser#43469: Rename "Quickstart" toggle as "Connect automatically" (Desktop)
- Bug tor-browser#43502: Move openTorConnect and getRedirectUrl to TorConnectParent
- Bug tor-browser#43531: Use "label" attribute rather than textContent for the bridge dialog XUL buttons
- Bug tor-browser#43547: Cannot remove the final bridge
- Bug tor-browser#43563: TorConnect country/region names should change based on the app language
- Bug tor-browser#43632: Letterboxing size indicator may display data from a background tab
- Bug tor-browser#43642: New tab shows letterboxing size indicator
- Bug tor-browser#43653: privacy.resistFingerprinting.spoofOsInUserAgentHeader is still in our pref file even though we ripped out the code
- Windows
- Bug tor-browser#43402: set browser.startup.blankWindow false
- Linux
- Bug tor-browser#30970: Different window borders in XFCE can lead to different, not rounded window sizes
- Bug tor-browser#41786: Remove old fontconfig stuff at the next watershed update
- Bug tor-browser#41799: Make lack of fonts.conf less of a footgun
- Bug tor-browser#43330: System fonts leak when emptying the allow list on Linux
- Bug tor-browser-build#41297: Add video codecs dependencies (recommends) on the Debian package
- Bug tor-browser-build#41298: Remove
--detach
parameter from .desktop files - Bug tor-browser-build#41312: Remove comment in start-browser about --class and --name parameters
- Android
- Bug tor-browser#41188: Implement Android-native Connection Assist UI
- Bug tor-browser#42251: Expose TorConnect lifecycle events to fenix
- Bug tor-browser#42651: Finishing bootstrapping kicks the user out of settings, interupting whatever they were doing
- Bug tor-browser#43091: Delete unused android strings
- Bug tor-browser#43198: Remove "Learn more" link from Android's no-internet error
- Bug tor-browser#43199: Bootstrapping bar needs a little TLC on Android (Part 1)
- Bug tor-browser#43222: All tor logs timestamps reset to current time when opening screen
- Bug tor-browser#43229: Buttons that open links can be accessed before torbrowser is bootstrapped, leaving the app in a bad state
- Bug tor-browser#43232: Make the Android Meek transport easier to debug
- Bug tor-browser#43241: Improve hiding non-private tab features on Android
- Bug tor-browser#43251: Enable tab suggestions and autocomplete for private tabs on Android
- Bug tor-browser#43329: Remove remaining traces of the old Bootstrap on Android
- Bug tor-browser#43350: Remove all caps comment from android string
- Bug tor-browser#43351: Don't force ALL CAPS for the fenix snackbar action button text
- Bug tor-browser#43359: Improper handling of TorBootstrapChangeListener with respect to system onDestroy() calls for HomeActivity
- Bug tor-browser#43360: Replace custom variable isBeingRecreated with built-in isFinishing function
- Bug tor-browser#43361: Move code relating to
onTerminate()
inFenixApplication.kt
- Bug tor-browser#43368: Add @Suppress for incorrect linting error "Overriding method should call super. onNewIntent"
- Bug tor-browser#43408: Access TorConnect.quickstart separately from TorSettings.getSettings on Android
- Bug tor-browser#43464: TBA Alpha and Nightly cannot be debugged with about:debugging
- Bug tor-browser#43473: Rename "Quickstart" toggle as "Connect automatically" (Android)
- Bug tor-browser#43480: Split up TorConnectionAssistViewModel for better readibility and performance.
- Bug tor-browser#43498: Uplift tor-browser#43129: about:neterror cannot display SVG on Android with Security Level Safest
- Bug tor-browser#43528: Improper handling of TorBootstrapChangeListener in HomeActivity
- Bug tor-browser#43565: The quit button on Android doesn't actually exit
- Bug tor-browser#43576: Connection Assist on Android Polish
- Bug tor-browser#43581: Bookmarks are failing to load on Tor Browser Android Alpha 14.5a5
- Bug tor-browser#43593: Use "region" instead of "country" in connect assist
- Bug tor-browser#43604: TorDomainIsolator routinely clears Android browser circuit data
- Bug tor-browser#43648: Survey banner isn't displaying for other locales on Android
- Bug tor-browser#43633: TorAndroidIntegration.regionNamesGet() always returns region names in english
- Bug tor-browser-build#41422: Patch viaduct in Application Services to always return a backend error
- Build System
- All Platforms
- Bug tor-browser-build#41040: Add configuration to rbm.conf to select channel and platforms
- Bug tor-browser-build#41121: Use the official Go binaries for bootstrapping
- Bug tor-browser-build#41281: Better dev defaults for fetch variable
- Bug tor-browser-build#41288: Avoid unneeded git checkouts when possible
- Bug tor-browser-build#41304: Add a browser commit tag+signing script
- Bug tor-browser-build#41306: Container dependencies are sorted before resolving templates
- Bug tor-browser-build#41307: Container dependencies are not filtered for duplicates
- Bug tor-browser-build#41326: Remove var/torbrowser_legacy_version from rbm.conf in alpha/nightly
- Bug tor-browser-build#41358: Update sign-tag script to handle rapid-release nightly branches
- Bug tor-browser-build#41365: Indent download*.json files
- Bug tor-browser-build#41372: Handle branding names in tor-browser-build
- Bug tor-browser-build#41379: Include moat circumvention countries in the build (tor-browser-build part)
- Bug tor-browser-build#41381: Usability improvements for the browser commit tagging script
- Bug tor-browser-build#41389: Remove need to update set-config.tbb-version
- Bug tor-browser-build#41394: Fix upload-update_responses-to-staticiforme for mullvadbrowser
- Bug tor-browser-build#41398: Build snowflake from main on nightlies
- Bug tor-browser-build#41406: Restore -desktop and -android Makefile targets.
- Bug tor-browser-build#41409: Create a script for quickly setting up protected branches
- Bug tor-browser-build#41411: Update licenses for PTs
- Bug tor-browser-build#41417: Bump the conjure version we ship
- Bug tor-browser-build#41419: Add comment in downloads.json to mention that the file is deprecated, and that download-$platform.json should be used instead
- Bug tor-browser-build#41426: Set the Lyrebird version
- Bug rbm#40006: Add option to avoid doing a git checkout when using the exec template function
- Bug rbm#40079: Make
fetch: if_needed
fetch existing branches - Bug rbm#40081: Support apt option for not installing recommended dependencies
- Bug rbm#40082: With
fetch: if_needed
, rbm is doing a git fetch when it shouldn't, when using a fixed commit - Bug rbm#40083: rbm creates out/$project directories with mode 0700
- Windows + Linux + Android
- Updated Go to 1.23.8
- Bug tor-browser-build#41386: Upgrade Go to 1.23 for Windows, Linux, and Android
- Windows + macOS + Linux
- Bug tor-browser-build#40799: Remove legacy locale iteration in build and signing scripts
- Bug tor-browser-build#41356: Add redirects to make 14.0a4 a watershed
- Bug tor-browser-build#41363: Change update-response generation script to create one commit per OS+arch tuple
- Bug tor-browser-build#41374: Remove support for migrate_archs and migrate_langs in update_responses
- Bug tor-browser-build#41401: Replace Noto Sans Myanmar with Pyidaungsu
- Windows + macOS
- Bug tor-browser-build#41349: Wrong copyright year makes build non-reproducible
- macOS
- Bug tor-browser-build#41403: The rcodesign step has a wrong dmg name in alpha
- Linux
- Bug tor-browser-build#41142: Complete the toolchain for linux-aarch64
- Bug tor-browser-build#41266: Build the Tor and Mullvad Browsers for aarch64 Linux
- Bug tor-browser-build#41329: Do not install python2.7-minimal in the linux-aarch64 firefox container
- Bug tor-browser-build#41331: Make update_responses find linux-aarch64 mar files
- Android
- Bug tor-browser#42669: Convert majority of application-services functionality to no-op
- Bug tor-browser#43518: Verify existence of localProperties.dependencySubstitutions.geckoviewTopsrcdir before substituting
- Bug tor-browser-build#41387: Fix Golang toolchain breakage for lyrebird: linkname
- Bug tor-browser-build#41400: Add branding localization to GeckoView
- All Platforms
Comments
We encourage respectful, on-topic comments. Comments that violate our Code of Conduct will be deleted. Off-topic comments may be deleted at the discretion of the moderators. Please do not comment as a way to receive support or to report bugs on a post unrelated to a release. If you are looking for support, please see our FAQ, user support forum or ways to get in touch with us.