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

  • 18606 discussions
[Git][tpo/applications/tor-browser-build] Pushed new tag mb-14.5a4-build1
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed new tag mb-14.5a4-build1 at The Tor Project / Applications / tor-browser-build -- 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
0 0
[Git][tpo/applications/tor-browser-build] Pushed new tag tbb-14.5a4-build1
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed new tag tbb-14.5a4-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 41369,41370: Prepare Tor+Mullvad Browser 14.5a4
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 136839a7 by Morgan at 2025-03-11T17:29:48+00:00 Bug 41369,41370: Prepare Tor+Mullvad Browser 14.5a4 - - - - - 9 changed files: - projects/browser/Bundle-Data/Docs-MB/ChangeLog.txt - projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt - projects/firefox/config - projects/geckoview/config - projects/go/config - projects/openssl/config - projects/translation/config - projects/zstd/config - rbm.conf Changes: ===================================== projects/browser/Bundle-Data/Docs-MB/ChangeLog.txt ===================================== @@ -1,3 +1,27 @@ +Mullvad Browser 14.5a4 - March 12 2025 + * All Platforms + * Updated Firefox to 128.8.0esr + * Bug 393: Rebase Mullvad Browser Alpha onto 128.8.0esr [mullvad-browser] + * Bug 395: Set Mullvad Leta as default search engine [mullvad-browser] + * Bug 404: Incorrect information in `about:rights` [mullvad-browser] + * Bug 43205: newwin / letterboxing rounding with subpixels is off [tor-browser] + * Bug 43551: Backport Mozilla Bug 1924070 - modify H.264 extradata to match sample conversion code.... [tor-browser] + * Linux + * Bug 394: Missing package when try to install Mullvad Browser in Debian Trixie [mullvad-browser] + * Bug 30970: Different window borders in XFCE can lead to different, not rounded window sizes [tor-browser] + * Build System + * All Platforms + * Bug 40799: Remove legacy locale iteration in build and signing scripts [tor-browser-build] + * Bug 41040: Add configuration to rbm.conf to select channel and platforms [tor-browser-build] + * Bug 41363: Change update-response generation script to create one commit per OS+arch tuple [tor-browser-build] + * Bug 41374: Remove support for migrate_archs and migrate_langs in update_responses [tor-browser-build] + * Bug 41380: Update kick-devmole script to use Mullvad's new GitHub action [tor-browser-build] + * Bug 41381: Usability improvements for the browser commit tagging script [tor-browser-build] + * Bug 41382: Replace gitlab templates ReleasePrep label references with Apps::Type::ReleasePreparation [tor-browser-build] + * Bug 41383: Add clairehurst to list of accepted firefox/geckoview signers [tor-browser-build] + * Bug 41389: Remove need to update set-config.tbb-version [tor-browser-build] + * Bug 40082: With `fetch: if_needed`, rbm is doing a git fetch when it shouldn't, when using a fixed commit [rbm] + Mullvad Browser 14.5a3 - February 10 2025 * All Platforms * Updated Firefox to 128.7.0esr ===================================== projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt ===================================== @@ -1,3 +1,59 @@ +Tor Browser 14.5a4 - March 12 2025 + * All Platforms + * Updated OpenSSL to 3.0.16 + * Bug 43446: Change the Tor Browser name between releases [tor-browser] + * Bug 43463: Include moat circumvention countries in the build (tor-browser part) [tor-browser] + * Bug 43487: Rebase Tor Browser Alpha onto 128.8.0esr [tor-browser] + * Bug 43529: AutoBootstrapAttempt cancel does not await BootstrapAttempt.cancel [tor-browser] + * Bug 43524: Enable new locales: be, bg and pt-PT [tor-browser] + * Bug 43551: Backport Mozilla Bug 1924070 - modify H.264 extradata to match sample conversion code.... [tor-browser] + * Windows + macOS + Linux + * Updated Firefox to 128.8.0esr + * Bug 40473: Tor logs do not update in about:preferences#tor as new logs come in [tor-browser] + * Bug 43205: newwin / letterboxing rounding with subpixels is off [tor-browser] + * Bug 43328: Improve tor log dialog [tor-browser] + * Bug 43465: Show the urlbar Connect button during a bootstrap or final error [tor-browser] + * Bug 43469: Rename "Quickstart" toggle as "Connect automatically" (Desktop) [tor-browser] + * Bug 43502: Move openTorConnect and getRedirectUrl to TorConnectParent [tor-browser] + * Bug 43504: Implement User Survey UX (Desktop) [tor-browser] + * Bug 43547: Cannot remove the final bridge [tor-browser] + * Linux + * Bug 30970: Different window borders in XFCE can lead to different, not rounded window sizes [tor-browser] + * Android + * Updated GeckoView to 128.8.0esr + * Updated Zstandard to 1.5.7 + * Bug 43329: Remove remaining traces of the old Bootstrap on Android [tor-browser] + * Bug 43408: Access TorConnect.quickstart separately from TorSettings.getSettings on Android [tor-browser] + * Bug 43480: Split up TorConnectionAssistViewModel for better readibility and performance. [tor-browser] + * Bug 43498: Uplift tor-browser#43129: about:neterror cannot display SVG on Android with Security Level Safest [tor-browser] + * Bug 43528: Improper handling of TorBootstrapChangeListener in HomeActivity [tor-browser] + * Build System + * All Platforms + * Updated Go to 1.23.7 + * Bug 41040: Add configuration to rbm.conf to select channel and platforms [tor-browser-build] + * Bug 41121: Use the official Go binaries for bootstrapping [tor-browser-build] + * Bug 41372: Handle branding names in tor-browser-build [tor-browser-build] + * Bug 41379: Include moat circumvention countries in the build (tor-browser-build part) [tor-browser-build] + * Bug 41380: Update kick-devmole script to use Mullvad's new GitHub action [tor-browser-build] + * Bug 41381: Usability improvements for the browser commit tagging script [tor-browser-build] + * Bug 41382: Replace gitlab templates ReleasePrep label references with Apps::Type::ReleasePreparation [tor-browser-build] + * Bug 41383: Add clairehurst to list of accepted firefox/geckoview signers [tor-browser-build] + * Bug 41384: OpenSSL hash files have changed format [tor-browser-build] + * Bug 41389: Remove need to update set-config.tbb-version [tor-browser-build] + * Bug 40082: With `fetch: if_needed`, rbm is doing a git fetch when it shouldn't, when using a fixed commit [rbm] + * Windows + macOS + Linux + * Bug 40799: Remove legacy locale iteration in build and signing scripts [tor-browser-build] + * Bug 41363: Change update-response generation script to create one commit per OS+arch tuple [tor-browser-build] + * Bug 41374: Remove support for migrate_archs and migrate_langs in update_responses [tor-browser-build] + * Windows + Linux + Android + * Bug 41386: Upgrade Go to 1.23 for Windows, Linux, and Android [tor-browser-build] + * Linux + * Bug 41337: Remove libstdc++ from Linux tor-expert-bundle [tor-browser-build] + * Android + * Bug 42669: Remove dependency on Application-Services [tor-browser] + * Bug 43518: Verify existence of localProperties.dependencySubstitutions.geckoviewTopsrcdir before substituting [tor-browser] + * Bug 41387: Fix Golang toolchain breakage for lyrebird: linkname [tor-browser-build] + Tor Browser 14.5a3 - February 10 2025 * All Platforms * Bug 41065: navigator.storage "best effort" + "persistent" leak partitionSize/totalSpace entropy [tor-browser] ===================================== projects/firefox/config ===================================== @@ -20,7 +20,7 @@ var: browser_series: '14.5' browser_rebase: 1 browser_branch: '[% c("var/browser_series") %]-[% c("var/browser_rebase") %]' - browser_build: 1 + browser_build: 2 branding_directory_prefix: 'tb' copyright_year: '[% exec("git show -s --format=%ci " _ c("git_hash") _ "^{commit}", { exec_noco => 1 }).remove("-.*") %]' nightly_updates_publish_dir: '[% c("var/nightly_updates_publish_dir_prefix") %]nightly-[% c("var/osname") %]' ===================================== projects/geckoview/config ===================================== @@ -22,7 +22,7 @@ var: browser_series: '14.5' browser_rebase: 1 browser_branch: '[% c("var/browser_series") %]-[% c("var/browser_rebase") %]' - browser_build: 1 + browser_build: 2 gitlab_project: https://gitlab.torproject.org/tpo/applications/tor-browser git_commit: '[% exec("git rev-parse " _ c("git_hash") _ "^{commit}", { exec_noco => 1 }) %]' deps: ===================================== projects/go/config ===================================== @@ -1,11 +1,11 @@ # vim: filetype=yaml sw=2 -version: '1.23.6' +version: '1.23.7' filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' container: use_container: 1 var: - source_sha256: 039c5b04e65279daceee8a6f71e70bd05cf5b801782b6f77c6e19e2ed0511222 + source_sha256: 7cfabd46b73eb4c26b19d69515dd043d7183a6559acccd5cfdb25eb6b266a458 no_crosscompile: 1 setup: | mkdir -p /var/tmp/dist ===================================== projects/openssl/config ===================================== @@ -1,5 +1,5 @@ # vim: filetype=yaml sw=2 -version: 3.0.15 +version: 3.0.16 filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' container: use_container: 1 @@ -36,5 +36,5 @@ input_files: - name: '[% c("var/compiler") %]' project: '[% c("var/compiler") %]' - URL: 'https://github.com/openssl/openssl/releases/download/openssl-[% c("version") %]/openssl-[% c("version") %].tar.gz' - sha256sum: 23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533 + sha256sum: 57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86 name: openssl ===================================== projects/translation/config ===================================== @@ -12,19 +12,19 @@ compress_tar: 'gz' steps: base-browser: base-browser: '[% INCLUDE build %]' - git_hash: 93eddbd3888852c09e130d536fb3c9bd7e4e6f57 + git_hash: 292c09a35bcda153068e77a35107baf034929067 targets: nightly: git_hash: 'base-browser' tor-browser: tor-browser: '[% INCLUDE build %]' - git_hash: e7a334a4adb16e506515940e81f41964ef16af76 + git_hash: f969264d8ca95f8d75a8dfcd61b78cb7f7e5f385 targets: nightly: git_hash: 'tor-browser' mullvad-browser: mullvad-browser: '[% INCLUDE build %]' - git_hash: 6a1ef41c664a5185e25ca2c4bbf5d7447bd888a7 + git_hash: ceaea33b0fa3ad7cf0f563392185bc9e8519079f targets: nightly: git_hash: 'mullvad-browser' @@ -32,7 +32,7 @@ steps: fenix: '[% INCLUDE build %]' # We need to bump the commit before releasing but just pointing to a branch # might cause too much rebuidling of the Firefox part. - git_hash: e4f5825b1125e2c8c2aa8d4fdaa7e002d8f2934a + git_hash: 16ce780d14da56fd304d2bde886848a6ca19d512 compress_tar: 'zst' targets: nightly: ===================================== projects/zstd/config ===================================== @@ -1,7 +1,7 @@ # vim: filetype=yaml sw=2 -version: 1.5.6 +version: 1.5.7 git_url: https://github.com/facebook/zstd.git -git_hash: 794ea1b0afca0f020f4e57b6732332231fb23c70 +git_hash: f8745da6ff1ad1e7bab384bd1f9d742439278e99 filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' container: ===================================== rbm.conf ===================================== @@ -73,11 +73,11 @@ buildconf: git_signtag_opt: '-s' var: - torbrowser_version: '14.5a3' + torbrowser_version: '14.5a4' torbrowser_build: 'build1' # 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: '2025/02/10 18:18:25' + browser_release_date: '2025/03/11 16:46:53' browser_release_date_timestamp: '[% USE date; date.format(c("var/browser_release_date"), "%s") %]' browser_default_channel: alpha browser_platforms: @@ -96,10 +96,9 @@ var: updater_enabled: 1 build_mar: 1 torbrowser_incremental_from: + - 14.5a3 - 14.5a2 - 14.5a1 - - '[% IF c("var/mullvad-browser") %]14.0a10[% END %]' - - '[% IF c("var/tor-browser") %]14.0a9[% END %]' mar_channel_id: '[% c("var/projectname") %]-torproject-[% c("var/channel") %]' # By default, we sort the list of installed packages. This allows sharing View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/1… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/1… 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 43524: Enable new locales: be (Belarusian), bg (Bulgarian) and pt-PT (Portugal Portguese)
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: d6c1620f by Morgan at 2025-03-11T16:43:13+00:00 Bug 43524: Enable new locales: be (Belarusian), bg (Bulgarian) and pt-PT (Portugal Portguese) - - - - - 2 changed files: - projects/browser/windows-installer/add-strings.py - rbm.conf Changes: ===================================== projects/browser/windows-installer/add-strings.py ===================================== @@ -27,6 +27,8 @@ args = parser.parse_args() # languages.nsh. languages = { "ar": "Arabic", + "be": "Belarusian", + "bg": "Bulgarian", "ca": "Catalan", "cs": "Czech", "da": "Danish", @@ -54,6 +56,7 @@ languages = { "nl": "Dutch", "pl": "Polish", "pt-BR": "PortugueseBR", + "pt-PT": "Portuguese", "ro": "Romanian", "ru": "Russian", "sq": "Albanian", @@ -64,10 +67,6 @@ languages = { "vi": "Vietnamese", "zh-CN": "SimpChinese", "zh-TW": "TradChinese", - # Nightly-only at the moment - "be": "Belarusian", - "bg": "Bulgarian", - "pt-PT": "Portuguese", } replacements = { ===================================== rbm.conf ===================================== @@ -133,6 +133,8 @@ var: # projects/browser/windows-installer/add-strings.py. locales: - ar + - be + - bg - ca - cs - da @@ -159,6 +161,7 @@ var: - nl - pl - pt-BR + - pt-PT - ro - ru - sq @@ -169,11 +172,10 @@ var: - vi - zh-CN - zh-TW - - '[% IF c("var/nightly") %]be[% END %]' - - '[% IF c("var/nightly") %]bg[% END %]' - - '[% IF c("var/nightly") %]pt-PT[% END %]' locales_mobile: - ar + - be + - bg - ca - cs - da @@ -200,6 +202,7 @@ var: - nl - pl - pt-rBR + - pt-rPT - ro - ru - sq View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/d… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/d… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser] Pushed new tag mullvad-browser-128.8.0esr-14.5-1-build2
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed new tag mullvad-browser-128.8.0esr-14.5-1-build2 at The Tor Project / Applications / Mullvad Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/tree/mullv… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.8.0esr-14.5-1] 5 commits: Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp]
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed to branch mullvad-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser Commits: dfb650ec by Tara at 2025-03-11T16:16:15+01:00 Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp] Differential Revision: https://phabricator.services.mozilla.com/D236606 - - - - - df562bda by John Schanck at 2025-03-11T16:16:16+01:00 Bug 1922357 - disallow the fido: URI scheme. a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D237313 Differential Revision: https://phabricator.services.mozilla.com/D238681 - - - - - 6edc4c91 by Jeff Boek at 2025-03-11T16:16:17+01:00 Bug 1928334 - Handles animating activities a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D238342 Differential Revision: https://phabricator.services.mozilla.com/D238845 - - - - - 569862aa by Tom Schuster at 2025-03-11T16:16:19+01:00 Bug 1942022 - Improve the about:protections CSP. r=firefox-desktop-core-reviewers ,mossop Differential Revision: https://phabricator.services.mozilla.com/D234507 - - - - - 12c981ec by Tom Schuster at 2025-03-11T16:16:20+01:00 Bug 1942025 - Improve the about:privatebrowsing CSP. r=firefox-desktop-core-reviewers ,Gijs Differential Revision: https://phabricator.services.mozilla.com/D234508 - - - - - 11 changed files: - browser/components/privatebrowsing/content/aboutPrivateBrowsing.html - browser/components/protections/content/protections.html - mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt - mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt - mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt - mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt - mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt - mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java - mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java Changes: ===================================== browser/components/privatebrowsing/content/aboutPrivateBrowsing.html ===================================== @@ -10,7 +10,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; img-src chrome: blob:; object-src 'none';" /> <meta name="color-scheme" content="light dark" /> <link rel="icon" href="chrome://browser/skin/privatebrowsing/favicon.svg" /> ===================================== browser/components/protections/content/protections.html ===================================== @@ -8,7 +8,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; object-src 'none'" /> <meta name="color-scheme" content="light dark" /> <link rel="localization" href="branding/brand.ftl" /> ===================================== mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt ===================================== @@ -1818,7 +1818,7 @@ class GeckoEngineSession( internal const val ABOUT_BLANK = "about:blank" internal const val JS_SCHEME = "javascript" internal val BLOCKED_SCHEMES = - listOf("file", "resource", JS_SCHEME) // See 1684761 and 1684947 + listOf("file", "resource", "fido", JS_SCHEME) // See 1684761 and 1684947 /** * Provides an ErrorType corresponding to the error code provided. ===================================== mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt ===================================== @@ -631,6 +631,11 @@ class GeckoEngineSessionTest { engineSession.loadUrl("RESOURCE://package/test.text") verify(geckoSession, never()).load(GeckoSession.Loader().uri("resource://package/test.text")) verify(geckoSession, never()).load(GeckoSession.Loader().uri("RESOURCE://package/test.text")) + + engineSession.loadUrl("fido:/12345678") + engineSession.loadUrl("FIDO:/12345678") + verify(geckoSession, never()).load(GeckoSession.Loader().uri("fido:/12345678")) + verify(geckoSession, never()).load(GeckoSession.Loader().uri("FIDO:/12345678")) } @Test ===================================== mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt ===================================== @@ -313,6 +313,7 @@ class AppLinksUseCases( "https", "moz-extension", "moz-safe-about", "resource", "view-source", "ws", "wss", "blob", ) - internal val ALWAYS_DENY_SCHEMES: Set<String> = setOf("jar", "file", "javascript", "data", "about", "content") + internal val ALWAYS_DENY_SCHEMES: Set<String> = + setOf("jar", "file", "javascript", "data", "about", "content", "fido") } } ===================================== mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt ===================================== @@ -47,6 +47,7 @@ class AppLinksUseCasesTest { private val javascriptUrl = "javascript:'hello, world'" private val jarUrl = "jar:file://some/path/test.html" private val contentUrl = "content://media/external_primary/downloads/12345" + private val fidoPath = "fido:12345678" private val fileType = "audio/mpeg" private val layerUrl = "https://example.com" private val layerPackage = "com.example.app" @@ -215,6 +216,15 @@ class AppLinksUseCasesTest { assertFalse(redirect.isRedirect()) } + @Test + fun `A fido url is not an app link`() { + val context = createContext(Triple(fidoPath, appPackage, "")) + val subject = AppLinksUseCases(context, { true }) + + val redirect = subject.interceptedAppLinkRedirect(fidoPath) + assertFalse(redirect.isRedirect()) + } + @Test fun `Will not redirect app link if browser option set to false and scheme is supported`() { val context = createContext(Triple(appUrl, appPackage, "")) ===================================== mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt ===================================== @@ -9,6 +9,7 @@ import android.content.Intent import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting.Companion.PRIVATE import androidx.core.view.isVisible +import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import kotlinx.coroutines.CoroutineScope @@ -1094,7 +1095,15 @@ class PromptFeature private constructor( emitPromptDismissedFact(promptName = promptRequest::class.simpleName.ifNullOrEmpty { "" }) } + @VisibleForTesting + internal fun redirectDialogFragmentIsActive() = + (fragmentManager.findFragmentByTag("SHOULD_OPEN_APP_LINK_PROMPT_DIALOG") as? DialogFragment) != null + private fun canShowThisPrompt(promptRequest: PromptRequest): Boolean { + if (redirectDialogFragmentIsActive()) { + return false + } + return when (promptRequest) { is SingleChoice, is MultipleChoice, ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -798,7 +798,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { return false } - final override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { ProfilerMarkers.addForDispatchTouchEvent(components.core.engine.profiler, ev) return super.dispatchTouchEvent(ev) } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt ===================================== @@ -7,6 +7,7 @@ package org.mozilla.fenix.customtabs import android.app.assist.AssistContent import android.net.Uri import android.os.Build +import android.view.MotionEvent import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import mozilla.components.browser.state.selector.findCustomTab @@ -24,6 +25,8 @@ const val EXTRA_IS_SANDBOX_CUSTOM_TAB = "org.mozilla.fenix.customtabs.EXTRA_IS_S */ @Suppress("TooManyFunctions") open class ExternalAppBrowserActivity : HomeActivity() { + var isFinishedAnimating = false + override fun onResume() { super.onResume() @@ -74,4 +77,17 @@ open class ExternalAppBrowserActivity : HomeActivity() { val currentTabUrl = getExternalTab()?.content?.url outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } } + + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + if (!isFinishedAnimating) { + return true + } + + return super.dispatchTouchEvent(ev) + } + + override fun onEnterAnimationComplete() { + super.onEnterAnimationComplete() + isFinishedAnimating = true + } } ===================================== mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java ===================================== @@ -76,6 +76,10 @@ public class IntentUtils { return getSafeIntent(aUri) != null; } + if ("fido".equals(scheme)) { + return false; + } + return true; } ===================================== mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java ===================================== @@ -63,4 +63,10 @@ public class IntentUtilsTest { final String uri = "intent:non_scheme_intent#Intent;end"; assertTrue(IntentUtils.isUriSafeForScheme(uri)); } + + @Test + public void unsafeFidoUri() { + final String uri = "fido:/12345678"; + assertFalse(IntentUtils.isUriSafeForScheme(uri)); + } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/70… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/70… 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-128.8.0esr-14.5-1-build2
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed new tag tor-browser-128.8.0esr-14.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/tor-browser][tor-browser-128.8.0esr-14.5-1] 5 commits: Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp]
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 7b6625d5 by Tara at 2025-03-11T16:09:32+01:00 Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp] Differential Revision: https://phabricator.services.mozilla.com/D236606 - - - - - 3915453d by John Schanck at 2025-03-11T16:09:33+01:00 Bug 1922357 - disallow the fido: URI scheme. a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D237313 Differential Revision: https://phabricator.services.mozilla.com/D238681 - - - - - 3d4b0928 by Jeff Boek at 2025-03-11T16:09:34+01:00 Bug 1928334 - Handles animating activities a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D238342 Differential Revision: https://phabricator.services.mozilla.com/D238845 - - - - - 793ba006 by Tom Schuster at 2025-03-11T16:09:36+01:00 Bug 1942022 - Improve the about:protections CSP. r=firefox-desktop-core-reviewers ,mossop Differential Revision: https://phabricator.services.mozilla.com/D234507 - - - - - b4b62a4c by Tom Schuster at 2025-03-11T16:09:37+01:00 Bug 1942025 - Improve the about:privatebrowsing CSP. r=firefox-desktop-core-reviewers ,Gijs Differential Revision: https://phabricator.services.mozilla.com/D234508 - - - - - 11 changed files: - browser/components/privatebrowsing/content/aboutPrivateBrowsing.html - browser/components/protections/content/protections.html - mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt - mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt - mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt - mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt - mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt - mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java - mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java Changes: ===================================== browser/components/privatebrowsing/content/aboutPrivateBrowsing.html ===================================== @@ -10,7 +10,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; img-src chrome: blob:; object-src 'none';" /> <meta name="color-scheme" content="light dark" /> <link rel="icon" href="chrome://browser/skin/privatebrowsing/favicon.svg" /> ===================================== browser/components/protections/content/protections.html ===================================== @@ -8,7 +8,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; object-src 'none'" /> <meta name="color-scheme" content="light dark" /> <link rel="localization" href="branding/brand.ftl" /> ===================================== mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt ===================================== @@ -1822,7 +1822,7 @@ class GeckoEngineSession( internal const val ABOUT_BLANK = "about:blank" internal const val JS_SCHEME = "javascript" internal val BLOCKED_SCHEMES = - listOf("file", "resource", JS_SCHEME) // See 1684761 and 1684947 + listOf("file", "resource", "fido", JS_SCHEME) // See 1684761 and 1684947 /** * Provides an ErrorType corresponding to the error code provided. ===================================== mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt ===================================== @@ -631,6 +631,11 @@ class GeckoEngineSessionTest { engineSession.loadUrl("RESOURCE://package/test.text") verify(geckoSession, never()).load(GeckoSession.Loader().uri("resource://package/test.text")) verify(geckoSession, never()).load(GeckoSession.Loader().uri("RESOURCE://package/test.text")) + + engineSession.loadUrl("fido:/12345678") + engineSession.loadUrl("FIDO:/12345678") + verify(geckoSession, never()).load(GeckoSession.Loader().uri("fido:/12345678")) + verify(geckoSession, never()).load(GeckoSession.Loader().uri("FIDO:/12345678")) } @Test ===================================== mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt ===================================== @@ -314,6 +314,7 @@ class AppLinksUseCases( "https", "moz-extension", "moz-safe-about", "resource", "view-source", "ws", "wss", "blob", ) - internal val ALWAYS_DENY_SCHEMES: Set<String> = setOf("jar", "file", "javascript", "data", "about", "content") + internal val ALWAYS_DENY_SCHEMES: Set<String> = + setOf("jar", "file", "javascript", "data", "about", "content", "fido") } } ===================================== mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt ===================================== @@ -47,6 +47,7 @@ class AppLinksUseCasesTest { private val javascriptUrl = "javascript:'hello, world'" private val jarUrl = "jar:file://some/path/test.html" private val contentUrl = "content://media/external_primary/downloads/12345" + private val fidoPath = "fido:12345678" private val fileType = "audio/mpeg" private val layerUrl = "https://example.com" private val layerPackage = "com.example.app" @@ -215,6 +216,15 @@ class AppLinksUseCasesTest { assertFalse(redirect.isRedirect()) } + @Test + fun `A fido url is not an app link`() { + val context = createContext(Triple(fidoPath, appPackage, "")) + val subject = AppLinksUseCases(context, { true }) + + val redirect = subject.interceptedAppLinkRedirect(fidoPath) + assertFalse(redirect.isRedirect()) + } + @Test fun `Will not redirect app link if browser option set to false and scheme is supported`() { val context = createContext(Triple(appUrl, appPackage, "")) ===================================== mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt ===================================== @@ -9,6 +9,7 @@ import android.content.Intent import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting.Companion.PRIVATE import androidx.core.view.isVisible +import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import kotlinx.coroutines.CoroutineScope @@ -1094,7 +1095,15 @@ class PromptFeature private constructor( emitPromptDismissedFact(promptName = promptRequest::class.simpleName.ifNullOrEmpty { "" }) } + @VisibleForTesting + internal fun redirectDialogFragmentIsActive() = + (fragmentManager.findFragmentByTag("SHOULD_OPEN_APP_LINK_PROMPT_DIALOG") as? DialogFragment) != null + private fun canShowThisPrompt(promptRequest: PromptRequest): Boolean { + if (redirectDialogFragmentIsActive()) { + return false + } + return when (promptRequest) { is SingleChoice, is MultipleChoice, ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -905,7 +905,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn return false } - final override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { ProfilerMarkers.addForDispatchTouchEvent(components.core.engine.profiler, ev) return super.dispatchTouchEvent(ev) } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt ===================================== @@ -7,6 +7,7 @@ package org.mozilla.fenix.customtabs import android.app.assist.AssistContent import android.net.Uri import android.os.Build +import android.view.MotionEvent import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import mozilla.components.browser.state.selector.findCustomTab @@ -24,6 +25,8 @@ const val EXTRA_IS_SANDBOX_CUSTOM_TAB = "org.mozilla.fenix.customtabs.EXTRA_IS_S */ @Suppress("TooManyFunctions") open class ExternalAppBrowserActivity : HomeActivity() { + var isFinishedAnimating = false + override fun onResume() { super.onResume() @@ -74,4 +77,17 @@ open class ExternalAppBrowserActivity : HomeActivity() { val currentTabUrl = getExternalTab()?.content?.url outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } } + + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + if (!isFinishedAnimating) { + return true + } + + return super.dispatchTouchEvent(ev) + } + + override fun onEnterAnimationComplete() { + super.onEnterAnimationComplete() + isFinishedAnimating = true + } } ===================================== mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java ===================================== @@ -76,6 +76,10 @@ public class IntentUtils { return getSafeIntent(aUri) != null; } + if ("fido".equals(scheme)) { + return false; + } + return true; } ===================================== mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java ===================================== @@ -63,4 +63,10 @@ public class IntentUtilsTest { final String uri = "intent:non_scheme_intent#Intent;end"; assertTrue(IntentUtils.isUriSafeForScheme(uri)); } + + @Test + public void unsafeFidoUri() { + final String uri = "fido:/12345678"; + assertFalse(IntentUtils.isUriSafeForScheme(uri)); + } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/d2b56b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/d2b56b… 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 base-browser-128.8.0esr-14.5-1-build2
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed new tag base-browser-128.8.0esr-14.5-1-build2 at The Tor Project / Applications / Tor Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/base-brow… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-128.8.0esr-14.5-1] 5 commits: Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp]
by ma1 (@ma1) 11 Mar '25

11 Mar '25
ma1 pushed to branch base-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 21515074 by Tara at 2025-03-11T15:57:27+01:00 Bug 1908488 - Improve dialogs. r=android-reviewers,gmalekpour, a=dmeehan [bp] Differential Revision: https://phabricator.services.mozilla.com/D236606 - - - - - d5800762 by John Schanck at 2025-03-11T15:57:32+01:00 Bug 1922357 - disallow the fido: URI scheme. a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D237313 Differential Revision: https://phabricator.services.mozilla.com/D238681 - - - - - 9faca754 by Jeff Boek at 2025-03-11T15:57:33+01:00 Bug 1928334 - Handles animating activities a=dmeehan Original Revision: https://phabricator.services.mozilla.com/D238342 Differential Revision: https://phabricator.services.mozilla.com/D238845 - - - - - 7759f889 by Tom Schuster at 2025-03-11T15:57:35+01:00 Bug 1942022 - Improve the about:protections CSP. r=firefox-desktop-core-reviewers ,mossop Differential Revision: https://phabricator.services.mozilla.com/D234507 - - - - - 0beebec4 by Tom Schuster at 2025-03-11T15:57:36+01:00 Bug 1942025 - Improve the about:privatebrowsing CSP. r=firefox-desktop-core-reviewers ,Gijs Differential Revision: https://phabricator.services.mozilla.com/D234508 - - - - - 11 changed files: - browser/components/privatebrowsing/content/aboutPrivateBrowsing.html - browser/components/protections/content/protections.html - mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt - mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt - mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt - mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt - mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt - mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java - mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java Changes: ===================================== browser/components/privatebrowsing/content/aboutPrivateBrowsing.html ===================================== @@ -10,7 +10,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; img-src chrome: blob:; object-src 'none';" /> <meta name="color-scheme" content="light dark" /> <link rel="icon" href="chrome://browser/skin/privatebrowsing/favicon.svg" /> ===================================== browser/components/protections/content/protections.html ===================================== @@ -8,7 +8,7 @@ <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" - content="default-src chrome: blob:; object-src 'none'" + content="default-src chrome:; object-src 'none'" /> <meta name="color-scheme" content="light dark" /> <link rel="localization" href="branding/brand.ftl" /> ===================================== mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt ===================================== @@ -1818,7 +1818,7 @@ class GeckoEngineSession( internal const val ABOUT_BLANK = "about:blank" internal const val JS_SCHEME = "javascript" internal val BLOCKED_SCHEMES = - listOf("file", "resource", JS_SCHEME) // See 1684761 and 1684947 + listOf("file", "resource", "fido", JS_SCHEME) // See 1684761 and 1684947 /** * Provides an ErrorType corresponding to the error code provided. ===================================== mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/GeckoEngineSessionTest.kt ===================================== @@ -631,6 +631,11 @@ class GeckoEngineSessionTest { engineSession.loadUrl("RESOURCE://package/test.text") verify(geckoSession, never()).load(GeckoSession.Loader().uri("resource://package/test.text")) verify(geckoSession, never()).load(GeckoSession.Loader().uri("RESOURCE://package/test.text")) + + engineSession.loadUrl("fido:/12345678") + engineSession.loadUrl("FIDO:/12345678") + verify(geckoSession, never()).load(GeckoSession.Loader().uri("fido:/12345678")) + verify(geckoSession, never()).load(GeckoSession.Loader().uri("FIDO:/12345678")) } @Test ===================================== mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt ===================================== @@ -313,6 +313,7 @@ class AppLinksUseCases( "https", "moz-extension", "moz-safe-about", "resource", "view-source", "ws", "wss", "blob", ) - internal val ALWAYS_DENY_SCHEMES: Set<String> = setOf("jar", "file", "javascript", "data", "about", "content") + internal val ALWAYS_DENY_SCHEMES: Set<String> = + setOf("jar", "file", "javascript", "data", "about", "content", "fido") } } ===================================== mobile/android/android-components/components/feature/app-links/src/test/java/mozilla/components/feature/app/links/AppLinksUseCasesTest.kt ===================================== @@ -47,6 +47,7 @@ class AppLinksUseCasesTest { private val javascriptUrl = "javascript:'hello, world'" private val jarUrl = "jar:file://some/path/test.html" private val contentUrl = "content://media/external_primary/downloads/12345" + private val fidoPath = "fido:12345678" private val fileType = "audio/mpeg" private val layerUrl = "https://example.com" private val layerPackage = "com.example.app" @@ -215,6 +216,15 @@ class AppLinksUseCasesTest { assertFalse(redirect.isRedirect()) } + @Test + fun `A fido url is not an app link`() { + val context = createContext(Triple(fidoPath, appPackage, "")) + val subject = AppLinksUseCases(context, { true }) + + val redirect = subject.interceptedAppLinkRedirect(fidoPath) + assertFalse(redirect.isRedirect()) + } + @Test fun `Will not redirect app link if browser option set to false and scheme is supported`() { val context = createContext(Triple(appUrl, appPackage, "")) ===================================== mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt ===================================== @@ -9,6 +9,7 @@ import android.content.Intent import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting.Companion.PRIVATE import androidx.core.view.isVisible +import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import kotlinx.coroutines.CoroutineScope @@ -1094,7 +1095,15 @@ class PromptFeature private constructor( emitPromptDismissedFact(promptName = promptRequest::class.simpleName.ifNullOrEmpty { "" }) } + @VisibleForTesting + internal fun redirectDialogFragmentIsActive() = + (fragmentManager.findFragmentByTag("SHOULD_OPEN_APP_LINK_PROMPT_DIALOG") as? DialogFragment) != null + private fun canShowThisPrompt(promptRequest: PromptRequest): Boolean { + if (redirectDialogFragmentIsActive()) { + return false + } + return when (promptRequest) { is SingleChoice, is MultipleChoice, ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -798,7 +798,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { return false } - final override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { ProfilerMarkers.addForDispatchTouchEvent(components.core.engine.profiler, ev) return super.dispatchTouchEvent(ev) } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt ===================================== @@ -7,6 +7,7 @@ package org.mozilla.fenix.customtabs import android.app.assist.AssistContent import android.net.Uri import android.os.Build +import android.view.MotionEvent import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import mozilla.components.browser.state.selector.findCustomTab @@ -24,6 +25,8 @@ const val EXTRA_IS_SANDBOX_CUSTOM_TAB = "org.mozilla.fenix.customtabs.EXTRA_IS_S */ @Suppress("TooManyFunctions") open class ExternalAppBrowserActivity : HomeActivity() { + var isFinishedAnimating = false + override fun onResume() { super.onResume() @@ -74,4 +77,17 @@ open class ExternalAppBrowserActivity : HomeActivity() { val currentTabUrl = getExternalTab()?.content?.url outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } } + + override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { + if (!isFinishedAnimating) { + return true + } + + return super.dispatchTouchEvent(ev) + } + + override fun onEnterAnimationComplete() { + super.onEnterAnimationComplete() + isFinishedAnimating = true + } } ===================================== mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/IntentUtils.java ===================================== @@ -76,6 +76,10 @@ public class IntentUtils { return getSafeIntent(aUri) != null; } + if ("fido".equals(scheme)) { + return false; + } + return true; } ===================================== mobile/android/geckoview/src/test/java/org/mozilla/gecko/util/IntentUtilsTest.java ===================================== @@ -63,4 +63,10 @@ public class IntentUtilsTest { final String uri = "intent:non_scheme_intent#Intent;end"; assertTrue(IntentUtils.isUriSafeForScheme(uri)); } + + @Test + public void unsafeFidoUri() { + final String uri = "fido:/12345678"; + assertFalse(IntentUtils.isUriSafeForScheme(uri)); + } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/2aa783… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/2aa783… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser] Pushed new branch tor-browser-128.8.0esr-14.0-1
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed new branch tor-browser-128.8.0esr-14.0-1 at The Tor Project / Applications / Mullvad Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/tree/tor-b… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.8.0esr-14.5-1] fixup! MB 63: Customize some about pages for Mullvad Browser
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed to branch mullvad-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser Commits: 705d8618 by Henry Wilkes at 2025-03-11T12:54:10+00:00 fixup! MB 63: Customize some about pages for Mullvad Browser MB 404: Use aboutRightsMullvad.xhtml in place of aboutRights.xhtml. - - - - - 1 changed file: - toolkit/content/jar.mn Changes: ===================================== toolkit/content/jar.mn ===================================== @@ -16,7 +16,9 @@ toolkit.jar: content/global/aboutProfiles.xhtml #endif content/global/aboutRights.js -#ifdef MOZILLA_OFFICIAL +#ifdef MULLVAD_BROWSER + content/global/aboutRights.xhtml (aboutRightsMullvad.xhtml) +#elifdef MOZILLA_OFFICIAL content/global/aboutRights.xhtml #else content/global/aboutRights.xhtml (aboutRights-unbranded.xhtml) View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/705… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/705… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.8.0esr-14.5-1] 32 commits: MB 38: Mullvad Browser configuration
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed to branch mullvad-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser Commits: 2a456a27 by Pier Angelo Vendrame at 2025-03-10T11:28:45-06:00 MB 38: Mullvad Browser configuration - - - - - c3f3d4c6 by Pier Angelo Vendrame at 2025-03-10T11:28:45-06:00 MB 1: Mullvad Browser branding See also: mullvad-browser#5: Product name and directory customization mullvad-browser#12: Create new branding directories and integrate Mullvad icons+branding mullvad-browser#14: Remove Default Built-in bookmarks mullvad-browser#35: Add custom PDF icons for Windows builds mullvad-browser#48: Replace Mozilla copyright and legal trademarks in mullvadbrowser.exe metadata mullvad-browser#51: Update trademark string mullvad-browser#104: Update shipped dll metadata copyright/licensing info mullvad-browser#107: Add alpha and nightly icons - - - - - 5d9bbae4 by Henry Wilkes at 2025-03-10T11:28:46-06:00 fixup! MB 1: Mullvad Browser branding MB 312: Differentiate between release channels. We update the brand.ftl and brand.properties files to add "Alpha" and "Nightly" to the brand names. We update about-wordmark.svg to be different between channels and use context-fill to allow us to customise the appearance in about:mullvad-browser. We add mullvad-about-wordmark-en.ftl to provide the English text equivalent for the wordmark, to be used by screen readers in about:mullvad-browser. We add mullvad-branding.css to provide branding colors for about:mullvad-browser. We drop firefox-wordmark.svg changes since the asset should be unused in Mullvad Browser now that about:mullvad-browser uses about-wordmark instead. We drop unnecessary rules from branding aboutDialog.css and make sure the dialog is large enough to show the wordmark for alpha and nightly. - - - - - 2146695c by Henry Wilkes at 2025-03-10T11:28:46-06:00 Mullvad Browser strings This commit adds strings needed by the following Mullvad Browser patches. - - - - - 92aca1bb by Henry Wilkes at 2025-03-10T11:28:46-06:00 fixup! Mullvad Browser strings MB 312: Drop mullvad-browser string which has been replaced with mullvad-about-wordmark-en. - - - - - 7e934a44 by Pier Angelo Vendrame at 2025-03-10T11:28:47-06:00 MB 20: Allow packaged-addons in PBM. We install a few addons from the distribution directory, but they are not automatically enabled for PBM mode. This commit modifies the code that installs them to also add the PBM permission to the known ones. - - - - - 01d964a1 by Pier Angelo Vendrame at 2025-03-10T11:28:47-06:00 MB 63: Customize some about pages for Mullvad Browser Also: mullvad-browser#57: Purge unneeded about: pages - - - - - f2941bc2 by Pier Angelo Vendrame at 2025-03-10T11:28:47-06:00 MB 37: Customization for the about dialog - - - - - ed70935d by Henry Wilkes at 2025-03-10T11:28:48-06:00 MB 39: Add home page about:mullvad-browser - - - - - c4281e50 by Henry Wilkes at 2025-03-10T11:28:48-06:00 fixup! MB 39: Add home page about:mullvad-browser MB 312: Update the home page for different release channels. We use about-wordmark.svg instead of firefox-wordmark.svg. We use the colors from the mullvad-branding.css sheet to colour the background, link text and outline colors. We now properly support contrast themes, where we do not apply the branding colors. We tweak the sizing and spacing. We switch from XHTML to HTML. We consistently use kebab case for the DOM IDs, rather than camel case. We drop the Open Sans font. - - - - - d69b0130 by hackademix at 2025-03-10T11:28:48-06:00 MB 97: Remove UI cues to install new extensions. - - - - - eaa55b51 by hackademix at 2025-03-10T11:28:49-06:00 MB 47: uBlock Origin customization - - - - - 513327cd by Pier Angelo Vendrame at 2025-03-10T11:42:27-06:00 MB 21: Disable the password manager This commit disables the about:login page and removes the "Login and Password" section of about:preferences. We do not do anything to the real password manager of Firefox, that is in toolkit: it contains C++ parts that make it difficult to actually prevent it from being built.. Finally, we modify the the function that opens about:login to report an error in the console so that we can quickly get a backtrace to the code that tries to use it. - - - - - 99874c27 by Pier Angelo Vendrame at 2025-03-10T11:42:48-06:00 MB 112: Updater customization for Mullvad Browser MB 71: Set the updater base URL to Mullvad domain - - - - - 7cf7ac7a by Nicolas Vigier at 2025-03-10T11:42:49-06:00 MB 79: Add Mullvad Browser MAR signing keys MB 256: Add mullvad-browser nightly mar signing key - - - - - f6b6ec48 by Pier Angelo Vendrame at 2025-03-10T11:42:49-06:00 MB 34: Hide unsafe and unwanted preferences UI about:preferences allow to override some of our defaults, that could be fingeprintable or have some other unwanted consequences. - - - - - ee933853 by Pier Angelo Vendrame at 2025-03-10T11:42:49-06:00 MB 160: Disable the cookie exceptions button Besides disabling the "Delete on close checkbox", disable also the "Manage Exceptions" button when always using PBM. - - - - - 2d43c87a by hackademix at 2025-03-10T11:42:50-06:00 MB 163: prevent uBlock Origin from being uninstalled/disabled - - - - - 3c0517b6 by Richard Pospesel at 2025-03-10T11:42:50-06:00 MB 188: Customize Gitlab Issue and Merge templates - - - - - dfeb2818 by Morgan at 2025-03-10T11:42:50-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates add rebase template for rapid channel - - - - - 4091dbf3 by Morgan at 2025-03-10T11:42:50-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates tweak backport temlpate for mullvad-browser - - - - - a6bd37e9 by Morgan at 2025-03-10T11:42:51-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates add /label Apps::Type::Rebase to rebase issue template - - - - - ce6498b8 by Morgan at 2025-03-10T11:42:51-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates add backport template and tweak the uplift template - - - - - 43978767 by hackademix at 2025-03-10T11:42:51-06:00 fixup! MB 188: Customize Gitlab Issue and Merge templates TBB 41382: Replace gitlab templates ReleasePrep label references with Apps::Type::ReleasePreparation - - - - - e6ee15dc by rui hildt at 2025-03-10T11:42:52-06:00 MB 213: Customize the search engines list MB 328: Refactor the search engine patch. Upstream switched to a completely different search engine configuration between ESR 115 and ESR 128. We moved our configuration to a couple of JSON files that do not follow upstream's schemas, as they are overcomplicated for our needs. Also, we keep the old search engine extensions for now, as upstream also kept them, and planned of removing them with Bug 1885953. - - - - - ff0fe851 by Pier Angelo Vendrame at 2025-03-10T11:42:52-06:00 fixup! MB 213: Customize the search engines list MB 395: Make Leta the default search engine. - - - - - 0cd3a258 by hackademix at 2025-03-10T11:42:52-06:00 MB 214: Enable cross-tab identity leak protection in "quiet" mode - - - - - c337a046 by Pier Angelo Vendrame at 2025-03-10T11:42:53-06:00 MB 80: Enable Mullvad Browser as a default browser - - - - - 42f31630 by Pier Angelo Vendrame at 2025-03-10T11:42:53-06:00 MB 320: Temporarily disable WebRTC and WDBA on Windows. WebRTC should be re-enabled when tor-browser#42758 is resolved, and and the default browser agent when in general we make this feature work again. - - - - - 0e5b089a by Henry Wilkes at 2025-03-10T11:42:53-06:00 MB 329: Customize toolbar for mullvad-browser. - - - - - 80367e1e by Henry Wilkes at 2025-03-10T11:42:53-06:00 Add CI for Mullvad Browser - - - - - a5d58219 by Kershaw Chang at 2025-03-10T11:42:54-06:00 Bug 1910593 - Don't prefetch HTTPS RR if proxyDNS is enabled, r=necko-reviewers,valentin Differential Revision: https://phabricator.services.mozilla.com/D219528 - - - - - 275 changed files: - .gitlab/ci/jobs/update-translations.yml - .gitlab/issue_templates/Backport.md - .gitlab/issue_templates/Emergency Security Issue.md - + .gitlab/issue_templates/Rebase Browser - Alpha.md - + .gitlab/issue_templates/Rebase Browser - Rapid.md - + .gitlab/issue_templates/Rebase Browser - Stable.md - .gitlab/merge_request_templates/default.md - browser/app/Makefile.in - browser/app/macbuild/Contents/Info.plist.in - browser/app/module.ver - browser/app/firefox.exe.manifest → browser/app/mullvadbrowser.exe.manifest - + browser/app/profile/000-mullvad-browser.js - browser/app/profile/001-base-profile.js - browser/base/content/aboutDialog.xhtml - browser/base/content/appmenu-viewcache.inc.xhtml - browser/base/content/browser-menubar.inc - browser/base/content/browser-places.js - browser/base/content/browser.js - browser/base/content/default-bookmarks.html - browser/base/content/nsContextMenu.js - browser/base/content/overrides/app-license.html - browser/base/content/pageinfo/pageInfo.xhtml - browser/base/content/utilityOverlay.js - browser/branding/branding-common.mozbuild - + browser/branding/mb-alpha/VisualElements_150.png - + browser/branding/mb-alpha/VisualElements_70.png - + browser/branding/mb-alpha/configure.sh - + browser/branding/mb-alpha/content/about-logo.png - + browser/branding/mb-alpha/content/about-logo.svg - + browser/branding/mb-alpha/content/about-logo(a)2x.png - + browser/branding/mb-alpha/content/about-wordmark.svg - + browser/branding/mb-alpha/content/about.png - + browser/branding/mb-alpha/content/aboutDialog.css - + browser/branding/mb-alpha/content/firefox-wordmark.svg - + browser/branding/mb-alpha/content/icon128.png - + browser/branding/mb-alpha/content/icon16.png - + browser/branding/mb-alpha/content/icon256.png - + browser/branding/mb-alpha/content/icon32.png - + browser/branding/mb-alpha/content/icon48.png - + browser/branding/mb-alpha/content/icon64.png - + browser/branding/mb-alpha/content/jar.mn - + browser/branding/mb-alpha/content/moz.build - + browser/branding/mb-alpha/content/mullvad-branding.css - + browser/branding/mb-alpha/default128.png - + browser/branding/mb-alpha/default16.png - + browser/branding/mb-alpha/default22.png - + browser/branding/mb-alpha/default24.png - + browser/branding/mb-alpha/default256.png - + browser/branding/mb-alpha/default32.png - + browser/branding/mb-alpha/default48.png - + browser/branding/mb-alpha/default64.png - + browser/branding/mb-alpha/document.icns - + browser/branding/mb-alpha/document.ico - + browser/branding/mb-alpha/document_pdf.ico - + browser/branding/mb-alpha/firefox.icns - + browser/branding/mb-alpha/firefox.ico - + browser/branding/mb-alpha/firefox.svg - + browser/branding/mb-alpha/locales/en-US/brand.ftl - + browser/branding/mb-alpha/locales/en-US/brand.properties - + browser/branding/mb-alpha/locales/jar.mn - + browser/branding/mb-alpha/locales/moz.build - + browser/branding/mb-alpha/locales/mullvad-about-wordmark-en.ftl - + browser/branding/mb-alpha/moz.build - + browser/branding/mb-alpha/mullvadbrowser.VisualElementsManifest.xml - + browser/branding/mb-alpha/newtab.ico - + browser/branding/mb-alpha/newwindow.ico - + browser/branding/mb-alpha/pbmode.ico - + browser/branding/mb-alpha/pref/firefox-branding.js - + browser/branding/mb-nightly/VisualElements_150.png - + browser/branding/mb-nightly/VisualElements_70.png - + browser/branding/mb-nightly/configure.sh - + browser/branding/mb-nightly/content/about-logo.png - + browser/branding/mb-nightly/content/about-logo.svg - + browser/branding/mb-nightly/content/about-logo(a)2x.png - + browser/branding/mb-nightly/content/about-wordmark.svg - + browser/branding/mb-nightly/content/about.png - + browser/branding/mb-nightly/content/aboutDialog.css - + browser/branding/mb-nightly/content/firefox-wordmark.svg - + browser/branding/mb-nightly/content/icon128.png - + browser/branding/mb-nightly/content/icon16.png - + browser/branding/mb-nightly/content/icon256.png - + browser/branding/mb-nightly/content/icon32.png - + browser/branding/mb-nightly/content/icon48.png - + browser/branding/mb-nightly/content/icon64.png - + browser/branding/mb-nightly/content/jar.mn - + browser/branding/mb-nightly/content/moz.build - + browser/branding/mb-nightly/content/mullvad-branding.css - + browser/branding/mb-nightly/default128.png - + browser/branding/mb-nightly/default16.png - + browser/branding/mb-nightly/default22.png - + browser/branding/mb-nightly/default24.png - + browser/branding/mb-nightly/default256.png - + browser/branding/mb-nightly/default32.png - + browser/branding/mb-nightly/default48.png - + browser/branding/mb-nightly/default64.png - + browser/branding/mb-nightly/document.icns - + browser/branding/mb-nightly/document.ico - + browser/branding/mb-nightly/document_pdf.ico - + browser/branding/mb-nightly/firefox.icns - + browser/branding/mb-nightly/firefox.ico - + browser/branding/mb-nightly/firefox.svg - + browser/branding/mb-nightly/locales/en-US/brand.ftl - + browser/branding/mb-nightly/locales/en-US/brand.properties - + browser/branding/mb-nightly/locales/jar.mn - + browser/branding/mb-nightly/locales/moz.build - + browser/branding/mb-nightly/locales/mullvad-about-wordmark-en.ftl - + browser/branding/mb-nightly/moz.build - + browser/branding/mb-nightly/mullvadbrowser.VisualElementsManifest.xml - + browser/branding/mb-nightly/newtab.ico - + browser/branding/mb-nightly/newwindow.ico - + browser/branding/mb-nightly/pbmode.ico - + browser/branding/mb-nightly/pref/firefox-branding.js - + browser/branding/mb-release/VisualElements_150.png - + browser/branding/mb-release/VisualElements_70.png - + browser/branding/mb-release/configure.sh - + browser/branding/mb-release/content/about-logo.png - + browser/branding/mb-release/content/about-logo.svg - + browser/branding/mb-release/content/about-logo(a)2x.png - + browser/branding/mb-release/content/about-wordmark.svg - + browser/branding/mb-release/content/about.png - + browser/branding/mb-release/content/aboutDialog.css - + browser/branding/mb-release/content/firefox-wordmark.svg - + browser/branding/mb-release/content/icon128.png - + browser/branding/mb-release/content/icon16.png - + browser/branding/mb-release/content/icon256.png - + browser/branding/mb-release/content/icon32.png - + browser/branding/mb-release/content/icon48.png - + browser/branding/mb-release/content/icon64.png - + browser/branding/mb-release/content/jar.mn - + browser/branding/mb-release/content/moz.build - + browser/branding/mb-release/content/mullvad-branding.css - + browser/branding/mb-release/default128.png - + browser/branding/mb-release/default16.png - + browser/branding/mb-release/default22.png - + browser/branding/mb-release/default24.png - + browser/branding/mb-release/default256.png - + browser/branding/mb-release/default32.png - + browser/branding/mb-release/default48.png - + browser/branding/mb-release/default64.png - + browser/branding/mb-release/document.icns - + browser/branding/mb-release/document.ico - + browser/branding/mb-release/document_pdf.ico - + browser/branding/mb-release/firefox.icns - + browser/branding/mb-release/firefox.ico - + browser/branding/mb-release/firefox.svg - + browser/branding/mb-release/locales/en-US/brand.ftl - + browser/branding/mb-release/locales/en-US/brand.properties - + browser/branding/mb-release/locales/jar.mn - + browser/branding/mb-release/locales/moz.build - + browser/branding/mb-release/locales/mullvad-about-wordmark-en.ftl - + browser/branding/mb-release/moz.build - + browser/branding/mb-release/mullvadbrowser.VisualElementsManifest.xml - + browser/branding/mb-release/newtab.ico - + browser/branding/mb-release/newwindow.ico - + browser/branding/mb-release/pbmode.ico - + browser/branding/mb-release/pref/firefox-branding.js - browser/components/BrowserContentHandler.sys.mjs - browser/components/BrowserGlue.sys.mjs - browser/components/about/AboutRedirector.cpp - browser/components/about/components.conf - browser/components/customizableui/CustomizableUI.sys.mjs - browser/components/moz.build - + browser/components/mullvad-browser/AboutMullvadBrowserChild.sys.mjs - + browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs - + browser/components/mullvad-browser/content/2728-sparkles.svg - + browser/components/mullvad-browser/content/aboutMullvadBrowser.css - + browser/components/mullvad-browser/content/aboutMullvadBrowser.html - + browser/components/mullvad-browser/content/aboutMullvadBrowser.js - + browser/components/mullvad-browser/jar.mn - + browser/components/mullvad-browser/moz.build - browser/components/newtab/AboutNewTabService.sys.mjs - browser/components/preferences/home.inc.xhtml - browser/components/preferences/main.js - browser/components/preferences/preferences.xhtml - browser/components/preferences/privacy.inc.xhtml - browser/components/preferences/privacy.js - browser/components/preferences/search.inc.xhtml - + browser/components/search/extensions/brave/favicon.svg - + browser/components/search/extensions/brave/manifest.json - + browser/components/search/extensions/ddg-html/favicon.ico - + browser/components/search/extensions/ddg-html/manifest.json - browser/components/search/extensions/ddg/manifest.json - + browser/components/search/extensions/metager/favicon.ico - + browser/components/search/extensions/metager/manifest.json - + browser/components/search/extensions/mojeek/favicon.ico - + browser/components/search/extensions/mojeek/manifest.json - + browser/components/search/extensions/mullvad-leta/favicon.svg - + browser/components/search/extensions/mullvad-leta/manifest.json - + browser/components/search/extensions/startpage/favicon.png - + browser/components/search/extensions/startpage/manifest.json - browser/components/shell/ShellService.sys.mjs - browser/components/shell/WindowsDefaultBrowser.cpp - browser/components/shell/nsWindowsShellService.cpp - browser/config/mozconfigs/base-browser - + browser/config/mozconfigs/mullvad-browser - browser/confvars.sh - browser/installer/package-manifest.in - browser/installer/windows/nsis/updater_append.ini - browser/modules/HomePage.sys.mjs - browser/moz.build - config/create_rc.py - devtools/client/aboutdebugging/src/actions/runtimes.js - devtools/client/aboutdebugging/src/components/sidebar/Sidebar.js - devtools/client/jar.mn - devtools/client/themes/images/aboutdebugging-firefox-aurora.svg - devtools/client/themes/images/aboutdebugging-firefox-beta.svg - devtools/client/themes/images/aboutdebugging-firefox-logo.svg - devtools/client/themes/images/aboutdebugging-firefox-nightly.svg - devtools/client/themes/images/aboutdebugging-firefox-release.svg - + devtools/client/themes/images/aboutdebugging-mullvadbrowser-logo.svg - docshell/base/nsAboutRedirector.cpp - docshell/build/components.conf - dom/chrome-webidl/NetDashboard.webidl - moz.configure - mozconfig-linux-aarch64 - mozconfig-linux-aarch64-dev - mozconfig-linux-x86_64 - mozconfig-linux-x86_64-asan - mozconfig-linux-x86_64-dev - mozconfig-macos - mozconfig-macos-dev - mozconfig-windows-x86_64 - netwerk/base/Dashboard.cpp - netwerk/base/DashboardTypes.h - netwerk/dns/nsHostResolver.cpp - netwerk/protocol/http/nsHttp.cpp - netwerk/protocol/http/nsHttp.h - netwerk/protocol/http/nsHttpChannel.cpp - netwerk/protocol/http/nsHttpChannel.h - netwerk/protocol/http/nsHttpConnectionInfo.h - netwerk/protocol/http/nsHttpConnectionMgr.cpp - netwerk/protocol/http/nsHttpHandler.cpp - netwerk/protocol/http/nsHttpHandler.h - + netwerk/test/unit/test_proxyDNS_leak.js - netwerk/test/unit/xpcshell.toml - + other-licenses/nsis/Contrib/ApplicationID/Makefile - + other-licenses/nsis/Contrib/CityHash/Makefile - toolkit/components/extensions/child/ext-storage.js - toolkit/components/extensions/parent/ext-storage.js - toolkit/components/passwordmgr/LoginHelper.sys.mjs - toolkit/components/search/AppProvidedSearchEngine.sys.mjs - toolkit/components/search/SearchService.sys.mjs - + toolkit/components/search/content/brave.svg - + toolkit/components/search/content/duckduckgo.ico - + toolkit/components/search/content/metager.ico - + toolkit/components/search/content/mojeek.ico - + toolkit/components/search/content/mullvad-leta.svg - + toolkit/components/search/content/mullvadBrowserSearchEngineIcons.json - + toolkit/components/search/content/mullvadBrowserSearchEngines.json - + toolkit/components/search/content/startpage.png - + toolkit/components/search/jar.mn - toolkit/components/search/moz.build - toolkit/components/securitylevel/SecurityLevel.sys.mjs - toolkit/content/aboutNetworking.js - + toolkit/content/aboutRightsMullvad.xhtml - + toolkit/content/aboutTelemetryMullvad.xhtml - toolkit/content/jar.mn - toolkit/content/widgets/moz-support-link/moz-support-link.mjs - + toolkit/locales/en-US/toolkit/global/mullvad-browser.ftl - toolkit/mozapps/defaultagent/EventLog.h - toolkit/mozapps/defaultagent/SetDefaultBrowser.cpp - toolkit/mozapps/extensions/AddonManager.sys.mjs - toolkit/mozapps/extensions/content/aboutaddons.css - toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs - toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs - toolkit/mozapps/update/updater/nightly_aurora_level3_primary.der - toolkit/mozapps/update/updater/nightly_aurora_level3_secondary.der - toolkit/mozapps/update/updater/release_primary.der - toolkit/mozapps/update/updater/release_secondary.der - + toolkit/themes/shared/icons/mullvadbrowser.png - toolkit/themes/shared/minimal-toolkit.jar.inc.mn - toolkit/xre/nsAppRunner.cpp - tools/lint/fluent-lint/exclusions.yml - widget/windows/WinTaskbar.cpp - widget/windows/moz.build The diff was not included because it is too large. View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/2a… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/2a… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] 2 commits: Bug 41389: Always generate and load set-config.generated-config
by morgan (@morgan) 11 Mar '25

11 Mar '25
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 4c29020e by Nicolas Vigier at 2025-03-10T13:44:39+01:00 Bug 41389: Always generate and load set-config.generated-config - - - - - 810e8e20 by Nicolas Vigier at 2025-03-10T13:44:39+01:00 Bug 41389: Remove set-config.tbb-version The signing script will now get the version information from rbm config. - - - - - 12 changed files: - .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md - .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md - tools/signing/dmg2mar - tools/signing/functions - tools/signing/linux-signer-authenticode-signing - tools/signing/linux-signer-gpg-sign - tools/signing/linux-signer-rcodesign-sign - tools/signing/linux-signer-sign-android-apks - tools/signing/linux-signer-signmars - tools/signing/set-config - − tools/signing/set-config.tbb-version - tools/signing/upload-update_responses-to-staticiforme Changes: ===================================== .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md ===================================== @@ -137,7 +137,7 @@ Mullvad Browser Alpha (and Nightly) are on the `main` branch - pierov - [ ] Ensure all builders have matching builds - [ ] On `${STAGING_SERVER}`, ensure updated: - - **NOTE** Having a local git branch with `main` as the upstream branch with these values saved means you only need to periodically `git pull --rebase` and update the `set-config.tbb-version` file + - **NOTE** Having a local git branch with `main` as the upstream branch with these values saved means you only need to periodically `git pull --rebase` - [ ] `tor-browser-build` is on the right commit: `git tag -v mb-${MULLVAD_BROWSER_VERSION}-${MULLVAD_BROWSER_BUILD_N} && git checkout mb-${MULLVAD_BROWSER_VERSION}-${MULLVAD_BROWSER_BUILD_N}` - [ ] `tor-browser-build/tools/signing/set-config.hosts` - `ssh_host_builder`: ssh hostname of machine with unsigned builds @@ -147,10 +147,6 @@ Mullvad Browser Alpha (and Nightly) are on the `main` branch - `appstoreconnect_api_key_path`: path to json file containing appstoreconnect api key infos - [ ] `set-config.update-responses` - `update_responses_repository_dir`: directory where you cloned `git@gitlab.torproject.org:tpo/applications/mullvad-browser-update-responses.git` - - [ ] `tor-browser-build/tools/signing/set-config.tbb-version` - - `tbb_version`: mullvad browser version string, same as `var/torbrowser_version` in `rbm.conf` (examples: `11.5a12`, `11.0.13`) - - `tbb_version_build`: the tor-browser-build build number (if `var/torbrowser_build` in `rbm.conf` is `buildN` then this value is `N`) - - `tbb_version_type`: either `alpha` for alpha releases or `release` for stable releases - [ ] On `${STAGING_SERVER}` in a separate `screen` session, ensure tor daemon is running with SOCKS5 proxy on the default port 9050 - [ ] On `${STAGING_SERVER}` in a separate `screen` session, run do-all-signing script: - Run: ===================================== .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md ===================================== @@ -192,7 +192,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - pierov - [ ] Ensure all builders have matching builds - [ ] On `${STAGING_SERVER}`, ensure updated: - - **NOTE** Having a local git branch with `main` as the upstream branch with these values saved means you only need to periodically `git pull --rebase` and update the `set-config.tbb-version` file + - **NOTE** Having a local git branch with `main` as the upstream branch with these values saved means you only need to periodically `git pull --rebase` - [ ] `tor-browser-build` is on the right commit: `git tag -v tbb-${TOR_BROWSER_VERSION}-${TOR_BROWSER_BUILD_N} && git checkout tbb-${TOR_BROWSER_VERSION}-${TOR_BROWSER_BUILD_N}` - [ ] `tor-browser-build/tools/signing/set-config.hosts` - `ssh_host_builder`: ssh hostname of machine with unsigned builds @@ -202,10 +202,6 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - `appstoreconnect_api_key_path`: path to json file containing appstoreconnect api key infos - [ ] `set-config.update-responses` - `update_responses_repository_dir`: directory where you cloned `git@gitlab.torproject.org:tpo/applications/tor-browser-update-responses.git` - - [ ] `tor-browser-build/tools/signing/set-config.tbb-version` - - `tbb_version`: tor browser version string, same as `var/torbrowser_version` in `rbm.conf` (examples: `11.5a12`, `11.0.13`) - - `tbb_version_build`: the tor-browser-build build number (if `var/torbrowser_build` in `rbm.conf` is `buildN` then this value is `N`) - - `tbb_version_type`: either `alpha` for alpha releases or `release` for stable releases - [ ] On `${STAGING_SERVER}` in a separate `screen` session, ensure tor daemon is running with SOCKS5 proxy on the default port 9050 - [ ] On `${STAGING_SERVER}` in a separate `screen` session, run do-all-signing script: - Run: ===================================== tools/signing/dmg2mar ===================================== @@ -13,10 +13,6 @@ cd "$script_dir/../.." # some initial checks to make sure directories and file counts are as expected... -version=$(./rbm/rbm showconf browser --target alpha --target $SIGNING_PROJECTNAME-linux-x86_64 var/torbrowser_version) -test "$version" = "$tbb_version" || \ - exit_error "Incorrect tor browser version: $version != $tbb_version" - test -d "$signed_version_dir" || \ exit_error "$signed_version_dir does not exist" ===================================== tools/signing/functions ===================================== @@ -13,12 +13,6 @@ function var_is_defined { done } -function check_torbrowser_version_var { - local tbver=$("$script_dir/../../rbm/rbm" showconf browser --target "$SIGNING_PROJECTNAME" var/torbrowser_version) - test "$tbver" != "$tbb_version" && exit_error "Wrong tbb_version: $tbver != $tbb_version" - return 0 -} - function check_update_responses_repository_dir { if test -z "$update_responses_repository_dir" || ! test -d "$update_responses_repository_dir" then @@ -36,44 +30,43 @@ function is_project { } function generate_config { - p1=$("$rbm" showconf browser var/project-name --target "$SIGNING_PROJECTNAME") - p2=$("$rbm" showconf browser var/Project_Name --target "$SIGNING_PROJECTNAME") - p3=$("$rbm" showconf browser var/ProjectName --target "$SIGNING_PROJECTNAME") - p4=$("$rbm" showconf browser var/display_name --target "$SIGNING_PROJECTNAME" --target "$tbb_version_type") - echo 'rbm_not_available=1' > "$script_dir/set-config.generated-config" - echo "SIGNING_PROJECTNAMES=(\"$p1\" \"$p2\" \"$p3\" \"$p4\")" >> "$script_dir/set-config.generated-config" + local p1=$("$rbm" showconf browser var/project-name --target \ + "$SIGNING_PROJECTNAME") + local p2=$("$rbm" showconf browser var/Project_Name --target \ + "$SIGNING_PROJECTNAME") + local p3=$("$rbm" showconf browser var/ProjectName --target \ + "$SIGNING_PROJECTNAME") + p4=$("$rbm" showconf browser var/display_name --target \ + "$SIGNING_PROJECTNAME" --target "$tbb_version_type") + echo "SIGNING_PROJECTNAMES=(\"$p1\" \"$p2\" \"$p3\" \"$p4\")" > \ + "$script_dir/set-config.generated-config" + local tbb_version_type=$("$rbm" showconf browser \ var/browser_default_channel \ + --target "$SIGNING_PROJECTNAME") + local tbb_version=$("$rbm" showconf browser var/torbrowser_version \ + --target "$SIGNING_PROJECTNAME" --target \ + "$tbb_version_type") + local tbb_version_build=$("$rbm" showconf browser var/torbrowser_build \ + --target "$SIGNING_PROJECTNAME" --target \ + "$tbb_version_type") + for v in tbb_version_type tbb_version tbb_version_build; do + echo "$v=$(shell-quote "${!v}")" >> "$script_dir/set-config.generated-config" + done } function project-name { - if test -n "${rbm_not_available+x}"; then - echo "${SIGNING_PROJECTNAMES[0]}" - else - "$rbm" showconf browser var/project-name --target "$SIGNING_PROJECTNAME" - fi + echo "${SIGNING_PROJECTNAMES[0]}" } function Project_Name { - if test -n "${rbm_not_available+x}"; then - echo "${SIGNING_PROJECTNAMES[1]}" - else - "$rbm" showconf browser var/Project_Name --target "$SIGNING_PROJECTNAME" - fi + echo "${SIGNING_PROJECTNAMES[1]}" } function ProjectName { - if test -n "${rbm_not_available+x}"; then - echo "${SIGNING_PROJECTNAMES[2]}" - else - "$rbm" showconf browser var/ProjectName --target "$SIGNING_PROJECTNAME" - fi + echo "${SIGNING_PROJECTNAMES[2]}" } function display_name { - if test -n "${rbm_not_available+x}"; then - echo "${SIGNING_PROJECTNAMES[3]}" - else - "$rbm" showconf browser var/display_name --target "$SIGNING_PROJECTNAME" --target "$tbb_version_type" - fi + echo "${SIGNING_PROJECTNAMES[3]}" } ===================================== tools/signing/linux-signer-authenticode-signing ===================================== @@ -1,6 +1,7 @@ #!/bin/bash set -e +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" ===================================== tools/signing/linux-signer-gpg-sign ===================================== @@ -1,6 +1,7 @@ #!/bin/bash set -e +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" ===================================== tools/signing/linux-signer-rcodesign-sign ===================================== @@ -1,9 +1,9 @@ #!/bin/bash set -e +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" -source "$script_dir/set-config.generated-config" # tbb_version_type is used in wrappers/sign-rcodesign, so we export it export tbb_version_type ===================================== tools/signing/linux-signer-sign-android-apks ===================================== @@ -1,9 +1,9 @@ #!/bin/bash set -e +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" -source "$script_dir/set-config.generated-config" topdir="$script_dir/../.." ARCHS="armv7 aarch64 x86 x86_64" ===================================== tools/signing/linux-signer-signmars ===================================== @@ -3,6 +3,7 @@ set -e set -u +no_generate_config=1 script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" ===================================== tools/signing/set-config ===================================== @@ -20,9 +20,11 @@ test "$SIGNING_PROJECTNAME" = 'torbrowser' \ export SIGNING_PROJECTNAME -test -z "${rbm_not_available+x}" && rbm="$script_dir/../../rbm/rbm" +rbm="$script_dir/../../rbm/rbm" -. "$script_dir/set-config.tbb-version" +test -z "$no_generate_config" && generate_config +. "$script_dir/set-config.generated-config" +export no_generate_config=1 test "$tbb_version_type" = 'release' \ || test "$tbb_version_type" = 'alpha' \ ===================================== tools/signing/set-config.tbb-version deleted ===================================== @@ -1,7 +0,0 @@ -# The following 3 lines should be uncommented and updated: - -#tbb_version=11.5a4 -#tbb_version_build=1 -#tbb_version_type=alpha - -var_is_defined tbb_version tbb_version_build tbb_version_type ===================================== tools/signing/upload-update_responses-to-staticiforme ===================================== @@ -4,8 +4,6 @@ script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" source "$script_dir/set-config.update-responses" -check_torbrowser_version_var - update_responses_tar_filename="update-responses-$tbb_version_type-$tbb_version.tar" update_responses_tar="$script_dir/../../$SIGNING_PROJECTNAME/$tbb_version_type/update-responses/$update_responses_tar_filename" test -f "$update_responses_tar" && \ View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] fixup! TB 41089: Add tor-browser build scripts + Makefile to tor-browser
by Dan Ballard (@dan) 10 Mar '25

10 Mar '25
Dan Ballard pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: d2b56be1 by clairehurst at 2025-03-10T19:25:21+00:00 fixup! TB 41089: Add tor-browser build scripts + Makefile to tor-browser Update android-env-macos-template.sh - - - - - 1 changed file: - tools/geckoview/android-env-macos-template.sh Changes: ===================================== tools/geckoview/android-env-macos-template.sh ===================================== @@ -1,6 +1,8 @@ -export JAVA_HOME=/opt/homebrew/opt/openjdk(a)11/libexec/openjdk.jdk/Contents/Home/ # for arm64. Or JAVA_HOME=/usr/local/opt/openjdk(a)11/libexec/openjdk.jdk/Contents/Home/ for x86_64. +export JAVA_HOME=/opt/homebrew/opt/openjdk(a)17/libexec/openjdk.jdk/Contents/Home/ # for arm64. Or JAVA_HOME=/usr/local/opt/openjdk(a)17/libexec/openjdk.jdk/Contents/Home/ for x86_64. export ANDROID_HOME=$HOME/Library/Android/sdk # or $HOME/.mozbuild/android-sdk-macosx/ -export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313 # will need to download NDK 23.2.8568313 via android studio -export GRADLE_HOME=/opt/homebrew/Cellar/gradle(a)7/7.6.4 # for arm64 or /usr/local/Cellar/gradle(a)7/7.6.4 for x86_64. Make sure the version is up to date +export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/26.2.11394342 # will need to download the relevant NDK via android studio (e.g. 26.2.11394342) +GRADLE_DIR=/opt/homebrew/Cellar/gradle # for arm64, or /usr/local/Cellar/gradle for x86_64. Download via homebrew. +GRADLE_VERSION=`ls -1 "$GRADLE_DIR" | sort -hr | head -n 1` # Finds the latest gradle version in the specified GRADLE_DIR +export GRADLE_HOME=$GRADLE_DIR/$GRADLE_VERSION export LOCAL_DEV_BUILD=1 -export PATH=$ANDROID_HOME/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/:$PATH # prepend android studios latest ndk to the path so it's clang gets used to build geckoview. NDK 25.2.9519653 uses clang 14.0.7, ideally we'd use clang 16 (to be the same as Linux) but that's not an option yet for android studio. NDK 26.1.10909125 uses clang 17.0.2, which we should evaluate with the esr128 migration +export PATH=$ANDROID_HOME/ndk/26.2.11394342/toolchains/llvm/prebuilt/darwin-x86_64/bin/:$PATH # prepend android studios latest ndk to the path so it's clang gets used to build geckoview. Note that it doesn't need to be the same version as above View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d2b56be… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d2b56be… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] fixup! [android] Implement Android-native Connection Assist UI
by Dan Ballard (@dan) 10 Mar '25

10 Mar '25
Dan Ballard pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: d3a9fcd2 by clairehurst at 2025-03-10T10:52:05-06:00 fixup! [android] Implement Android-native Connection Assist UI tor-browser#43480 - - - - - 6 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt - + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapProgressViewModel.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt - + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/UrlQuickLoadViewModel.kt Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -155,7 +155,7 @@ import java.util.Locale import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.home.HomeFragment -import org.mozilla.fenix.tor.TorConnectionAssistViewModel +import org.mozilla.fenix.tor.UrlQuickLoadViewModel import org.mozilla.geckoview.TorAndroidIntegration /** @@ -237,7 +237,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn private var dialog: RedirectDialogFragment? = null - private val torConnectionAssistViewModel: TorConnectionAssistViewModel by viewModels() + private val urlQuickLoadViewModel: UrlQuickLoadViewModel by viewModels() @Suppress("ComplexMethod") final override fun onCreate(savedInstanceState: Bundle?) { @@ -1124,7 +1124,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn .setText(getString(R.string.connection_assist_connect_to_tor_before_opening_links)) .setAllCapsForActionButton(false) .setAction(getString(R.string.connection_assist_connect_to_tor_before_opening_links_confirmation)) { - torConnectionAssistViewModel.handleConnect(searchTermOrURL) + urlQuickLoadViewModel.urlToLoadAfterConnecting.value = searchTermOrURL if (navHost.navController.previousBackStackEntry?.destination?.id == R.id.torConnectionAssistFragment) { supportFragmentManager.popBackStack() } else { ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt ===================================== @@ -158,13 +158,14 @@ import org.mozilla.fenix.search.toolbar.SearchSelectorMenu import org.mozilla.fenix.tabstray.Page import org.mozilla.fenix.tabstray.TabsTrayAccessPoint import org.mozilla.fenix.theme.FirefoxTheme -import org.mozilla.fenix.tor.TorConnectionAssistViewModel import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD import org.mozilla.fenix.utils.allowUndo import org.mozilla.fenix.wallpapers.Wallpaper import java.lang.ref.WeakReference import org.mozilla.fenix.GleanMetrics.TabStrip as TabStripMetrics +import org.mozilla.fenix.tor.UrlQuickLoadViewModel + @Suppress("TooManyFunctions", "LargeClass") class HomeFragment : Fragment(), UserInteractionHandler { private val args by navArgs<HomeFragmentArgs>() @@ -178,7 +179,7 @@ class HomeFragment : Fragment(), UserInteractionHandler { private val binding get() = _binding!! private val homeViewModel: HomeScreenViewModel by activityViewModels() - private val torConnectionAssistViewModel: TorConnectionAssistViewModel by activityViewModels() + private val urlQuickLoadViewModel: UrlQuickLoadViewModel by activityViewModels() private val snackbarAnchorView: View? get() = when (requireContext().settings().toolbarPosition) { @@ -892,14 +893,15 @@ class HomeFragment : Fragment(), UserInteractionHandler { view = view, ) - torConnectionAssistViewModel.urlToLoadAfterConnecting.also { - if(!it.isNullOrBlank()){ + urlQuickLoadViewModel.urlToLoadAfterConnecting.observe(viewLifecycleOwner) { + if (!it.isNullOrBlank()) { (requireActivity() as HomeActivity).openToBrowserAndLoad( searchTermOrURL = it, newTab = true, from = BrowserDirection.FromHome, ) - torConnectionAssistViewModel.urlToLoadAfterConnecting = null // Only load this url once + // Only load this url once + urlQuickLoadViewModel.urlToLoadAfterConnecting.value = null } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapProgressViewModel.kt ===================================== @@ -0,0 +1,44 @@ +package org.mozilla.fenix.tor + +import android.app.Application +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.MutableLiveData +import org.mozilla.fenix.ext.components +import org.mozilla.geckoview.TorAndroidIntegration.BootstrapStateChangeListener + +class TorBootstrapProgressViewModel( + application: Application, +) : AndroidViewModel(application), BootstrapStateChangeListener { + + private val torIntegrationAndroid = + application.components.core.geckoRuntime.torIntegrationController + + val progress: MutableLiveData<Int> by lazy { + MutableLiveData<Int>(0) + } + + init { + torIntegrationAndroid.registerBootstrapStateChangeListener(this) + } + + override fun onCleared() { + torIntegrationAndroid.unregisterBootstrapStateChangeListener(this) + super.onCleared() + } + + override fun onBootstrapStateChange(state: String?) {} + + override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) { + this.progress.value = progress.toInt() + } + + override fun onBootstrapComplete() {} + + override fun onBootstrapError( + code: String?, + message: String?, + phase: String?, + reason: String?, + ) { + } +} ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt ===================================== @@ -35,12 +35,14 @@ import org.mozilla.fenix.ext.hideToolbar class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private val TAG = "TorConnectionAssistFrag" - private val viewModel: TorConnectionAssistViewModel by activityViewModels() + private val progressViewModel: TorBootstrapProgressViewModel by viewModels() + private val quickstartViewModel: QuickstartViewModel by activityViewModels() + private val torConnectionAssistViewModel : TorConnectionAssistViewModel by viewModels() + private val urlQuickLoadViewModel : UrlQuickLoadViewModel by activityViewModels() + private var _binding: FragmentTorConnectionAssistBinding? = null private val binding get() = _binding!! - private val quickstartViewModel: QuickstartViewModel by activityViewModels() - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -49,18 +51,23 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { _binding = FragmentTorConnectionAssistBinding.inflate( inflater, container, false, ) + viewLifecycleOwner.lifecycleScope.launch { repeatOnLifecycle(Lifecycle.State.STARTED) { - viewModel.collectLastKnownStatus() + torConnectionAssistViewModel.collectLastKnownStatus() } } - viewLifecycleOwner.lifecycleScope.launch { - repeatOnLifecycle(Lifecycle.State.STARTED) { - viewModel.torConnectScreen.collect { screen -> - Log.d(TAG, "torConnectScreen is $screen") - showScreen(screen) - } + torConnectionAssistViewModel.shouldOpenHome.observe(viewLifecycleOwner) { + Log.d(TAG, "shouldOpenHome = $it") + if (it) { + openHome() + } + } + + urlQuickLoadViewModel.urlToLoadAfterConnecting.observe(viewLifecycleOwner) { url -> + if (!url.isNullOrBlank()) { + torConnectionAssistViewModel.handleConnect() } } @@ -75,10 +82,13 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - viewModel.progress().observe( - viewLifecycleOwner, - ) { progress -> - setProgressBarCompat(progress) + viewLifecycleOwner.lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.STARTED) { + torConnectionAssistViewModel.torConnectScreen.collect { screen -> + Log.d(TAG, "torConnectScreen is $screen") + showScreen(screen) + } + } } quickstartViewModel.quickstart().observe( @@ -87,13 +97,10 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { binding.quickstartSwitch.isChecked = it } - viewModel.shouldOpenHome().observe( + progressViewModel.progress.observe( viewLifecycleOwner, - ) { - Log.d(TAG, "shouldOpenHome() = $it") - if (it) { - openHome() - } + ) { progress -> + setProgressBarCompat(progress) } } @@ -142,7 +149,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private fun setBackButton(screen: ConnectAssistUiState) { binding.backButton.visibility = if (screen.backButtonVisible) View.VISIBLE else View.INVISIBLE binding.backButton.setOnClickListener { - viewModel.handleBackButtonPressed() + torConnectionAssistViewModel.handleBackButtonPressed() } } @@ -204,10 +211,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { if (screen.torBootstrapButton1Visible) View.VISIBLE else View.GONE binding.torBootstrapButton1.text = getString(screen.torBootstrapButton1TextStringResource) binding.torBootstrapButton1.setOnClickListener { - viewModel.handleButton1Pressed( - screen, - lifecycleScope, - ) + torConnectionAssistViewModel.handleConnect() } } @@ -231,7 +235,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { } } binding.torBootstrapButton2.setOnClickListener { - viewModel.cancelTorBootstrap() + torConnectionAssistViewModel.cancelTorBootstrap() if (screen.torBootstrapButton2ShouldOpenSettings) { openTorConnectionSettings() } else if (screen.torBootstrapButton2ShouldRestartApp) { @@ -279,7 +283,9 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { private fun openHome() { Log.d(TAG, "openHome()") - viewModel.openHome(findNavController()) + findNavController().navigate( + TorConnectionAssistFragmentDirections.actionHome(), + ) } private fun openSettings(preferenceToScrollTo: String? = null) { @@ -308,7 +314,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler { } override fun onBackPressed(): Boolean { - return viewModel.handleBackButtonPressed() + return torConnectionAssistViewModel.handleBackButtonPressed() } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt ===================================== @@ -7,91 +7,42 @@ package org.mozilla.fenix.tor import android.app.Application import android.util.Log import androidx.lifecycle.AndroidViewModel -import androidx.lifecycle.LifecycleCoroutineScope -import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import androidx.navigation.NavController import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import org.mozilla.fenix.ext.components class TorConnectionAssistViewModel( application: Application, -) : AndroidViewModel(application), TorEvents { +) : AndroidViewModel(application) { private val TAG = "torConnectionAssistVM" - private val components = getApplication<Application>().components - - private val _torController: TorControllerGV = components.torController + private val torIntegrationAndroid = + application.components.core.geckoRuntime.torIntegrationController + private val _torController: TorControllerGV = application.components.torController private val _torConnectScreen = MutableStateFlow(ConnectAssistUiState.Splash) internal val torConnectScreen: StateFlow<ConnectAssistUiState> = _torConnectScreen - private val _shouldOpenHome = MutableLiveData(false) - fun shouldOpenHome(): LiveData<Boolean> { - return _shouldOpenHome - } - - private val _progress = MutableLiveData(0) - fun progress(): LiveData<Int> { - return _progress - } - - init { - Log.d(TAG, "initiating TorConnectionAssistViewModel $this") - _torController.registerTorListener(this) - } - - var urlToLoadAfterConnecting: String? = null - - fun handleConnect( - urlToLoadAfterConnecting: String? = null, - withDebugLogging: Boolean = false, - lifecycleScope: LifecycleCoroutineScope? = null, - ) { - this.urlToLoadAfterConnecting = urlToLoadAfterConnecting - if (_torController.lastKnownStatus.value.isOff()) { - Log.d(TAG, "handleConnect() triggered, initiatingTorBootstrap") - _torController.initiateTorBootstrap( - withDebugLogging = withDebugLogging, - lifecycleScope = lifecycleScope, - ) - } + val shouldOpenHome: MutableLiveData<Boolean> by lazy { + MutableLiveData(false) } - fun handleButton1Pressed( - screen: ConnectAssistUiState, - lifecycleScope: LifecycleCoroutineScope?, - ) { - if (screen.torBootstrapButton1ShouldShowTryingABridge) { + fun handleConnect() { + if (_torConnectScreen.value.torBootstrapButton1ShouldShowTryingABridge) { tryABridge() } else { - handleConnect(lifecycleScope = lifecycleScope) + if (_torController.lastKnownStatus.value.isOff()) { + torIntegrationAndroid.beginBootstrap() + } } } fun cancelTorBootstrap() { - _torController.stopTor() + torIntegrationAndroid.cancelBootstrap() _torController.setTorStopped() } - override fun onTorConnecting() { - Log.d(TAG, "onTorConnecting()") - } - - override fun onTorConnected() { - Log.d(TAG, "onTorConnected()") - _torController.unregisterTorListener(this) - } - - override fun onTorStatusUpdate(entry: String?, status: String?, progress: Double?) { - Log.d(TAG, "onTorStatusUpdate($entry, $status, $progress)") - if (progress != null) { - _progress.value = progress.toInt() - } - - } - suspend fun collectLastKnownStatus() { _torController.lastKnownStatus.collect { when (it) { @@ -99,8 +50,8 @@ class TorConnectionAssistViewModel( TorConnectState.Configuring -> handleConfiguring() TorConnectState.AutoBootstrapping -> handleBootstrap() TorConnectState.Bootstrapping -> handleBootstrap() - TorConnectState.Bootstrapped -> _shouldOpenHome.value = true - TorConnectState.Disabled -> _shouldOpenHome.value = true + TorConnectState.Bootstrapped -> shouldOpenHome.value = true + TorConnectState.Disabled -> shouldOpenHome.value = true TorConnectState.Error -> handleError() } } @@ -145,10 +96,7 @@ class TorConnectionAssistViewModel( } else -> _torConnectScreen.value = - ConnectAssistUiState.Connecting.also { connectAssistUiState -> - // covers the case of when the bootstrap is already in progress when the UiState "catches up" - connectAssistUiState.progress = _progress.value ?: 0 - } + ConnectAssistUiState.Connecting } } @@ -184,10 +132,6 @@ class TorConnectionAssistViewModel( _torConnectScreen.value = ConnectAssistUiState.InternetError } - override fun onTorStopped() { - Log.d(TAG, "onTorStopped()") - } - private fun tryABridge() { if (!locationFound()) { _torConnectScreen.value = ConnectAssistUiState.LocationError @@ -198,7 +142,7 @@ class TorConnectionAssistViewModel( _torController.bridgeTransport = TorBridgeTransportConfig.BUILTIN_SNOWFLAKE // TODO select based on country } - handleConnect(withDebugLogging = true) + torIntegrationAndroid.beginBootstrap() } private fun locationFound(): Boolean { @@ -249,10 +193,4 @@ class TorConnectionAssistViewModel( } return true } - - fun openHome(navController: NavController) { - navController.navigate( - TorConnectionAssistFragmentDirections.actionHome(), - ) - } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/UrlQuickLoadViewModel.kt ===================================== @@ -0,0 +1,10 @@ +package org.mozilla.fenix.tor + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class UrlQuickLoadViewModel : ViewModel() { + val urlToLoadAfterConnecting: MutableLiveData<String?> by lazy { + MutableLiveData<String?>(null) + } +} View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d3a9fcd… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d3a9fcd… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] fixup! [android] Implement Android-native Connection Assist UI
by Dan Ballard (@dan) 10 Mar '25

10 Mar '25
Dan Ballard pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: cbe2d643 by clairehurst at 2025-03-10T15:28:34+00:00 fixup! [android] Implement Android-native Connection Assist UI tor-browser!43408 Add pref to load quickstartUI faster - - - - - 2 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickstartViewModel.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickstartViewModel.kt ===================================== @@ -11,8 +11,9 @@ class QuickstartViewModel( application: Application, ) : AndroidViewModel(application) { + private val components = getApplication<Application>().components private val torIntegrationAndroid = - (getApplication<Application>().components.core.engine as GeckoEngine).getTorIntegrationController() + (components.core.engine as GeckoEngine).getTorIntegrationController() /** * NOTE: Whilst the initial value for _quickstart is fetched from @@ -25,10 +26,11 @@ class QuickstartViewModel( init { torIntegrationAndroid.quickstartGet { _quickstart.value = it + components.settings.quickStart = it } } - private val _quickstart = MutableLiveData<Boolean>() + private val _quickstart = MutableLiveData(components.settings.quickStart) fun quickstart(): LiveData<Boolean> { return _quickstart } @@ -36,6 +38,7 @@ class QuickstartViewModel( fun quickstartSet(value: Boolean) { torIntegrationAndroid.quickstartSet(value) _quickstart.value = value + components.settings.quickStart = value } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt ===================================== @@ -2111,4 +2111,9 @@ class Settings(private val appContext: Context) : PreferencesHolder { appContext.getPreferenceKey(R.string.pref_key_use_html_connection_ui), default = false, ) + + var quickStart by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_quick_start), + default = false, + ) } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/cbe2d64… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/cbe2d64… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.8.0esr-14.5-1] 4 commits: Bug 1917556 - [marionette] Fix Mn tests with Python 3.12 r=webdriver-reviewers,whimboo
by Pier Angelo Vendrame (@pierov) 10 Mar '25

10 Mar '25
Pier Angelo Vendrame pushed to branch mullvad-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser Commits: 9492cb87 by Julian Descottes at 2025-03-06T10:46:29+01:00 Bug 1917556 - [marionette] Fix Mn tests with Python 3.12 r=webdriver-reviewers,whimboo Differential Revision: https://phabricator.services.mozilla.com/D221448 - - - - - 29861015 by Beatriz Rizental at 2025-03-06T10:47:06+01:00 fixup! Base Browser's .mozconfigs. - - - - - 63d64ecc by Beatriz Rizental at 2025-03-06T10:47:15+01:00 BB 43535: Enable tests - - - - - 2aa78353 by John Lin at 2025-03-10T14:20:42+00:00 Bug 1924070 - modify H.264 extradata to match sample conversion code. r=media-playback-reviewers,alwu In AVC stream, NAL unit is represented with the length of unit data (NALUnitLength) followed by the actual unit data(NALUnit). The NALUnitLength field can be 1-4 bytes long and the size can be derived from the 'lengthSizeMinusOne' value recorded in extradata. H264ChangeMonitor.CheckForChange() reformats all input samples so that NALUnitLength will always be 4 bytes long while the original extradata is used during decoder creation earlier, so decoder won't be able to correctly parse converted samples if extradata is not modified accordingly. Differential Revision: https://phabricator.services.mozilla.com/D239547 - - - - - 6 changed files: - dom/media/platforms/wrappers/MediaChangeMonitor.cpp - mozconfig-linux-aarch64-dev - mozconfig-linux-x86_64-dev - mozconfig-macos-dev - testing/marionette/harness/marionette_harness/runner/base.py - testing/specialpowers/api.js Changes: ===================================== dom/media/platforms/wrappers/MediaChangeMonitor.cpp ===================================== @@ -42,6 +42,14 @@ class H264ChangeMonitor : public MediaChangeMonitor::CodecChangeMonitor { : mCurrentConfig(aInfo), mFullParsing(aFullParsing) { if (CanBeInstantiated()) { UpdateConfigFromExtraData(aInfo.mExtraData); + auto avcc = AVCCConfig::Parse(mCurrentConfig.mExtraData); + if (avcc.isOk() && avcc.unwrap().NALUSize() != 4) { + // `CheckForChange()` will use `AnnexB::ConvertSampleToAVCC()` to change + // NAL units into 4-byte. + // `AVCDecoderConfigurationRecord.lengthSizeMinusOne` in the config + // should be modified too. + mCurrentConfig.mExtraData->ReplaceElementAt(4, 0xfc | 3); + } } } ===================================== mozconfig-linux-aarch64-dev ===================================== @@ -16,3 +16,5 @@ ac_add_options --disable-install-strip ac_add_options --with-base-browser-version=dev-build ac_add_options --disable-base-browser-update + +ac_add_options --enable-tests ===================================== mozconfig-linux-x86_64-dev ===================================== @@ -19,3 +19,5 @@ ac_add_options --disable-base-browser-update # Let's make sure no preference is enabling either Adobe's or Google's CDM. ac_add_options --disable-eme + +ac_add_options --enable-tests ===================================== mozconfig-macos-dev ===================================== @@ -19,3 +19,5 @@ ac_add_options --disable-update-agent # Let's make sure no preference is enabling either Adobe's or Google's CDM. ac_add_options --disable-eme + +ac_add_options --enable-tests ===================================== testing/marionette/harness/marionette_harness/runner/base.py ===================================== @@ -222,7 +222,7 @@ class MarionetteTestResult(StructuredTestResult, TestResultCollection): self.logger.info("END LOG:") def stopTest(self, *args, **kwargs): - unittest._TextTestResult.stopTest(self, *args, **kwargs) + unittest.TextTestResult.stopTest(self, *args, **kwargs) if self.marionette.check_for_crash(): # this tells unittest.TestSuite not to continue running tests self.shouldStop = True ===================================== testing/specialpowers/api.js ===================================== @@ -40,6 +40,18 @@ this.specialpowers = class extends ExtensionAPI { uri, resProto.ALLOW_CONTENT_ACCESS ); + } else { + // This is a hack! + // For some reason, this specific substituion has an extra `/` in the path. + // This is a workaround to fix it. + // + // TODO (#43545): Remove this once we have a proper fix. + let uri = resProto.getSubstitution("testing-common"); + resProto.setSubstitution( + "testing-common", + Services.io.newURI(uri.spec.replace("file:////", "file:///")), + resProto.ALLOW_CONTENT_ACCESS + ); } SpecialPowersParent.registerActor(); View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/cb… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/cb… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-128.8.0esr-14.5-1] Bug 1924070 - modify H.264 extradata to match sample conversion code....
by morgan (@morgan) 10 Mar '25

10 Mar '25
morgan pushed to branch base-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 2aa78353 by John Lin at 2025-03-10T14:20:42+00:00 Bug 1924070 - modify H.264 extradata to match sample conversion code. r=media-playback-reviewers,alwu In AVC stream, NAL unit is represented with the length of unit data (NALUnitLength) followed by the actual unit data(NALUnit). The NALUnitLength field can be 1-4 bytes long and the size can be derived from the 'lengthSizeMinusOne' value recorded in extradata. H264ChangeMonitor.CheckForChange() reformats all input samples so that NALUnitLength will always be 4 bytes long while the original extradata is used during decoder creation earlier, so decoder won't be able to correctly parse converted samples if extradata is not modified accordingly. Differential Revision: https://phabricator.services.mozilla.com/D239547 - - - - - 1 changed file: - dom/media/platforms/wrappers/MediaChangeMonitor.cpp Changes: ===================================== dom/media/platforms/wrappers/MediaChangeMonitor.cpp ===================================== @@ -42,6 +42,14 @@ class H264ChangeMonitor : public MediaChangeMonitor::CodecChangeMonitor { : mCurrentConfig(aInfo), mFullParsing(aFullParsing) { if (CanBeInstantiated()) { UpdateConfigFromExtraData(aInfo.mExtraData); + auto avcc = AVCCConfig::Parse(mCurrentConfig.mExtraData); + if (avcc.isOk() && avcc.unwrap().NALUSize() != 4) { + // `CheckForChange()` will use `AnnexB::ConvertSampleToAVCC()` to change + // NAL units into 4-byte. + // `AVCDecoderConfigurationRecord.lengthSizeMinusOne` in the config + // should be modified too. + mCurrentConfig.mExtraData->ReplaceElementAt(4, 0xfc | 3); + } } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/2aa7835… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/2aa7835… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] Bug 1924070 - modify H.264 extradata to match sample conversion code....
by morgan (@morgan) 10 Mar '25

10 Mar '25
morgan pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 4224ae27 by John Lin at 2025-03-10T15:04:22+01:00 Bug 1924070 - modify H.264 extradata to match sample conversion code. r=media-playback-reviewers,alwu In AVC stream, NAL unit is represented with the length of unit data (NALUnitLength) followed by the actual unit data(NALUnit). The NALUnitLength field can be 1-4 bytes long and the size can be derived from the 'lengthSizeMinusOne' value recorded in extradata. H264ChangeMonitor.CheckForChange() reformats all input samples so that NALUnitLength will always be 4 bytes long while the original extradata is used during decoder creation earlier, so decoder won't be able to correctly parse converted samples if extradata is not modified accordingly. Differential Revision: https://phabricator.services.mozilla.com/D239547 - - - - - 1 changed file: - dom/media/platforms/wrappers/MediaChangeMonitor.cpp Changes: ===================================== dom/media/platforms/wrappers/MediaChangeMonitor.cpp ===================================== @@ -42,6 +42,14 @@ class H264ChangeMonitor : public MediaChangeMonitor::CodecChangeMonitor { : mCurrentConfig(aInfo), mFullParsing(aFullParsing) { if (CanBeInstantiated()) { UpdateConfigFromExtraData(aInfo.mExtraData); + auto avcc = AVCCConfig::Parse(mCurrentConfig.mExtraData); + if (avcc.isOk() && avcc.unwrap().NALUSize() != 4) { + // `CheckForChange()` will use `AnnexB::ConvertSampleToAVCC()` to change + // NAL units into 4-byte. + // `AVCDecoderConfigurationRecord.lengthSizeMinusOne` in the config + // should be modified too. + mCurrentConfig.mExtraData->ReplaceElementAt(4, 0xfc | 3); + } } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4224ae2… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4224ae2… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] 2 commits: Bug 41040: Add configuration to rbm.conf to select channel and platforms
by morgan (@morgan) 10 Mar '25

10 Mar '25
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: f27def7c by Nicolas Vigier at 2025-03-10T12:07:48+01:00 Bug 41040: Add configuration to rbm.conf to select channel and platforms The browser can now be built using `make torbrowser` and `make mullvadbrowser`. In this case, the channel and platforms to build are selected by the variables defined in rbm.conf: * var/browser_default_channel * var/browser_platforms - - - - - fb835be6 by Nicolas Vigier at 2025-03-10T13:42:15+01:00 Bug 41040: Update release prep alpha templates The stable release prep templates should be updated in a separate commit when this is backported to `maint-14.0`. - - - - - 6 changed files: - .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md - .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md - Makefile - projects/release/build - projects/release/config - rbm.conf Changes: ===================================== .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md ===================================== @@ -65,6 +65,7 @@ Mullvad Browser Alpha (and Nightly) are on the `main` branch - [ ] `var/torbrowser_build`: updated to `${MULLVAD_BROWSER_BUILD_N}` - [ ] `var/browser_release_date`: updated to build date. For the build to be reproducible, the date should be in the past when building. - **⚠️ WARNING**: If we have updated `var/torbrowser_build` without updating the `firefox` tag, then we can leave this unchanged to avoid forcing a firefox re-build (e.g. when bumping `var/torbrowser_build` to build2, build3, etc due to non-firefox related build issues) + - [ ] `var/browser_platforms`: updated to enable the platforms included in this release - [ ] `var/torbrowser_incremental_from`: updated to previous Desktop version - **NOTE**: We try to build incrementals for the previous 3 desktop versions - **⚠️ WARNING**: Really *actually* make sure this is the previous Desktop version or else the `make mullvadbrowser-incrementals-*` step will fail @@ -111,7 +112,7 @@ Mullvad Browser Alpha (and Nightly) are on the `main` branch - [ ] Build the tag: - Run: ```bash - make mullvadbrowser-alpha && make mullvadbrowser-incrementals-alpha + make mullvadbrowser ``` - [ ] Tor Project build machine - [ ] Local developer machine ===================================== .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md ===================================== @@ -65,6 +65,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - [ ] `var/torbrowser_build`: updated to `${TOR_BROWSER_BUILD_N}` - [ ] `var/browser_release_date`: updated to build date. For the build to be reproducible, the date should be in the past when building. - **⚠️ WARNING**: If we have updated `var/torbrowser_build` without updating the `firefox` or `geckoview` tags, then we can leave this unchanged to avoid forcing a firefox re-build (e.g. when bumping `var/torbrwoser_build` to build2, build3, etc due to non-firefox related build issues) + - [ ] `var/browser_platforms`: updated to enable the platforms included in this release - [ ] ***(Desktop Only)*** `var/torbrowser_incremental_from`: updated to previous Desktop version - **NOTE**: We try to build incrementals for the previous 3 desktop versions - **⚠️ WARNING**: Really *actually* make sure this is the previous Desktop version or else the `make torbrowser-incrementals-*` step will fail @@ -135,7 +136,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - [ ] Build the tag: - Run: ```bash - make torbrowser-alpha && make torbrowser-incrementals-alpha + make torbrowser ``` - [ ] Tor Project build machine - [ ] Local developer machine ===================================== Makefile ===================================== @@ -1,196 +1,180 @@ rbm=./rbm/rbm +browser_default_channel=$(shell $(rbm) showconf release var/browser_default_channel) -all: torbrowser-release +.PHONY: torbrowser mullvadbrowser +all: torbrowser mullvadbrowser ####################### # Tor Browser Targets # ####################### +torbrowser: submodule-update + @echo Building torbrowser-$(browser_default_channel) + $(MAKE) torbrowser-$(browser_default_channel) + @echo Building incrementals for torbrowser-$(browser_default_channel) + $(MAKE) torbrowser-incrementals-$(browser_default_channel) + torbrowser-release: submodule-update $(rbm) build release --target release --target browser-all --target torbrowser -torbrowser-release-android: submodule-update - $(rbm) build release --target release --target browser-all-android --target torbrowser - torbrowser-release-android-armv7: submodule-update - $(rbm) build release --target release --target browser-android-armv7 --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-android-armv7 --target torbrowser torbrowser-release-android-x86: submodule-update - $(rbm) build release --target release --target browser-android-x86 --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-android-x86 --target torbrowser torbrowser-release-android-x86_64: submodule-update - $(rbm) build release --target release --target browser-android-x86_64 --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-android-x86_64 --target torbrowser torbrowser-release-android-aarch64: submodule-update - $(rbm) build release --target release --target browser-android-aarch64 --target torbrowser - -torbrowser-release-desktop: submodule-update - $(rbm) build release --target release --target browser-all-desktop --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-android-aarch64 --target torbrowser torbrowser-release-linux-x86_64: submodule-update - $(rbm) build release --target release --target browser-linux-x86_64 --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-x86_64 --target torbrowser torbrowser-release-linux-x86_64-asan: submodule-update - $(rbm) build release --target release --target browser-linux-x86_64-asan --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-x86_64-asan --target torbrowser torbrowser-release-linux-i686: submodule-update - $(rbm) build release --target release --target browser-linux-i686 --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-i686 --target torbrowser torbrowser-release-linux-aarch64: submodule-update - $(rbm) build release --target release --target browser-linux-aarch64 --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-aarch64 --target torbrowser torbrowser-release-windows-i686: submodule-update - $(rbm) build release --target release --target browser-windows-i686 --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-windows-i686 --target torbrowser torbrowser-release-windows-x86_64: submodule-update - $(rbm) build release --target release --target browser-windows-x86_64 --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-windows-x86_64 --target torbrowser torbrowser-release-macos: submodule-update - $(rbm) build release --target release --target browser-macos --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-macos --target torbrowser torbrowser-release-src: submodule-update - $(rbm) build release --target release --target browser-src --target torbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-src --target torbrowser torbrowser-alpha: submodule-update $(rbm) build release --target alpha --target browser-all --target torbrowser -torbrowser-alpha-android: submodule-update - $(rbm) build release --target alpha --target browser-all-android --target torbrowser - torbrowser-alpha-android-armv7: submodule-update - $(rbm) build release --target alpha --target browser-android-armv7 --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-android-armv7 --target torbrowser torbrowser-alpha-android-x86: submodule-update - $(rbm) build release --target alpha --target browser-android-x86 --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-android-x86 --target torbrowser torbrowser-alpha-android-x86_64: submodule-update - $(rbm) build release --target alpha --target browser-android-x86_64 --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-android-x86_64 --target torbrowser torbrowser-alpha-android-aarch64: submodule-update - $(rbm) build release --target alpha --target browser-android-aarch64 --target torbrowser - -torbrowser-alpha-desktop: submodule-update - $(rbm) build release --target alpha --target browser-all-desktop --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-android-aarch64 --target torbrowser torbrowser-alpha-linux-x86_64: submodule-update - $(rbm) build release --target alpha --target browser-linux-x86_64 --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-x86_64 --target torbrowser torbrowser-alpha-linux-x86_64-asan: submodule-update - $(rbm) build release --target alpha --target browser-linux-x86_64-asan --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-x86_64-asan --target torbrowser torbrowser-alpha-linux-aarch64: submodule-update - $(rbm) build release --target alpha --target browser-linux-aarch64 --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-aarch64 --target torbrowser torbrowser-alpha-linux-i686: submodule-update - $(rbm) build release --target alpha --target browser-linux-i686 --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-i686 --target torbrowser torbrowser-alpha-windows-i686: submodule-update - $(rbm) build release --target alpha --target browser-windows-i686 --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-windows-i686 --target torbrowser torbrowser-alpha-windows-x86_64: submodule-update - $(rbm) build release --target alpha --target browser-windows-x86_64 --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-windows-x86_64 --target torbrowser torbrowser-alpha-macos: submodule-update - $(rbm) build release --target alpha --target browser-macos --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-macos --target torbrowser torbrowser-alpha-src: submodule-update - $(rbm) build release --target alpha --target browser-src --target torbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-src --target torbrowser torbrowser-nightly: submodule-update $(rbm) build release --target nightly --target browser-all --target torbrowser -torbrowser-nightly-android: submodule-update - $(rbm) build release --target nightly --target browser-all-android --target torbrowser - torbrowser-nightly-android-armv7: submodule-update - $(rbm) build release --target nightly --target browser-android-armv7 --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-android-armv7 --target torbrowser torbrowser-nightly-android-x86: submodule-update - $(rbm) build release --target nightly --target browser-android-x86 --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-android-x86 --target torbrowser torbrowser-nightly-android-x86_64: submodule-update - $(rbm) build release --target nightly --target browser-android-x86_64 --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-android-x86_64 --target torbrowser torbrowser-nightly-android-aarch64: submodule-update - $(rbm) build release --target nightly --target browser-android-aarch64 --target torbrowser - -torbrowser-nightly-desktop: submodule-update - $(rbm) build release --target nightly --target browser-all-desktop --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-android-aarch64 --target torbrowser torbrowser-nightly-linux-x86_64: submodule-update - $(rbm) build release --target nightly --target browser-linux-x86_64 --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-x86_64 --target torbrowser torbrowser-nightly-linux-x86_64-asan: submodule-update - $(rbm) build release --target nightly --target browser-linux-x86_64-asan --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-x86_64-asan --target torbrowser torbrowser-nightly-linux-aarch64: submodule-update - $(rbm) build release --target nightly --target browser-linux-aarch64 --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-aarch64 --target torbrowser torbrowser-nightly-linux-i686: submodule-update - $(rbm) build release --target nightly --target browser-linux-i686 --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-i686 --target torbrowser torbrowser-nightly-windows-i686: submodule-update - $(rbm) build release --target nightly --target browser-windows-i686 --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-windows-i686 --target torbrowser torbrowser-nightly-windows-x86_64: submodule-update - $(rbm) build release --target nightly --target browser-windows-x86_64 --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-windows-x86_64 --target torbrowser torbrowser-nightly-macos: submodule-update - $(rbm) build release --target nightly --target browser-macos --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-macos --target torbrowser torbrowser-nightly-src: submodule-update - $(rbm) build release --target nightly --target browser-src --target torbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-src --target torbrowser torbrowser-testbuild: submodule-update $(rbm) build release --target testbuild --target browser-all --target torbrowser -torbrowser-testbuild-android: submodule-update - $(rbm) build release --target testbuild --target browser-all-android --target torbrowser - torbrowser-testbuild-android-armv7: submodule-update - $(rbm) build release --target testbuild --target browser-android-armv7 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-android-armv7 --target torbrowser torbrowser-testbuild-android-x86: submodule-update - $(rbm) build release --target testbuild --target browser-android-x86 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-android-x86 --target torbrowser torbrowser-testbuild-android-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-android-x86_64 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-android-x86_64 --target torbrowser torbrowser-testbuild-android-aarch64: submodule-update - $(rbm) build release --target testbuild --target browser-android-aarch64 --target torbrowser - -torbrowser-testbuild-desktop: submodule-update - $(rbm) build release --target testbuild --target browser-all-desktop --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-android-aarch64 --target torbrowser torbrowser-testbuild-linux-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-linux-x86_64 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-x86_64 --target torbrowser torbrowser-testbuild-linux-x86_64-asan: submodule-update - $(rbm) build release --target testbuild --target browser-linux-x86_64-asan --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-x86_64-asan --target torbrowser torbrowser-testbuild-linux-i686: submodule-update - $(rbm) build release --target testbuild --target browser-linux-i686 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-i686 --target torbrowser torbrowser-testbuild-linux-aarch64: submodule-update - $(rbm) build release --target testbuild --target browser-linux-aarch64 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-aarch64 --target torbrowser torbrowser-testbuild-windows-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-windows-x86_64 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-windows-x86_64 --target torbrowser torbrowser-testbuild-windows-i686: submodule-update - $(rbm) build release --target testbuild --target browser-windows-i686 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-windows-i686 --target torbrowser torbrowser-testbuild-macos: submodule-update - $(rbm) build release --target testbuild --target browser-macos --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos --target torbrowser torbrowser-testbuild-macos-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-macos-x86_64 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos-x86_64 --target torbrowser torbrowser-testbuild-macos-aarch64: submodule-update - $(rbm) build release --target testbuild --target browser-macos-aarch64 --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos-aarch64 --target torbrowser torbrowser-testbuild-src: submodule-update - $(rbm) build release --target testbuild --target browser-src-testbuild --target torbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-src-testbuild --target torbrowser torbrowser-incrementals-release: submodule-update $(rbm) build release --step update_responses_config --target release --target create_unsigned_incrementals --target torbrowser @@ -259,188 +243,164 @@ torbrowser-compare-mar-signed-unsigned-alpha: submodule-update basebrowser-release: submodule-update $(rbm) build release --target release --target browser-all --target basebrowser -basebrowser-release-android: submodule-update - $(rbm) build release --target release --target browser-all-android --target basebrowser - basebrowser-release-android-armv7: submodule-update - $(rbm) build release --target release --target browser-android-armv7 --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-android-armv7 --target basebrowser basebrowser-release-android-x86: submodule-update - $(rbm) build release --target release --target browser-android-x86 --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-android-x86 --target basebrowser basebrowser-release-android-x86_64: submodule-update - $(rbm) build release --target release --target browser-android-x86_64 --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-android-x86_64 --target basebrowser basebrowser-release-android-aarch64: submodule-update - $(rbm) build release --target release --target browser-android-aarch64 --target basebrowser - -basebrowser-release-desktop: submodule-update - $(rbm) build release --target release --target browser-all-desktop --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-android-aarch64 --target basebrowser basebrowser-release-linux-x86_64: submodule-update - $(rbm) build release --target release --target browser-linux-x86_64 --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-x86_64 --target basebrowser basebrowser-release-linux-x86_64-asan: submodule-update - $(rbm) build release --target release --target browser-linux-x86_64-asan --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-x86_64-asan --target basebrowser basebrowser-release-linux-i686: submodule-update - $(rbm) build release --target release --target browser-linux-i686 --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-i686 --target basebrowser basebrowser-release-linux-aarch64: submodule-update - $(rbm) build release --target release --target browser-linux-aarch64 --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-aarch64 --target basebrowser basebrowser-release-windows-i686: submodule-update - $(rbm) build release --target release --target browser-windows-i686 --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-windows-i686 --target basebrowser basebrowser-release-windows-x86_64: submodule-update - $(rbm) build release --target release --target browser-windows-x86_64 --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-windows-x86_64 --target basebrowser basebrowser-release-macos: submodule-update - $(rbm) build release --target release --target browser-macos --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-macos --target basebrowser basebrowser-release-src: submodule-update - $(rbm) build release --target release --target browser-src --target basebrowser + $(rbm) build release --target release --target browser-single-platform --target browser-src --target basebrowser basebrowser-alpha: submodule-update $(rbm) build release --target alpha --target browser-all --target basebrowser -basebrowser-alpha-android: submodule-update - $(rbm) build release --target alpha --target browser-all-android --target basebrowser - basebrowser-alpha-android-armv7: submodule-update - $(rbm) build release --target alpha --target browser-android-armv7 --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-android-armv7 --target basebrowser basebrowser-alpha-android-x86: submodule-update - $(rbm) build release --target alpha --target browser-android-x86 --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-android-x86 --target basebrowser basebrowser-alpha-android-x86_64: submodule-update - $(rbm) build release --target alpha --target browser-android-x86_64 --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-android-x86_64 --target basebrowser basebrowser-alpha-android-aarch64: submodule-update - $(rbm) build release --target alpha --target browser-android-aarch64 --target basebrowser - -basebrowser-alpha-desktop: submodule-update - $(rbm) build release --target alpha --target browser-all-desktop --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-android-aarch64 --target basebrowser basebrowser-alpha-linux-x86_64: submodule-update - $(rbm) build release --target alpha --target browser-linux-x86_64 --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-x86_64 --target basebrowser basebrowser-alpha-linux-x86_64-asan: submodule-update - $(rbm) build release --target alpha --target browser-linux-x86_64-asan --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-x86_64-asan --target basebrowser basebrowser-alpha-linux-i686: submodule-update - $(rbm) build release --target alpha --target browser-linux-i686 --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-i686 --target basebrowser basebrowser-alpha-linux-aarch64: submodule-update - $(rbm) build release --target alpha --target browser-linux-aarch64 --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-aarch64 --target basebrowser basebrowser-alpha-windows-i686: submodule-update - $(rbm) build release --target alpha --target browser-windows-i686 --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-windows-i686 --target basebrowser basebrowser-alpha-windows-x86_64: submodule-update - $(rbm) build release --target alpha --target browser-windows-x86_64 --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-windows-x86_64 --target basebrowser basebrowser-alpha-macos: submodule-update - $(rbm) build release --target alpha --target browser-macos --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-macos --target basebrowser basebrowser-alpha-src: submodule-update - $(rbm) build release --target alpha --target browser-src --target basebrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-src --target basebrowser basebrowser-nightly: submodule-update $(rbm) build release --target nightly --target browser-all --target basebrowser -basebrowser-nightly-android: submodule-update - $(rbm) build release --target nightly --target browser-all-android --target basebrowser - basebrowser-nightly-android-armv7: submodule-update - $(rbm) build release --target nightly --target browser-android-armv7 --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-android-armv7 --target basebrowser basebrowser-nightly-android-x86: submodule-update - $(rbm) build release --target nightly --target browser-android-x86 --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-android-x86 --target basebrowser basebrowser-nightly-android-x86_64: submodule-update - $(rbm) build release --target nightly --target browser-android-x86_64 --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-android-x86_64 --target basebrowser basebrowser-nightly-android-aarch64: submodule-update - $(rbm) build release --target nightly --target browser-android-aarch64 --target basebrowser - -basebrowser-nightly-desktop: submodule-update - $(rbm) build release --target nightly --target browser-all-desktop --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-android-aarch64 --target basebrowser basebrowser-nightly-linux-x86_64: submodule-update - $(rbm) build release --target nightly --target browser-linux-x86_64 --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-x86_64 --target basebrowser basebrowser-nightly-linux-x86_64-asan: submodule-update - $(rbm) build release --target nightly --target browser-linux-x86_64-asan --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-x86_64-asan --target basebrowser basebrowser-nightly-linux-i686: submodule-update - $(rbm) build release --target nightly --target browser-linux-i686 --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-i686 --target basebrowser basebrowser-nightly-linux-aarch64: submodule-update - $(rbm) build release --target nightly --target browser-linux-aarch64 --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-aarch64 --target basebrowser basebrowser-nightly-windows-i686: submodule-update - $(rbm) build release --target nightly --target browser-windows-i686 --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-windows-i686 --target basebrowser basebrowser-nightly-windows-x86_64: submodule-update - $(rbm) build release --target nightly --target browser-windows-x86_64 --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-windows-x86_64 --target basebrowser basebrowser-nightly-macos: submodule-update - $(rbm) build release --target nightly --target browser-macos --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-macos --target basebrowser basebrowser-nightly-src: submodule-update - $(rbm) build release --target nightly --target browser-src --target basebrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-src --target basebrowser basebrowser-testbuild: submodule-update $(rbm) build release --target testbuild --target browser-all --target basebrowser -basebrowser-testbuild-android: submodule-update - $(rbm) build release --target testbuild --target browser-all-android --target basebrowser - basebrowser-testbuild-android-armv7: submodule-update - $(rbm) build release --target testbuild --target browser-android-armv7 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-android-armv7 --target basebrowser basebrowser-testbuild-android-x86: submodule-update - $(rbm) build release --target testbuild --target browser-android-x86 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-android-x86 --target basebrowser basebrowser-testbuild-android-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-android-x86_64 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-android-x86_64 --target basebrowser basebrowser-testbuild-android-aarch64: submodule-update - $(rbm) build release --target testbuild --target browser-android-aarch64 --target basebrowser - -basebrowser-testbuild-desktop: submodule-update - $(rbm) build release --target testbuild --target browser-all-desktop --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-android-aarch64 --target basebrowser basebrowser-testbuild-linux-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-linux-x86_64 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-x86_64 --target basebrowser basebrowser-testbuild-linux-x86_64-asan: submodule-update - $(rbm) build release --target testbuild --target browser-linux-x86_64-asan --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-x86_64-asan --target basebrowser basebrowser-testbuild-linux-i686: submodule-update - $(rbm) build release --target testbuild --target browser-linux-i686 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-i686 --target basebrowser basebrowser-testbuild-linux-aarch64: submodule-update - $(rbm) build release --target testbuild --target browser-linux-aarch64 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-aarch64 --target basebrowser basebrowser-testbuild-windows-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-windows-x86_64 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-windows-x86_64 --target basebrowser basebrowser-testbuild-windows-i686: submodule-update - $(rbm) build release --target testbuild --target browser-windows-i686 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-windows-i686 --target basebrowser basebrowser-testbuild-macos: submodule-update - $(rbm) build release --target testbuild --target browser-macos --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos --target basebrowser basebrowser-testbuild-macos-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-macos-x86_64 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos-x86_64 --target basebrowser basebrowser-testbuild-macos-aarch64: submodule-update - $(rbm) build release --target testbuild --target browser-macos-aarch64 --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos-aarch64 --target basebrowser basebrowser-testbuild-src: submodule-update - $(rbm) build release --target testbuild --target browser-src-testbuild --target basebrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-src-testbuild --target basebrowser basebrowser-incrementals-nightly: submodule-update $(rbm) build release --step update_responses_config --target nightly --target basebrowser @@ -452,107 +412,101 @@ basebrowser-incrementals-nightly: submodule-update # Mullvad Browser Targets # ########################### -mullvadbrowser-release: submodule-update - $(rbm) build release --target release --target browser-all-desktop --target mullvadbrowser +mullvadbrowser: submodule-update + @echo Building mullvadbrowser-$(browser_default_channel) + $(MAKE) mullvadbrowser-$(browser_default_channel) + @echo Building incrementals for mullvadbrowser-$(browser_default_channel) + $(MAKE) mullvadbrowser-incrementals-$(browser_default_channel) -mullvadbrowser-release-desktop: submodule-update - $(rbm) build release --target release --target browser-all-desktop --target mullvadbrowser +mullvadbrowser-release: submodule-update + $(rbm) build release --target release --target browser-all --target mullvadbrowser mullvadbrowser-release-linux-x86_64: submodule-update - $(rbm) build release --target release --target browser-linux-x86_64 --target mullvadbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-x86_64 --target mullvadbrowser mullvadbrowser-release-linux-x86_64-asan: submodule-update - $(rbm) build release --target release --target browser-linux-x86_64-asan --target mullvadbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-x86_64-asan --target mullvadbrowser mullvadbrowser-release-linux-aarch64: submodule-update - $(rbm) build release --target release --target browser-linux-aarch64 --target mullvadbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-linux-aarch64 --target mullvadbrowser mullvadbrowser-release-windows-x86_64: submodule-update - $(rbm) build release --target release --target browser-windows-x86_64 --target mullvadbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-windows-x86_64 --target mullvadbrowser mullvadbrowser-release-macos: submodule-update - $(rbm) build release --target release --target browser-macos --target mullvadbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-macos --target mullvadbrowser mullvadbrowser-release-src: submodule-update - $(rbm) build release --target release --target browser-src --target mullvadbrowser + $(rbm) build release --target release --target browser-single-platform --target browser-src --target mullvadbrowser mullvadbrowser-alpha: submodule-update - $(rbm) build release --target alpha --target browser-all-desktop --target mullvadbrowser - -mullvadbrowser-alpha-desktop: submodule-update - $(rbm) build release --target alpha --target browser-all-desktop --target mullvadbrowser + $(rbm) build release --target alpha --target browser-all --target mullvadbrowser mullvadbrowser-alpha-linux-x86_64: submodule-update - $(rbm) build release --target alpha --target browser-linux-x86_64 --target mullvadbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-x86_64 --target mullvadbrowser mullvadbrowser-alpha-linux-x86_64-asan: submodule-update - $(rbm) build release --target alpha --target browser-linux-x86_64-asan --target mullvadbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-x86_64-asan --target mullvadbrowser mullvadbrowser-alpha-linux-aarch64: submodule-update - $(rbm) build release --target alpha --target browser-linux-aarch64 --target mullvadbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-aarch64 --target mullvadbrowser mullvadbrowser-alpha-windows-x86_64: submodule-update - $(rbm) build release --target alpha --target browser-windows-x86_64 --target mullvadbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-windows-x86_64 --target mullvadbrowser mullvadbrowser-alpha-macos: submodule-update - $(rbm) build release --target alpha --target browser-macos --target mullvadbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-macos --target mullvadbrowser mullvadbrowser-alpha-src: submodule-update - $(rbm) build release --target alpha --target browser-src --target mullvadbrowser + $(rbm) build release --target alpha --target browser-single-platform --target browser-src --target mullvadbrowser mullvadbrowser-nightly: submodule-update - $(rbm) build release --target nightly --target browser-all-desktop --target mullvadbrowser - -mullvadbrowser-nightly-desktop: submodule-update - $(rbm) build release --target nightly --target browser-all-desktop --target mullvadbrowser + $(rbm) build release --target nightly --target browser-all --target mullvadbrowser mullvadbrowser-nightly-linux-x86_64: submodule-update - $(rbm) build release --target nightly --target browser-linux-x86_64 --target mullvadbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-x86_64 --target mullvadbrowser mullvadbrowser-nightly-linux-x86_64-asan: submodule-update - $(rbm) build release --target nightly --target browser-linux-x86_64-asan --target mullvadbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-x86_64-asan --target mullvadbrowser mullvadbrowser-nightly-linux-aarch64: submodule-update - $(rbm) build release --target nightly --target browser-linux-aarch64 --target mullvadbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-aarch64 --target mullvadbrowser mullvadbrowser-nightly-windows-x86_64: submodule-update - $(rbm) build release --target nightly --target browser-windows-x86_64 --target mullvadbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-windows-x86_64 --target mullvadbrowser mullvadbrowser-nightly-macos: submodule-update - $(rbm) build release --target nightly --target browser-macos --target mullvadbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-macos --target mullvadbrowser mullvadbrowser-nightly-src: submodule-update - $(rbm) build release --target nightly --target browser-src --target mullvadbrowser + $(rbm) build release --target nightly --target browser-single-platform --target browser-src --target mullvadbrowser mullvadbrowser-testbuild: submodule-update - $(rbm) build release --target testbuild --target browser-all-desktop --target mullvadbrowser - -mullvadbrowser-testbuild-desktop: submodule-update - $(rbm) build release --target testbuild --target browser-all-desktop --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-all --target mullvadbrowser mullvadbrowser-testbuild-linux-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-linux-x86_64 --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-x86_64 --target mullvadbrowser mullvadbrowser-testbuild-linux-x86_64-asan: submodule-update - $(rbm) build release --target testbuild --target browser-linux-x86_64-asan --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-x86_64-asan --target mullvadbrowser mullvadbrowser-testbuild-linux-aarch64: submodule-update - $(rbm) build release --target testbuild --target browser-linux-aarch64 --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-aarch64 --target mullvadbrowser mullvadbrowser-testbuild-windows-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-windows-x86_64 --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-windows-x86_64 --target mullvadbrowser mullvadbrowser-testbuild-macos: submodule-update - $(rbm) build release --target testbuild --target browser-macos --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos --target mullvadbrowser mullvadbrowser-testbuild-macos-x86_64: submodule-update - $(rbm) build release --target testbuild --target browser-macos-x86_64 --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos-x86_64 --target mullvadbrowser mullvadbrowser-testbuild-macos-aarch64: submodule-update - $(rbm) build release --target testbuild --target browser-macos-aarch64 --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-macos-aarch64 --target mullvadbrowser mullvadbrowser-testbuild-src: submodule-update - $(rbm) build release --target testbuild --target browser-src-testbuild --target mullvadbrowser + $(rbm) build release --target testbuild --target browser-single-platform --target browser-src-testbuild --target mullvadbrowser mullvadbrowser-incrementals-release: submodule-update $(rbm) build release --step update_responses_config --target release --target create_unsigned_incrementals --target mullvadbrowser @@ -701,7 +655,7 @@ cargo_vendor-rcodesign: submodule-update ################## submodule-update: - git submodule update --init + @git submodule update --init # requires tpo_user variable be set in rbm.local.conf torbrowser-upload-sha256sums-release: submodule-update ===================================== projects/release/build ===================================== @@ -4,40 +4,40 @@ [% IF ENV.HOME %]export HOME="[% ENV.HOME %]"[% END %] destdir="[% dest_dir _ '/' _ c("var/publish_dir") %]" mkdir -p "$destdir" -[% IF c("var/browser-android-armv7") -%] +[% IF c("var/browser_platforms/android-armv7") -%] mv [% c('input_files_by_name/android-armv7') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-android-x86") -%] +[% IF c("var/browser_platforms/android-x86") -%] mv [% c('input_files_by_name/android-x86') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-android-x86_64") -%] +[% IF c("var/browser_platforms/android-x86_64") -%] mv [% c('input_files_by_name/android-x86_64') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-android-aarch64") -%] +[% IF c("var/browser_platforms/android-aarch64") -%] mv [% c('input_files_by_name/android-aarch64') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-windows-i686") -%] +[% IF c("var/browser_platforms/windows-i686") -%] mv [% c('input_files_by_name/windows-i686') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-windows-x86_64") -%] +[% IF c("var/browser_platforms/windows-x86_64") -%] mv [% c('input_files_by_name/windows-x86_64') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-macos") -%] +[% IF c("var/browser_platforms/macos") -%] mv [% c('input_files_by_name/macos') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-macos-x86_64") -%] +[% IF c("var/browser_platforms/macos-x86_64") -%] mv [% c('input_files_by_name/macos-x86_64') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-macos-aarch64") -%] +[% IF c("var/browser_platforms/macos-aarch64") -%] mv [% c('input_files_by_name/macos-aarch64') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-linux-i686") -%] +[% IF c("var/browser_platforms/linux-i686") -%] mv [% c('input_files_by_name/linux-i686') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-linux-x86_64") -%] +[% IF c("var/browser_platforms/linux-x86_64") -%] mv [% c('input_files_by_name/linux-x86_64') %]/* "$destdir"/ [% END -%] -[% IF c("var/browser-linux-aarch64") -%] +[% IF c("var/browser_platforms/linux-aarch64") -%] mv [% c('input_files_by_name/linux-aarch64') %]/* "$destdir"/ [% END -%] [% IF c("var/linux-packages") || c("var/linux-packages-aarch64") -%] ===================================== projects/release/config ===================================== @@ -10,75 +10,69 @@ var: targets: browser-all: - - browser-linux-x86_64 - - browser-linux-i686 - - browser-linux-aarch64 - - browser-windows-i686 - - browser-windows-x86_64 - - browser-macos - - browser-android-armv7 - - browser-android-x86 - - browser-android-x86_64 - - browser-android-aarch64 - browser-src - browser-all-target - browser-all-desktop: - - browser-linux-x86_64 - - browser-linux-i686 - - browser-linux-aarch64 - - browser-windows-i686 - - browser-windows-x86_64 - - browser-macos - - browser-src - - browser-all-target - browser-all-android: - - browser-android-armv7 - - browser-android-x86 - - browser-android-x86_64 - - browser-android-aarch64 + browser-single-platform: + var: + browser_platforms: + is_android_release: 0 + is_desktop_release: 0 browser-android-armv7: var: - browser-android-armv7: 1 + browser_platforms: + android-armv7: 1 browser-android-x86: var: - browser-android-x86: 1 + browser_platforms: + android-x86: 1 browser-android-x86_64: var: - browser-android-x86_64: 1 + browser_platforms: + android-x86_64: 1 browser-android-aarch64: var: - browser-android-aarch64: 1 + browser_platforms: + android-aarch64: 1 browser-linux-x86_64: var: - browser-linux-x86_64: 1 + browser_platforms: + linux-x86_64: 1 linux-packages: '[% c("var/mullvad-browser") || c("var/tor-browser-linux-packages") %]' browser-linux-x86_64-asan: var: - browser-linux-x86_64: 1 + browser_platforms: + linux-x86_64: 1 asan-build: '-asan' browser-linux-i686: var: - browser-linux-i686: '[% c("var/browser_type") != "mullvadbrowser" %]' + browser_platforms: + linux-i686: 1 linux-packages: '[% c("var/mullvad-browser") || c("var/tor-browser-linux-packages") %]' browser-linux-aarch64: var: - browser-linux-aarch64: '[% ! c("var/browser-all-target") || c("var/testbuild") || c("var/nightly") %]' + browser_platforms: + linux-aarch64: 1 linux-packages-aarch64: '[% (! c("var/browser-all-target") || c("var/testbuild") || c("var/nightly")) && (c("var/mullvad-browser") || c("var/tor-browser-linux-packages")) %]' browser-windows-i686: var: - browser-windows-i686: '[% c("var/browser_type") != "mullvadbrowser" %]' + browser_platforms: + windows-i686: '[% c("var/browser_type") != "mullvadbrowser" %]' browser-windows-x86_64: var: - browser-windows-x86_64: 1 + browser_platforms: + windows-x86_64: 1 browser-macos: var: - browser-macos: 1 + browser_platforms: + macos: 1 browser-macos-x86_64: var: - browser-macos-x86_64: 1 + browser_platforms: + macos-x86_64: 1 browser-macos-aarch64: var: - browser-macos-aarch64: 1 + browser_platforms: + macos-aarch64: 1 browser-src: var: browser-src: '[% ! c("var/testbuild") %]' @@ -93,8 +87,6 @@ targets: - torbrowser - release - browser-all - - browser-all-android - - browser-all-desktop noversiondir: var: @@ -156,7 +148,7 @@ input_files: # Release - name: android-armv7 project: browser - enable: '[% c("var/browser-android-armv7") %]' + enable: '[% c("var/browser_platforms/android-armv7") %]' target: - '[% c("var/containers_target") %]' - '[% c("var/build_target") %]' @@ -164,7 +156,7 @@ input_files: - name: android-x86 project: browser - enable: '[% c("var/browser-android-x86") %]' + enable: '[% c("var/browser_platforms/android-x86") %]' target: - '[% c("var/containers_target") %]' - '[% c("var/build_target") %]' @@ -172,7 +164,7 @@ input_files: - name: android-x86_64 project: browser - enable: '[% c("var/browser-android-x86_64") %]' + enable: '[% c("var/browser_platforms/android-x86_64") %]' target: - '[% c("var/containers_target") %]' - '[% c("var/build_target") %]' @@ -180,7 +172,7 @@ input_files: - name: android-aarch64 project: browser - enable: '[% c("var/browser-android-aarch64") %]' + enable: '[% c("var/browser_platforms/android-aarch64") %]' target: - '[% c("var/containers_target") %]' - '[% c("var/build_target") %]' @@ -188,28 +180,28 @@ input_files: - name: linux-x86_64 project: browser - enable: '[% c("var/browser-linux-x86_64") %]' + enable: '[% c("var/browser_platforms/linux-x86_64") %]' target: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-linux-x86_64[% c("var/asan-build") %]' - name: linux-i686 project: browser - enable: '[% c("var/browser-linux-i686") %]' + enable: '[% c("var/browser_platforms/linux-i686") %]' target: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-linux-i686' - name: linux-aarch64 project: browser - enable: '[% c("var/browser-linux-aarch64") %]' + enable: '[% c("var/browser_platforms/linux-aarch64") %]' target: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-linux-aarch64' - name: deb-packages project: linux-packages - enable: '[% c("var/linux-packages") %]' + enable: '[% c("var/browser_platforms/packages") %]' # Add $browser_type-linux-x86_64 target for container config target: - '[% IF c("var/testbuild") %]testbuild[% END %]' @@ -247,21 +239,21 @@ input_files: - name: windows-i686 project: browser - enable: '[% c("var/browser-windows-i686") %]' + enable: '[% c("var/browser_platforms/windows-i686") %]' target: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-windows-i686' - name: windows-x86_64 project: browser - enable: '[% c("var/browser-windows-x86_64") %]' + enable: '[% c("var/browser_platforms/windows-x86_64") %]' target: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-windows-x86_64' - name: macos project: browser - enable: '[% c("var/browser-macos") %]' + enable: '[% c("var/browser_platforms/macos") %]' target: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-macos' @@ -269,7 +261,7 @@ input_files: # non-universal macos build - name: macos-x86_64 project: browser - enable: '[% c("var/browser-macos-x86_64") %]' + enable: '[% c("var/browser_platforms/macos-x86_64") %]' target: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-macos-x86_64' @@ -277,7 +269,7 @@ input_files: # non-universal macos build - name: macos-aarch64 project: browser - enable: '[% c("var/browser-macos-aarch64") %]' + enable: '[% c("var/browser_platforms/macos-aarch64") %]' target: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-macos-aarch64' ===================================== rbm.conf ===================================== @@ -79,6 +79,20 @@ var: # to be reproducible, browser_release_date should always be in the past. browser_release_date: '2025/02/10 18:18:25' browser_release_date_timestamp: '[% USE date; date.format(c("var/browser_release_date"), "%s") %]' + browser_default_channel: alpha + browser_platforms: + is_android_release: '[% c("var/tor-browser") %]' + is_desktop_release: '1' + android-armv7: '[% c("var/browser_platforms/is_android_release") %]' + android-x86: '[% c("var/browser_platforms/is_android_release") %]' + android-x86_64: '[% c("var/browser_platforms/is_android_release") %]' + android-aarch64: '[% c("var/browser_platforms/is_android_release") %]' + linux-x86_64: '[% c("var/browser_platforms/is_desktop_release") %]' + linux-i686: '[% c("var/browser_platforms/is_desktop_release") && c("var/tor-browser") %]' + linux-aarch64: '[% c("var/browser_platforms/is_desktop_release") && ( c("var/testbuild") || c("var/nightly") ) %]' + windows-i686: '[% c("var/browser_platforms/is_desktop_release") && c("var/tor-browser") %]' + windows-x86_64: '[% c("var/browser_platforms/is_desktop_release") %]' + macos: '[% c("var/browser_platforms/is_desktop_release") %]' updater_enabled: 1 build_mar: 1 torbrowser_incremental_from: View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] fixup! TB 7494: Create local home page for TBB.
by morgan (@morgan) 10 Mar '25

10 Mar '25
morgan pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: dce8efc3 by Henry Wilkes at 2025-03-10T13:03:54+00:00 fixup! TB 7494: Create local home page for TBB. TB 43489: Add a survey banner in about:tor. - - - - - 8 changed files: - browser/components/BrowserGlue.sys.mjs - browser/components/abouttor/AboutTorChild.sys.mjs - browser/components/abouttor/AboutTorParent.sys.mjs - + browser/components/abouttor/content/1f44b-waving-hand.svg - browser/components/abouttor/content/aboutTor.css - browser/components/abouttor/content/aboutTor.html - browser/components/abouttor/content/aboutTor.js - browser/components/abouttor/jar.mn Changes: ===================================== browser/components/BrowserGlue.sys.mjs ===================================== @@ -524,6 +524,7 @@ let JSWINDOWACTORS = { DOMContentLoaded: {}, L10nMutationsFinished: {}, SubmitSearchOnionize: { wantUntrusted: true }, + SurveyDismissed: { wantUntrusted: true }, }, }, ===================================== browser/components/abouttor/AboutTorChild.sys.mjs ===================================== @@ -16,6 +16,10 @@ export class AboutTorChild extends JSWindowActorChild { case "SubmitSearchOnionize": this.sendAsyncMessage("AboutTor:SetSearchOnionize", !!event.detail); break; + case "SurveyDismissed": + // event.detail is the survey version. + this.sendAsyncMessage("AboutTor:SurveyDismissed", event.detail); + break; case "L10nMutationsFinished": // Pass on chrome-only event for completed localization to content. this.contentWindow.dispatchEvent( ===================================== browser/components/abouttor/AboutTorParent.sys.mjs ===================================== @@ -13,6 +13,8 @@ ChromeUtils.defineESModuleGetters(lazy, { export class AboutTorParent extends JSWindowActorParent { receiveMessage(message) { const onionizePref = "torbrowser.homepage.search.onionize"; + const surveyDismissVersionPref = + "torbrowser.homepage.survey.dismiss_version"; switch (message.name) { case "AboutTor:GetInitialData": return Promise.resolve({ @@ -20,10 +22,26 @@ export class AboutTorParent extends JSWindowActorParent { messageData: lazy.AboutTorMessage.getNext(), isStable: AppConstants.MOZ_UPDATE_CHANNEL === "release", searchOnionize: Services.prefs.getBoolPref(onionizePref, false), + surveyDismissVersion: Services.prefs.getIntPref( + surveyDismissVersionPref, + 0 + ), }); case "AboutTor:SetSearchOnionize": Services.prefs.setBoolPref(onionizePref, message.data); break; + case "AboutTor:SurveyDismissed": + // The message.data contains the version of the current survey. + // Rather than introduce a new preference for each survey campaign we + // reuse the same integer preference and increase its value every time + // a new version of the survey is shown and dismissed by the user. + // I.e. if the preference value is 2, we will not show survey version 2 + // but will show survey version 3 or higher when they are introduced. + // It should be safe to overwrite the value since we do not expect more + // than one active survey campaign at any given time, nor do we expect + // the version value to decrease. + Services.prefs.setIntPref(surveyDismissVersionPref, message.data); + break; } return undefined; } ===================================== browser/components/abouttor/content/1f44b-waving-hand.svg ===================================== @@ -0,0 +1,3 @@ +<!-- FROM https://github.com/twitter/twemoji + - licensed under CC-BY 4.0: https://creativecommons.org/licenses/by/4.0/ --> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M4.861 9.147c.94-.657 2.357-.531 3.201.166l-.968-1.407c-.779-1.111-.5-2.313.612-3.093 1.112-.777 4.263 1.312 4.263 1.312-.786-1.122-.639-2.544.483-3.331 1.122-.784 2.67-.513 3.456.611l10.42 14.72L25 31l-11.083-4.042L4.25 12.625c-.793-1.129-.519-2.686.611-3.478z"/><path fill="#FFDC5D" d="M2.695 17.336s-1.132-1.65.519-2.781c1.649-1.131 2.78.518 2.78.518l5.251 7.658c.181-.302.379-.6.6-.894L4.557 11.21s-1.131-1.649.519-2.78c1.649-1.131 2.78.518 2.78.518l6.855 9.997c.255-.208.516-.417.785-.622L7.549 6.732s-1.131-1.649.519-2.78c1.649-1.131 2.78.518 2.78.518l7.947 11.589c.292-.179.581-.334.871-.498L12.238 4.729s-1.131-1.649.518-2.78c1.649-1.131 2.78.518 2.78.518l7.854 11.454 1.194 1.742c-4.948 3.394-5.419 9.779-2.592 13.902.565.825 1.39.26 1.39.26-3.393-4.949-2.357-10.51 2.592-13.903L24.515 8.62s-.545-1.924 1.378-2.47c1.924-.545 2.47 1.379 2.47 1.379l1.685 5.004c.668 1.984 1.379 3.961 2.32 5.831 2.657 5.28 1.07 11.842-3.94 15.279-5.465 3.747-12.936 2.354-16.684-3.11L2.695 17.336z"/><g fill="#5DADEC"><path d="M12 32.042C8 32.042 3.958 28 3.958 24c0-.553-.405-1-.958-1s-1.042.447-1.042 1C1.958 30 6 34.042 12 34.042c.553 0 1-.489 1-1.042s-.447-.958-1-.958z"/><path d="M7 34c-3 0-5-2-5-5 0-.553-.447-1-1-1s-1 .447-1 1c0 4 3 7 7 7 .553 0 1-.447 1-1s-.447-1-1-1zM24 2c-.552 0-1 .448-1 1s.448 1 1 1c4 0 8 3.589 8 8 0 .552.448 1 1 1s1-.448 1-1c0-5.514-4-10-10-10z"/><path d="M29 .042c-.552 0-1 .406-1 .958s.448 1.042 1 1.042c3 0 4.958 2.225 4.958 4.958 0 .552.489 1 1.042 1s.958-.448.958-1C35.958 3.163 33 .042 29 .042z"/></g></svg> ===================================== browser/components/abouttor/content/aboutTor.css ===================================== @@ -13,6 +13,7 @@ body { "tor-check tor-check tor-check" auto ". form ." min-content "message message message" auto + "survey survey survey" auto /* End space: unfilled. * Reserve 150px for background image. * NOTE: Since the body has "auto" height, the other "1fr" flex row will @@ -58,20 +59,24 @@ body:not(.is-testing) #tor-browser-home-heading-testing { #tor-check { grid-area: tor-check; - max-width: var(--form-max-width); - box-sizing: border-box; display: flex; gap: 10px; align-items: center; padding-inline: 23px; padding-block: 11px; - border: 1px solid var(--in-content-box-border-color); border-radius: 8px; - background-color: var(--in-content-box-info-background); margin-block-start: 0; margin-block-end: 30px; } +.tor-home-box { + border: 1px solid var(--in-content-box-border-color); + background-color: var(--in-content-box-info-background); + max-width: var(--form-max-width); + width: -moz-available; + box-sizing: border-box; +} + body:not(.show-tor-check) #tor-check { display: none; } @@ -92,8 +97,7 @@ body:not(.show-tor-check) #tor-check { grid-area: message; font-weight: 400; text-align: center; - margin-block-start: 1.6em; - margin-block-end: 1em; + margin-block: 1.6em; } .message-emoji { @@ -173,6 +177,68 @@ body:not(.show-tor-check) #tor-check { margin-inline-start: 0.5em; } +#survey { + grid-area: survey; + display: grid; + grid-template: + "icon heading close" min-content + "icon body close" auto + ". buttons buttons" min-content + / min-content 1fr min-content; + border-radius: 4px; + /* Remove 1px from padding for border. */ + padding-block: 3px 11px; + padding-inline: 15px 3px; + gap: 8px; + margin-block-end: 1.6em; +} + +body:not(.show-survey) #survey { + display: none; +} + +#survey > * { + margin: 0; +} + +#survey-icon { + grid-area: icon; + width: 24px; + height: 24px; + padding: 8px; + border-radius: 20px; +} + +#survey-heading { + grid-area: heading; + font-size: inherit; +} + +#survey-icon, +#survey-heading { + margin-block-start: 8px; +} + +#survey-body { + grid-area: body; + margin-block-end: 8px; +} + +#survey-buttons { + grid-area: buttons; + display: flex; + gap: 8px; +} + +#survey-buttons > * { + flex: 0 0 auto; + margin: 0; +} + +#survey-close { + grid-area: close; +} + @media not ((prefers-contrast) or (forced-colors)) { /* Force the page to follow the same Tor theme, regardless of * prefers-color-scheme. */ @@ -196,6 +262,13 @@ body:not(.show-tor-check) #tor-check { body > :not(#search-form) { /* Same as --in-content-page-color when "prefers-color-scheme: dark" */ color: var(--color-gray-05); + --button-text-color: currentColor; + --in-content-button-text-color: var(--button-text-color); + --in-content-button-text-color-hover: var(--button-text-color); + --in-content-button-text-color-active: var(--button-text-color); + --button-text-color-ghost: var(--button-text-color); + --button-text-color-ghost-hover: var(--button-text-color); + --button-text-color-ghost-active: var(--button-text-color); --link-color: var(--tor-link-color-dark); --link-color-hover: var(--tor-link-color-hover-dark); --link-color-active: var(--tor-link-color-active-dark); @@ -234,4 +307,20 @@ body:not(.show-tor-check) #tor-check { #search-form.onionized-search #onionize-toggle { color: var(--tor-link-color-light); } + + #survey { + background-color: #3d1559; + border-color: transparent; + } + + #survey-icon { + background-color: #00000040; + } + + #survey-launch { + color: var(--color-gray-100); + --in-content-primary-button-background: var(--tor-button-background-color-dark); + --in-content-primary-button-background-hover: var(--tor-button-background-color-hover-dark); + --in-content-primary-button-background-active: var(--tor-button-background-color-active-dark); + } } ===================================== browser/components/abouttor/content/aboutTor.html ===================================== @@ -22,6 +22,10 @@ <link rel="localization" href="browser/newtab/newtab.ftl" /> <link rel="localization" href="toolkit/global/tor-browser.ftl" /> + <script + type="module" + src="chrome://global/content/elements/moz-button.mjs" + ></script> <script type="module" src="chrome://global/content/elements/moz-toggle.mjs" @@ -44,7 +48,7 @@ data-l10n-id="tor-browser-home-heading-testing" ></span> </h1> - <p id="tor-check"> + <p id="tor-check" class="tor-home-box"> <img id="tor-check-icon" alt="" @@ -132,5 +136,26 @@ ></a> </span> </p> + <!-- Survey element, initially used for tor-browser#43504. --> + <article id="survey" class="tor-home-box" aria-labelledby="survey-heading"> + <img + id="survey-icon" + alt="" + src="chrome://browser/content/abouttor/1f44b-waving-hand.svg" + /> + <h2 id="survey-heading"></h2> + <p id="survey-body"></p> + <div id="survey-buttons"> + <button id="survey-launch" class="primary"></button> + <button id="survey-dismiss"></button> + </div> + <moz-button + id="survey-close" + type="icon ghost" + class="close" + size="16" + iconSrc="chrome://global/skin/icons/close.svg" + ></moz-button> + </article> </body> </html> ===================================== browser/components/abouttor/content/aboutTor.js ===================================== @@ -167,14 +167,241 @@ const MessageArea = { }, }; +/** + * A reusable area for surveys. + * + * Initially used for tor-browser#43504. + */ +const SurveyArea = { + /** + * The current version of the survey. + * + * Should be increased every time we start a new survey campaign. + * + * @type {integer} + */ + _version: 1, + + /** + * The date to start showing the survey. + * + * @type {integer} + */ + _startDate: Date.UTC(2025, 3, 14, 12), // 2025 April 14th, 12:00. + + /** + * The date to stop showing the current survey. + * + * @type {integer} + */ + _endDate: Date.UTC(2025, 3, 28), // 2025 April 28th, 00:00. + + /** + * The survey URL. + * + * @type {string} + */ + _urlBase: "https://survey.torproject.org/index.php/923269", + + /** + * @typedef {object} SurveyLocaleData + * + * Locale-specific data for the survey. + * + * @property {string[]} browserLocales - The browser locales this should match + * with. The first locale should match the locale of the strings. + * @property {string} urlCode - The language code to pass to the survey URL. + * @property {string} dir - The direction of the locale. + * @property {object} strings - The strings to use for the survey banner. + */ + + /** + * The data for the selected locale. + * + * @type {SurveyLocaleData} + */ + _localeData: null, + + /** + * The data for each locale that is supported. + * + * The first entry is the default. + * + * @type {SurveyLocaleData[]} + */ + _localeDataSet: [ + { + browserLocales: ["en-US"], + dir: "ltr", + urlCode: "en", + strings: { + heading: "We’d love your feedback", + body: "Help us improve Tor Browser by completing this 10-minute survey.", + launch: "Launch the survey", + dismiss: "Not now", + close: "Close", + }, + }, + { + browserLocales: ["es-ES"], + dir: "ltr", + urlCode: "es", + strings: { + heading: "Danos tu opinión", + body: "Ayúdanos a mejorar el Navegador Tor completando esta encuesta de 10 minutos.", + launch: "Iniciar la encuesta", + dismiss: "Más adelante", + close: "Cerrar", + }, + }, + { + browserLocales: ["ru"], + dir: "ltr", + urlCode: "ru", + strings: { + heading: "Мы будем рады вашим отзывам", + body: "Помогите нам улучшить браузер Tor, пройдя 10-минутный опрос.", + launch: "Начать опрос", + dismiss: "Не сейчас", + close: "Закрыть", + }, + }, + { + browserLocales: ["fr"], + dir: "ltr", + urlCode: "fr", + strings: { + heading: "Nous serions ravis d’avoir votre avis !", + body: "Aidez-nous à améliorer le navigateur Tor en répondant à cette enquête de 10 minutes.", + launch: "Lancer l'enquête", + dismiss: "Pas maintenant", + close: "Fermer", + }, + }, + { + // Also show this pt-BR banner for the pt-PT browser locale. + browserLocales: ["pt-BR", "pt-PT"], + dir: "ltr", + urlCode: "pt-BR", + strings: { + heading: "Adoraríamos ouvir sua opinião", + body: "Ajude-nos a melhorar o Navegador Tor respondendo a esta pesquisa de 10 minutos.", + launch: "Iniciar a pesquisa", + dismiss: "Mais tarde", + close: "Fechar", + }, + }, + ], + + /** + * Initialize the survey area. + */ + init() { + document.getElementById("survey-launch").addEventListener("click", () => { + if (!this._localeData) { + return; + } + const url = new URL(this._urlBase); + url.searchParams.append("lang", this._localeData.urlCode); + open(url.href); + }); + document.getElementById("survey-close").addEventListener("click", () => { + this._hide(); + }); + document.getElementById("survey-dismiss").addEventListener("click", () => { + this._hide(); + }); + }, + + /** + * Permanently hide this survey. + */ + _hide() { + document.body.classList.remove("show-survey"); + // Move focus to the search input. + document.getElementById("search-input").focus(); + + dispatchEvent( + new CustomEvent("SurveyDismissed", { + // We pass in the current survey version to record the *latest* + // version that the user has dismissed. This will overwrite any + // previous versions. + detail: this._version, + bubbles: true, + }) + ); + }, + + /** + * Decide whether to show the survey. + * + * @param {integer} dismissVersion - The latest version of survey that the + * user has already dismissed. + * @param {boolean} isStable - Whether this is the stable release of Tor + * Browser. + */ + potentiallyShow(dismissVersion, isStable) { + const now = Date.now(); + if ( + now < this._startDate || + now >= this._endDate || + // The user has already dismissed this version of the survey before: + dismissVersion >= this._version || + !isStable + ) { + // Don't show the survey. + return; + } + + // Determine the survey locale based on the about:tor locale. + // NOTE: We do not user document.l10n to translate the survey banner. + // Instead we only translate the banner into a limited set of locales that + // match the languages that the survey itself supports. This should match + // the language of the survey when it is opened by the user. + const pageLocale = document.documentElement.getAttribute("lang"); + for (const localeData of this._localeDataSet) { + if (localeData.browserLocales.includes(pageLocale)) { + this._localeData = localeData; + break; + } + } + if (!this._localeData) { + // Show the default en-US banner. + this._localeData = this._localeDataSet[0]; + } + + // Make sure the survey's lang and dir attributes match the chosen locale. + const surveyEl = document.getElementById("survey"); + surveyEl.setAttribute("lang", this._localeData.browserLocales[0]); + surveyEl.setAttribute("dir", this._localeData.dir); + + const { heading, body, launch, dismiss, close } = this._localeData.strings; + + document.getElementById("survey-heading").textContent = heading; + document.getElementById("survey-body").textContent = body; + document.getElementById("survey-launch").textContent = launch; + document.getElementById("survey-dismiss").textContent = dismiss; + document.getElementById("survey-close").setAttribute("title", close); + + document.body.classList.add("show-survey"); + }, +}; + window.addEventListener("DOMContentLoaded", () => { SearchWidget.init(); MessageArea.init(); + SurveyArea.init(); }); window.addEventListener("InitialData", event => { - const { torConnectEnabled, isStable, searchOnionize, messageData } = - event.detail; + const { + torConnectEnabled, + isStable, + searchOnionize, + messageData, + surveyDismissVersion, + } = event.detail; SearchWidget.setOnionizeState(!!searchOnionize); MessageArea.setMessageData(messageData, !!isStable, !!torConnectEnabled); + SurveyArea.potentiallyShow(surveyDismissVersion, isStable); }); ===================================== browser/components/abouttor/jar.mn ===================================== @@ -3,6 +3,7 @@ browser.jar: content/browser/abouttor/aboutTor.js (content/aboutTor.js) content/browser/abouttor/aboutTor.html (content/aboutTor.html) content/browser/abouttor/dax-logo.svg (content/dax-logo.svg) + content/browser/abouttor/1f44b-waving-hand.svg (content/1f44b-waving-hand.svg) content/browser/abouttor/1f4e3-megaphone.svg (content/1f4e3-megaphone.svg) content/browser/abouttor/26a1-high-voltage.svg (content/26a1-high-voltage.svg) content/browser/abouttor/2728-sparkles.svg (content/2728-sparkles.svg) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/dce8efc… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/dce8efc… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in...
by henry (@henry) 10 Mar '25

10 Mar '25
henry pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 4b55145d by Henry Wilkes at 2025-03-10T11:17:32+00:00 fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection TB 43547: Removing the last bridge sets the source to Invalid instead. - - - - - 1 changed file: - browser/components/torpreferences/content/connectionPane.js Changes: ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -739,9 +739,16 @@ const gBridgeGrid = { } strings.splice(index, 1); - TorSettings.changeSettings({ - bridges: { source, bridge_strings: strings }, - }); + if (strings.length) { + TorSettings.changeSettings({ + bridges: { source, bridge_strings: strings }, + }); + } else { + // Remove all bridges and disable. + TorSettings.changeSettings({ + bridges: { source: TorBridgeSource.Invalid }, + }); + } }); }, View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4b55145… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4b55145… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] 3 commits: fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in...
by henry (@henry) 10 Mar '25

10 Mar '25
henry pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 03900c02 by Henry Wilkes at 2025-03-10T11:05:42+00:00 fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection TB 43463: Use TorConnect.frequentRegionCodes promise to populate the locations popup. Also ensure the initial value is "automatic". - - - - - 8e2dc3e0 by Henry Wilkes at 2025-03-10T11:05:44+00:00 fixup! TB 27476: Implement about:torconnect captive portal within Tor Browser TB 43463: Renamed TorConnect getCountryCodes to getFrequentRegions. - - - - - 48d3af20 by Henry Wilkes at 2025-03-10T11:05:45+00:00 fixup! TB 40597: Implement TorSettings module TB 43463: Load Moat regions from a local file rather than using Moat. Also rename getCountryCodes to getFrequentRegions. - - - - - 10 changed files: - .eslintignore - .prettierignore - browser/components/torpreferences/content/connectionPane.js - toolkit/components/torconnect/TorConnectParent.sys.mjs - toolkit/components/torconnect/content/aboutTorConnect.js - toolkit/content/jar.mn - + toolkit/content/moat_countries_dev_build.json - toolkit/modules/Moat.sys.mjs - toolkit/modules/RemotePageAccessManager.sys.mjs - toolkit/modules/TorConnect.sys.mjs Changes: ===================================== .eslintignore ===================================== @@ -304,4 +304,5 @@ browser/app/profile/001-base-profile.js browser/app/profile/000-tor-browser.js mobile/android/app/000-tor-browser-android.js toolkit/content/pt_config.json +toolkit/content/moat_contries_dev_build.json toolkit/components/lox/lox_wasm.jsm ===================================== .prettierignore ===================================== @@ -1533,4 +1533,5 @@ browser/app/profile/001-base-profile.js browser/app/profile/000-tor-browser.js mobile/android/app/000-tor-browser-android.js toolkit/content/pt_config.json +toolkit/content/moat_countries_dev_build.json toolkit/components/lox/lox_wasm.jsm ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -2529,65 +2529,48 @@ const gConnectionPane = (function () { regionCode: location.value, }); }); - this._populateLocations = () => { - const currentValue = location.value; - locationEntries.textContent = ""; - const createItem = (value, label, disabled) => { - const item = document.createXULElement("menuitem"); - item.setAttribute("value", value); - item.setAttribute("label", label); - if (disabled) { - item.setAttribute("disabled", "true"); - } - return item; - }; - const addLocations = codes => { - const items = []; - for (const code of codes) { - items.push( - createItem( - code, - TorConnect.countryNames[code] - ? TorConnect.countryNames[code] - : code - ) - ); - } - items.sort((left, right) => left.label.localeCompare(right.label)); - locationEntries.append(...items); - }; - locationEntries.append( - createItem("automatic", TorStrings.settings.bridgeLocationAutomatic) - ); - if (TorConnect.countryCodes.length) { - locationEntries.append( - createItem("", TorStrings.settings.bridgeLocationFrequent, true) - ); - addLocations(TorConnect.countryCodes); - locationEntries.append( - createItem("", TorStrings.settings.bridgeLocationOther, true) + const createItem = (value, label, disabled) => { + const item = document.createXULElement("menuitem"); + item.setAttribute("value", value); + item.setAttribute("label", label); + if (disabled) { + item.setAttribute("disabled", "true"); + } + return item; + }; + const addLocations = codes => { + const items = []; + for (const code of codes) { + items.push( + createItem( + code, + TorConnect.countryNames[code] + ? TorConnect.countryNames[code] + : code + ) ); } - addLocations(Object.keys(TorConnect.countryNames)); - location.value = currentValue; + items.sort((left, right) => left.label.localeCompare(right.label)); + locationEntries.append(...items); }; + // Add automatic before waiting for getFrequentRegions. + locationEntries.append( + createItem("automatic", TorStrings.settings.bridgeLocationAutomatic) + ); + location.value = "automatic"; + TorConnect.getFrequentRegions().then(frequentCodes => { + locationEntries.append( + createItem("", TorStrings.settings.bridgeLocationFrequent, true) + ); + addLocations(frequentCodes); + locationEntries.append( + createItem("", TorStrings.settings.bridgeLocationOther, true) + ); + addLocations(Object.keys(TorConnect.countryNames)); + }); this._showAutoconfiguration = () => { - if ( - !TorConnect.canBeginAutoBootstrap || - !TorConnect.potentiallyBlocked - ) { - locationGroup.setAttribute("hidden", "true"); - return; - } - // Populate locations, even though we will show only the automatic - // item for a moment. In my opinion showing the button immediately is - // better then waiting for the Moat query to finish (after a while) - // and showing the controls only after that. - this._populateLocations(); - locationGroup.removeAttribute("hidden"); - if (!TorConnect.countryCodes.length) { - TorConnect.getCountryCodes().then(() => this._populateLocations()); - } + locationGroup.hidden = + !TorConnect.canBeginAutoBootstrap || !TorConnect.potentiallyBlocked; }; this._showAutoconfiguration(); } ===================================== toolkit/components/torconnect/TorConnectParent.sys.mjs ===================================== @@ -132,8 +132,8 @@ export class TorConnectParent extends JSWindowActorParent { stage: TorConnect.stage, quickstartEnabled: TorConnect.quickstart, }; - case "torconnect:get-country-codes": - return TorConnect.getCountryCodes(); + case "torconnect:get-frequent-regions": + return TorConnect.getFrequentRegions(); } return undefined; } ===================================== toolkit/components/torconnect/content/aboutTorConnect.js ===================================== @@ -610,7 +610,7 @@ class AboutTorConnect { showLocationForm(isChoose, buttonLabel) { this.hideButtons(); - RPMSendQuery("torconnect:get-country-codes").then(codes => { + RPMSendQuery("torconnect:get-frequent-regions").then(codes => { if (codes && codes.length) { this.populateFrequentLocations(codes); this.setLocation(); ===================================== toolkit/content/jar.mn ===================================== @@ -158,4 +158,9 @@ toolkit.jar: content/global/third_party/d3/d3.js (/third_party/js/d3/d3.js) content/global/third_party/cfworker/json-schema.js (/third_party/js/cfworker/json-schema.js) + # The pt_config.json content should be replaced in the omni.ja in + # tor-browser-build. See tor-browser#42343. content/global/pt_config.json (pt_config.json) + # The moat_countries.json content should be replaced in the omni.ja in + # tor-browser-build. See tor-browser#43463. + content/global/moat_countries.json (moat_countries_dev_build.json) ===================================== toolkit/content/moat_countries_dev_build.json ===================================== @@ -0,0 +1,7 @@ +[ + { + "_comment1": "Used for dev build, replaced for release builds in tor-browser-build.", + "_comment2": "List is taken from tpo/anti-censorship/rdsys-admin 810fb24b:conf/circumvention.json and filtered with `jq -c keys`." + }, + "by","cn","eg","hk","ir","mm","ru","tm" +] ===================================== toolkit/modules/Moat.sys.mjs ===================================== @@ -335,20 +335,6 @@ export class MoatRPC { return settings; } - // Request a list of country codes with available censorship circumvention - // settings. - // - // returns an array of ISO 3166-1 alpha-2 country codes which we can query - // settings for. - async circumvention_countries() { - const args = {}; - const { response } = await this.#makeRequest( - "circumvention/countries", - args - ); - return response; - } - // Request a copy of the builtin bridges, takes the following parameters: // - transports: optional, an array of transports we would like the latest // bridge strings for; if empty (or not given) returns all of them ===================================== toolkit/modules/RemotePageAccessManager.sys.mjs ===================================== @@ -255,7 +255,7 @@ export let RemotePageAccessManager = { ], RPMSendQuery: [ "torconnect:get-init-args", - "torconnect:get-country-codes", + "torconnect:get-frequent-regions", ], }, "about:welcome": { ===================================== toolkit/modules/TorConnect.sys.mjs ===================================== @@ -817,8 +817,14 @@ export const TorConnect = { }; }, - // list of country codes Moat has settings for - _countryCodes: [], + /** + * Promise that resolves to a list of region codes that Moat has special + * bridge settings for. + * + * @type {Promise<string[]>} + */ + _moatRegionsPromise: null, + _countryNames: Object.freeze( (() => { const codes = Services.intl.getAvailableLocaleDisplayNames("region"); @@ -892,6 +898,18 @@ export const TorConnect = { return; } + this._moatRegionsPromise = fetch( + "chrome://global/content/moat_countries.json" + ) + .then(req => req.json()) + // Filter out the "_comment" object in the moat_countries_dev_build.json + // file. + .then(regionList => regionList.filter(r => typeof r === "string")) + .catch(e => { + lazy.logger.error("Failed to fetch Moat region codes", e); + return []; + }); + let observeTopic = addTopic => { Services.obs.addObserver(this, addTopic); lazy.logger.debug(`Observing topic '${addTopic}'`); @@ -1113,10 +1131,6 @@ export const TorConnect = { return null; }, - get countryCodes() { - return this._countryCodes; - }, - get countryNames() { return this._countryNames; }, @@ -1526,25 +1540,12 @@ export const TorConnect = { this._makeStageRequest(TorConnectStage.ChooseRegion); }, - /* - Further external commands and helper methods + /** + * Get the list of regions that Moat has settings for. + * + * @returns {string[]} - The list of region codes. */ - - async getCountryCodes() { - // Difference with the getter: this is to be called by TorConnectParent, and - // downloads the country codes if they are not already in cache. - if (this._countryCodes.length) { - return this._countryCodes; - } - const mrpc = new lazy.MoatRPC(); - try { - await mrpc.init(); - this._countryCodes = await mrpc.circumvention_countries(); - } catch (err) { - lazy.logger.error("An error occurred while fetching country codes", err); - } finally { - mrpc.uninit(); - } - return this._countryCodes; + async getFrequentRegions() { + return this._moatRegionsPromise ?? []; }, }; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8bb1b9… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8bb1b9… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.8.0esr-14.5-1] 2 commits: fixup! TB 40041 [android]: Implement Tor Network Settings
by Dan Ballard (@dan) 07 Mar '25

07 Mar '25
Dan Ballard pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 496a888f by clairehurst at 2025-03-07T04:03:11+00:00 fixup! TB 40041 [android]: Implement Tor Network Settings tor-browser#43329 [Android] Remove remaining traces of the old Bootstrap - - - - - 8bb1b960 by clairehurst at 2025-03-07T04:03:11+00:00 fixup! TB 41878: [android] Add standalone Tor Bootstrap tor-browser#43329 [Android] Remove remaining traces of the old Bootstrap # Conflicts: # mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt - - - - - 3 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt - − mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapStatus.kt - mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt ===================================== @@ -158,8 +158,6 @@ import org.mozilla.fenix.search.toolbar.SearchSelectorMenu import org.mozilla.fenix.tabstray.Page import org.mozilla.fenix.tabstray.TabsTrayAccessPoint import org.mozilla.fenix.theme.FirefoxTheme -import org.mozilla.fenix.tor.TorBootstrapFragmentDirections -import org.mozilla.fenix.tor.TorBootstrapStatus import org.mozilla.fenix.tor.TorConnectionAssistViewModel import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD import org.mozilla.fenix.utils.allowUndo @@ -262,7 +260,6 @@ class HomeFragment : Fragment(), UserInteractionHandler { private val bottomToolbarContainerIntegration = ViewBoundFeatureWrapper<BottomToolbarContainerIntegration>() private lateinit var savedLoginsLauncher: ActivityResultLauncher<Intent> - private lateinit var torBootstrapStatus: TorBootstrapStatus override fun onCreate(savedInstanceState: Bundle?) { // DO NOT ADD ANYTHING ABOVE THIS getProfilerTime CALL! @@ -295,12 +292,6 @@ class HomeFragment : Fragment(), UserInteractionHandler { val activity = activity as HomeActivity val components = requireComponents - torBootstrapStatus = TorBootstrapStatus( - !BuildConfig.DISABLE_TOR, - components.torController, - ::dispatchModeChanges - ) - val currentWallpaperName = requireContext().settings().currentWallpaperName applyWallpaper( wallpaperName = currentWallpaperName, @@ -1037,7 +1028,6 @@ class HomeFragment : Fragment(), UserInteractionHandler { override fun onStop() { dismissRecommendPrivateBrowsingShortcut() super.onStop() - torBootstrapStatus.unregisterTorListener() } override fun onStart() { @@ -1090,15 +1080,6 @@ class HomeFragment : Fragment(), UserInteractionHandler { } } - private fun dispatchModeChanges(isBootstrapping: Boolean) { - if (isBootstrapping) { - val directions = - TorBootstrapFragmentDirections - .actionStartupTorbootstrap() - findNavController().navigate(directions) - } - } - @VisibleForTesting internal fun removeCollectionWithUndo(tabCollection: TabCollection) { val snackbarMessage = getString(R.string.snackbar_collection_deleted) @@ -1122,7 +1103,6 @@ class HomeFragment : Fragment(), UserInteractionHandler { override fun onResume() { super.onResume() - torBootstrapStatus.registerTorListener() if (browsingModeManager.mode == BrowsingMode.Private) { activity?.window?.setBackgroundDrawableResource(R.drawable.private_home_background_gradient) } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapStatus.kt deleted ===================================== @@ -1,45 +0,0 @@ -/* 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 - -@SuppressWarnings("LongParameterList", "TooManyFunctions") -class TorBootstrapStatus( - private val shouldStartTor: Boolean, - private val torController: TorController, - private val dispatchModeChanges: (isShouldBootstrap: Boolean) -> Unit - ) : TorEvents { - - init { - torController.registerTorListener(this) - } - - fun isBootstrapping() = (shouldStartTor && !torController.isBootstrapped) - - - @SuppressWarnings("EmptyFunctionBlock") - override fun onTorConnecting() { - } - - override fun onTorConnected() { - dispatchModeChanges(isBootstrapping()) - } - - override fun onTorStopped() { - dispatchModeChanges(isBootstrapping()) - } - - @SuppressWarnings("EmptyFunctionBlock") - override fun onTorStatusUpdate(entry: String?, status: String?, progress: Double?) { - } - - fun unregisterTorListener() { - torController.unregisterTorListener(this) - } - - fun registerTorListener() { - torController.registerTorListener(this) - } - -} ===================================== mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml ===================================== @@ -15,12 +15,6 @@ app:popUpTo="@id/startupFragment" app:popUpToInclusive="true" /> - <action - android:id="@+id/action_startup_torbootstrap" - app:destination="@id/torbootstrapFragment" - app:popUpTo="@id/startupFragment" - app:popUpToInclusive="true" /> - <action android:id="@+id/action_startup_tor_connection_assist" app:destination="@+id/torConnectionAssistFragment" @@ -248,25 +242,6 @@ app:popExitAnim="@anim/slide_out_right" /> </fragment> - <fragment - android:id="@+id/torbootstrapFragment" - android:name="org.mozilla.fenix.tor.TorBootstrapFragment" - tools:layout="@layout/fragment_home"> - - <action - android:id="@+id/action_home" - app:destination="@id/homeFragment" - app:popUpTo="@id/torbootstrapFragment" - app:popUpToInclusive="true" /> - <action - android:id="@+id/action_torbootstrapFragment_to_SettingsFragment" - app:destination="@id/settingsFragment" - 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/torConnectionAssistFragment" android:name="org.mozilla.fenix.tor.TorConnectionAssistFragment" View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/e68b04… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/e68b04… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • ...
  • 745
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.