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

Keyboard Shortcuts

Thread View

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

tbb-commits

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

  • 1 participants
  • 19902 discussions
[Git][tpo/applications/mullvad-browser] Pushed new tag FIREFOX_NIGHTLY_147_END
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed new tag FIREFOX_NIGHTLY_147_END at The Tor Project / Applications / Mullvad Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/tree/FIREF… 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-147.0a1-16.0-1-build1
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed new tag mullvad-browser-147.0a1-16.0-1-build1 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-147.0a1-16.0-1] 27 commits: Add CI for Mullvad Browser
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed to branch mullvad-browser-147.0a1-16.0-1 at The Tor Project / Applications / Mullvad Browser Commits: f9e58755 by Henry Wilkes at 2026-01-14T14:44:30+00:00 Add CI for Mullvad Browser - - - - - d572dc4f by Pier Angelo Vendrame at 2026-01-14T14:44:31+00:00 MB 38: Mullvad Browser configuration - - - - - 4a47ab5c by Pier Angelo Vendrame at 2026-01-14T16:02:02+00: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 - - - - - 102bded1 by Henry Wilkes at 2026-01-14T16:02:08+00:00 Mullvad Browser strings This commit adds strings needed by the following Mullvad Browser patches. - - - - - 7d7354da by Pier Angelo Vendrame at 2026-01-14T16:02:09+00: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. - - - - - edc5e4c0 by Pier Angelo Vendrame at 2026-01-14T16:02:10+00:00 MB 63: Customize some about pages for Mullvad Browser Also: mullvad-browser#57: Purge unneeded about: pages - - - - - f6662b35 by Pier Angelo Vendrame at 2026-01-14T16:02:11+00:00 MB 37: Customization for the about dialog - - - - - db1b99e5 by Henry Wilkes at 2026-01-14T16:05:56+00:00 MB 39: Add home page about:mullvad-browser - - - - - a19ad3d4 by Henry Wilkes at 2026-01-14T16:06:01+00:00 fixup! MB 39: Add home page about:mullvad-browser MB 486: Delay the update data for preloaded about:mullvad-browser pages. - - - - - 37cbe2ac by hackademix at 2026-01-14T16:06:02+00:00 MB 97: Remove UI cues to install new extensions. - - - - - aa153534 by hackademix at 2026-01-14T16:06:02+00:00 MB 47: uBlock Origin customization - - - - - 6e9616d9 by Pier Angelo Vendrame at 2026-01-14T16:22:13+00: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. - - - - - 69cefdc3 by Pier Angelo Vendrame at 2026-01-14T16:24:42+00:00 MB 112: Updater customization for Mullvad Browser MB 71: Set the updater base URL to Mullvad domain - - - - - 0c7072e6 by Nicolas Vigier at 2026-01-14T16:24:47+00:00 MB 79: Add Mullvad Browser MAR signing keys MB 256: Add mullvad-browser nightly mar signing key - - - - - 76f82ac8 by Pier Angelo Vendrame at 2026-01-14T16:27:54+00: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. - - - - - 6075fccc by Pier Angelo Vendrame at 2026-01-14T16:27:58+00: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. - - - - - c62bea28 by hackademix at 2026-01-14T16:27:59+00:00 MB 163: Prevent uBlock Origin from being uninstalled/disabled - - - - - bd34f0ea by Richard Pospesel at 2026-01-14T16:28:00+00:00 MB 188: Customize Gitlab Issue and Merge templates - - - - - fc422e8f by rui hildt at 2026-01-14T16:28:00+00:00 MB 213: Customize the search engines list. - - - - - ab368765 by Pier Angelo Vendrame at 2026-01-14T16:28:01+00:00 fixup! MB 213: Customize the search engines list. MB 487: Use custom order for search engines. - - - - - 8a905baa by Henry Wilkes at 2026-01-14T16:28:02+00:00 fixup! MB 213: Customize the search engines list. MB 488: Drop Mullvad Leta search engine. - - - - - 212b15bf by hackademix at 2026-01-14T16:28:03+00:00 MB 214: Enable cross-tab identity leak protection in "quiet" mode - - - - - c3efbb22 by Pier Angelo Vendrame at 2026-01-14T16:28:04+00: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. - - - - - 9229d6f5 by Henry Wilkes at 2026-01-14T16:28:05+00:00 MB 329: Customize toolbar for mullvad-browser. - - - - - e75f2913 by Henry Wilkes at 2026-01-14T16:28:05+00:00 MB 419: Mullvad Browser migration procedures. This commit implements the the Mullvad Browser's version of _migrateUI. - - - - - 06d7d40a by Henry Wilkes at 2026-01-14T16:28:06+00:00 MB 488: Adjust search engine removal notification for Mullvad Leta. - - - - - 2c5b018b by Henry Wilkes at 2026-01-15T10:22:50+00:00 fixup! MB 160: Disable the cookie exceptions button MB 498: Use preference config to disable `#cookieExceptions`. Resolves the issue of missing `privateBrowsing` variable. - - - - - 242 changed files: - .gitlab/ci/jobs/update-translations.yml - .gitlab/issue_templates/000 Bug Report.md - .gitlab/issue_templates/010 Proposal.md - .gitlab/issue_templates/020 Web Compatibility.md - .gitlab/issue_templates/030 Test.md - .gitlab/issue_templates/040 Feature.md - .gitlab/issue_templates/060 Rebase - Alpha.md - .gitlab/issue_templates/061 Rebase - Stable.md - .gitlab/issue_templates/063 Rebase - Rapid.md - .gitlab/issue_templates/090 Emergency Security Issue.md - .gitlab/merge_request_templates/Default.md - + .gitlab/merge_request_templates/Rebase.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.sys.mjs - 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/document_pdf.svg - + 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/document_pdf.svg - + 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/document_pdf.svg - + 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/DesktopActorRegistry.sys.mjs - browser/components/ProfileDataUpgrader.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/preferences/home.inc.xhtml - 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/SearchUIUtils.sys.mjs - browser/components/tabbrowser/NewTabPagePreloading.sys.mjs - browser/config/mozconfigs/base-browser - + browser/config/mozconfigs/mullvad-browser - browser/installer/package-manifest.in - browser/installer/windows/nsis/updater_append.ini - browser/locales/l10n.toml - browser/modules/HomePage.sys.mjs - browser/moz.build - browser/moz.configure - 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 - 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 - toolkit/components/extensions/child/ext-storage.js - toolkit/components/extensions/parent/ext-storage.js - toolkit/components/passwordmgr/LoginHelper.sys.mjs - toolkit/components/search/SearchService.sys.mjs - toolkit/components/search/content/base-browser-search-engine-icons.json - toolkit/components/search/content/base-browser-search-engines.json - + toolkit/components/search/content/brave.svg - + toolkit/components/search/content/mojeek.ico - toolkit/components/search/tests/xpcshell/test_base_browser.js - toolkit/components/securitylevel/SecurityLevel.sys.mjs - + toolkit/content/aboutRightsMullvad.xhtml - + toolkit/content/aboutTelemetryMullvad.xhtml - toolkit/content/jar.mn - + toolkit/locales/en-US/toolkit/global/mullvad-browser.ftl - 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 The diff was not included because it is too large. View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/ab… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/ab… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-146.0a1-16.0-2] fixup! BB 42305: Add script to combine translation files across versions.
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed to branch mullvad-browser-146.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: 33bb7080 by henry at 2026-01-15T13:47:13+00:00 fixup! BB 42305: Add script to combine translation files across versions. TB 44498: Change the expected browser version gap between stable and alpha from 0.5 to 1.0. (cherry picked from commit 0f10cc1e6af605090cbd0ba4dbc0615c6f51e286) Co-authored-by: Henry Wilkes <henry(a)torproject.org> - - - - - 1 changed file: - tools/base_browser/l10n/combine-translation-versions.py Changes: ===================================== tools/base_browser/l10n/combine-translation-versions.py ===================================== @@ -103,10 +103,11 @@ class BrowserBranch: self.name = branch_name self.prefix = version_match.group("prefix") - self.browser_version = version_match.group("browser") + browser_version_str = version_match.group("browser") + self.browser_version = float(browser_version_str) # Convert tor-browser to "Tor Browser", and similar. browser_name = self.prefix.replace("-", " ").title() - self.browser_version_name = f"{browser_name} {self.browser_version}" + self.browser_version_name = f"{browser_name} {browser_version_str}" self._is_head = is_head self._ref = "HEAD" if is_head else f"origin/{branch_name}" @@ -114,7 +115,7 @@ class BrowserBranch: firefox_nums = [int(n) for n in version_match.group("firefox").split(".")] if len(firefox_nums) == 2: firefox_nums.append(0) - browser_nums = [int(n) for n in self.browser_version.split(".")] + browser_nums = [int(n) for n in browser_version_str.split(".")] branch_number = int(version_match.group("number")) # Prioritise the firefox ESR version, then the browser version then the # branch number. @@ -127,25 +128,8 @@ class BrowserBranch: branch_number, ) - # Minor version for browser is only ever "0" or "5", so we can convert - # the version to an integer. - self._browser_int_version = int(2 * float(self.browser_version)) - self._file_paths: list[str] | None = None - def release_below(self, other: "BrowserBranch", num: int) -> bool: - """Determine whether another branch is within range of a previous - browser release. - - The browser versions are expected to increment by "0.5", and a previous - release branch's version is expected to be `num * 0.5` behind the - current one. - - :param other: The branch to compare. - :param num: The number of "0.5" releases behind to test with. - """ - return other._browser_int_version == self._browser_int_version - num - def __lt__(self, other: "BrowserBranch") -> bool: return self._ordered < other._ordered @@ -259,16 +243,14 @@ def get_stable_branch( # Stable can be one release version behind. # NOTE: In principle, when switching between versions there may be a # window of time where the development branch has not yet progressed - # to the next "0.5" release, so has the same browser version as the + # to the next ".0" release, so has the same browser version as the # stable branch. So we also allow for matching browser versions. # NOTE: # 1. The "Will be unused in" message will not make sense, but we do # not expect string differences in this scenario. # 2. We do not expect this scenario to last for long. - if not ( - compare_version.release_below(branch, 1) - or compare_version.release_below(branch, 0) - ): + release_diff = compare_version.browser_version - branch.browser_version + if release_diff < 0.0 or release_diff > 1.0: continue stable_branches.append(branch) elif is_legacy: View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/33b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/33b… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-147.0a1-16.0-2] fixup! BB 42305: Add script to combine translation files across versions.
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 7a1c5d8e by henry at 2026-01-15T13:44:46+00:00 fixup! BB 42305: Add script to combine translation files across versions. TB 44498: Change the expected browser version gap between stable and alpha from 0.5 to 1.0. (cherry picked from commit 0f10cc1e6af605090cbd0ba4dbc0615c6f51e286) Co-authored-by: Henry Wilkes <henry(a)torproject.org> - - - - - 1 changed file: - tools/base_browser/l10n/combine-translation-versions.py Changes: ===================================== tools/base_browser/l10n/combine-translation-versions.py ===================================== @@ -103,10 +103,11 @@ class BrowserBranch: self.name = branch_name self.prefix = version_match.group("prefix") - self.browser_version = version_match.group("browser") + browser_version_str = version_match.group("browser") + self.browser_version = float(browser_version_str) # Convert tor-browser to "Tor Browser", and similar. browser_name = self.prefix.replace("-", " ").title() - self.browser_version_name = f"{browser_name} {self.browser_version}" + self.browser_version_name = f"{browser_name} {browser_version_str}" self._is_head = is_head self._ref = "HEAD" if is_head else f"origin/{branch_name}" @@ -114,7 +115,7 @@ class BrowserBranch: firefox_nums = [int(n) for n in version_match.group("firefox").split(".")] if len(firefox_nums) == 2: firefox_nums.append(0) - browser_nums = [int(n) for n in self.browser_version.split(".")] + browser_nums = [int(n) for n in browser_version_str.split(".")] branch_number = int(version_match.group("number")) # Prioritise the firefox ESR version, then the browser version then the # branch number. @@ -127,25 +128,8 @@ class BrowserBranch: branch_number, ) - # Minor version for browser is only ever "0" or "5", so we can convert - # the version to an integer. - self._browser_int_version = int(2 * float(self.browser_version)) - self._file_paths: list[str] | None = None - def release_below(self, other: "BrowserBranch", num: int) -> bool: - """Determine whether another branch is within range of a previous - browser release. - - The browser versions are expected to increment by "0.5", and a previous - release branch's version is expected to be `num * 0.5` behind the - current one. - - :param other: The branch to compare. - :param num: The number of "0.5" releases behind to test with. - """ - return other._browser_int_version == self._browser_int_version - num - def __lt__(self, other: "BrowserBranch") -> bool: return self._ordered < other._ordered @@ -259,16 +243,14 @@ def get_stable_branch( # Stable can be one release version behind. # NOTE: In principle, when switching between versions there may be a # window of time where the development branch has not yet progressed - # to the next "0.5" release, so has the same browser version as the + # to the next ".0" release, so has the same browser version as the # stable branch. So we also allow for matching browser versions. # NOTE: # 1. The "Will be unused in" message will not make sense, but we do # not expect string differences in this scenario. # 2. We do not expect this scenario to last for long. - if not ( - compare_version.release_below(branch, 1) - or compare_version.release_below(branch, 0) - ): + release_diff = compare_version.browser_version - branch.browser_version + if release_diff < 0.0 or release_diff > 1.0: continue stable_branches.append(branch) elif is_legacy: View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/7a1c5d8… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/7a1c5d8… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! BB 42305: Add script to combine translation files across versions.
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 0f10cc1e by Henry Wilkes at 2026-01-15T13:43:12+00:00 fixup! BB 42305: Add script to combine translation files across versions. TB 44498: Change the expected browser version gap between stable and alpha from 0.5 to 1.0. - - - - - 1 changed file: - tools/base_browser/l10n/combine-translation-versions.py Changes: ===================================== tools/base_browser/l10n/combine-translation-versions.py ===================================== @@ -103,10 +103,11 @@ class BrowserBranch: self.name = branch_name self.prefix = version_match.group("prefix") - self.browser_version = version_match.group("browser") + browser_version_str = version_match.group("browser") + self.browser_version = float(browser_version_str) # Convert tor-browser to "Tor Browser", and similar. browser_name = self.prefix.replace("-", " ").title() - self.browser_version_name = f"{browser_name} {self.browser_version}" + self.browser_version_name = f"{browser_name} {browser_version_str}" self._is_head = is_head self._ref = "HEAD" if is_head else f"origin/{branch_name}" @@ -114,7 +115,7 @@ class BrowserBranch: firefox_nums = [int(n) for n in version_match.group("firefox").split(".")] if len(firefox_nums) == 2: firefox_nums.append(0) - browser_nums = [int(n) for n in self.browser_version.split(".")] + browser_nums = [int(n) for n in browser_version_str.split(".")] branch_number = int(version_match.group("number")) # Prioritise the firefox ESR version, then the browser version then the # branch number. @@ -127,25 +128,8 @@ class BrowserBranch: branch_number, ) - # Minor version for browser is only ever "0" or "5", so we can convert - # the version to an integer. - self._browser_int_version = int(2 * float(self.browser_version)) - self._file_paths: list[str] | None = None - def release_below(self, other: "BrowserBranch", num: int) -> bool: - """Determine whether another branch is within range of a previous - browser release. - - The browser versions are expected to increment by "0.5", and a previous - release branch's version is expected to be `num * 0.5` behind the - current one. - - :param other: The branch to compare. - :param num: The number of "0.5" releases behind to test with. - """ - return other._browser_int_version == self._browser_int_version - num - def __lt__(self, other: "BrowserBranch") -> bool: return self._ordered < other._ordered @@ -259,16 +243,14 @@ def get_stable_branch( # Stable can be one release version behind. # NOTE: In principle, when switching between versions there may be a # window of time where the development branch has not yet progressed - # to the next "0.5" release, so has the same browser version as the + # to the next ".0" release, so has the same browser version as the # stable branch. So we also allow for matching browser versions. # NOTE: # 1. The "Will be unused in" message will not make sense, but we do # not expect string differences in this scenario. # 2. We do not expect this scenario to last for long. - if not ( - compare_version.release_below(branch, 1) - or compare_version.release_below(branch, 0) - ): + release_diff = compare_version.browser_version - branch.browser_version + if release_diff < 0.0 or release_diff > 1.0: continue stable_branches.append(branch) elif is_legacy: View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/0f10cc1… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/0f10cc1… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-146.0a1-16.0-2] fixup! BB 32308: Use direct browser sizing for letterboxing.
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed to branch mullvad-browser-146.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser Commits: 74af24ce by henry at 2026-01-15T11:26:23+00:00 fixup! BB 32308: Use direct browser sizing for letterboxing. TB 44289: Handle the case where --toolbar-field-color is set to "inherit". Also, better handle "currentColor" values to not rely on the computed color, which may vary with the UI state. Also, replace "/*" comments with "//". (cherry picked from commit 961b3271e9af455b91bb43e8ea18701ff6a5577f) Co-authored-by: Henry Wilkes <henry(a)torproject.org> - - - - - 1 changed file: - toolkit/components/resistfingerprinting/RFPHelper.sys.mjs Changes: ===================================== toolkit/components/resistfingerprinting/RFPHelper.sys.mjs ===================================== @@ -920,20 +920,49 @@ class _RFPHelper { * @param {CSSStyleDeclaration} style - The computed style for the element we * want to grab the color from. * @param {string} property - The name of the property we want. + * @param {object} [options] - Optional details. + * @param {string} [options.fallbackProperty] - A fallback to use instead if + * the property doesn't have a computed value. + * @param {string} [options.currentColorProperty] - The name of a property to + * use as the currentColor. * * @returns {InspectorRGBATuple} - The RGBA color. The "r", "g", "b" fields * are relative to the 0-255 color range. The "a" field is in the 0-1 range. */ - _convertToRGBA(win, style, property) { + _convertToRGBA(win, style, property, options) { let cssColor = style.getPropertyValue(property); if (!cssColor) { + if (options?.fallbackProperty) { + lazy.logConsole.debug( + "Using fallback property for RGBA.", + property, + options.fallbackProperty + ); + return this._convertToRGBA(win, style, options.fallbackProperty); + } lazy.logConsole.error(`Missing color "${property}"`); return { r: 0, g: 0, b: 0, a: 0 }; } const currentColorRegex = /(^|[^a-zA-Z0-9_-])currentColor($|[^a-zA-Z0-9_-])/g; if (currentColorRegex.test(cssColor)) { - const currentColor = style.color; + let currentColor; + if (options?.currentColorProperty) { + const currRGBA = this._convertToRGBA( + win, + style, + options.currentColorProperty + ); + currentColor = `rgba(${currRGBA.r}, ${currRGBA.g}, ${currRGBA.b}, ${currRGBA.a})`; + } else { + lazy.logConsole.warning( + "Missing a specification for the currentColor, using computed color." + ); + // Use the current "color" value. NOTE: this may not be exactly what we + // want since it's current value may be effected by :hover, :active, + // :focus, etc. But we want this to be a stable colour for the theme. + currentColor = style.color; + } cssColor = cssColor.replace(currentColorRegex, (_, pre, post) => { return pre + currentColor + post; }); @@ -944,7 +973,7 @@ class _RFPHelper { cssColor ); } - /* Can drop the document argument after bugzilla bug 1973684 (142). */ + // Can drop the document argument after bugzilla bug 1973684 (142). const colorRGBA = win.InspectorUtils.colorToRGBA(cssColor, win.document); if (!colorRGBA) { lazy.logConsole.error( @@ -985,12 +1014,13 @@ class _RFPHelper { * @param {Window} win - The window to calculate the color for. * @param {CSSStyleDeclaration} style - The computed style for the #nav-bar * element. + * @param {boolean} verticalTabs - Whether vertical tabs are enabled. * * @returns {InspectorRGBATuple} - The calculated color, which will be opaque. */ - _calculateUrlbarContainerColor(win, style) { + _calculateUrlbarContainerColor(win, style, verticalTabs) { let colorRGBA; - if (!Services.prefs.getBoolPref(kPrefVerticalTabs)) { + if (!verticalTabs) { lazy.logConsole.debug("Toolbar background used."); colorRGBA = this._convertToRGBA(win, style, "--toolbar-bgcolor"); if (colorRGBA.a === 1) { @@ -1069,12 +1099,19 @@ class _RFPHelper { if (letterboxingEnabled) { // Want the effective colour of various elements without any alpha values // so they can be used consistently. + + const verticalTabs = Services.prefs.getBoolPref(kPrefVerticalTabs); + const chromeTextColorProperty = verticalTabs + ? "--toolbox-textcolor" + : "--toolbar-color"; + const navbarStyle = win.getComputedStyle( win.document.getElementById("nav-bar") ); const containerRGBA = this._calculateUrlbarContainerColor( win, - navbarStyle + navbarStyle, + verticalTabs ); urlbarBackgroundRGBA = this._composeRGBA( this._convertToRGBA( @@ -1084,17 +1121,28 @@ class _RFPHelper { ), containerRGBA ); + // NOTE: In the default theme (no "lwtheme" attribute) with + // browser.theme.native-theme set to false, --toolbar-field-color can be + // set to "inherit", which means it will have a blank computed value. We + // fallback to --toolbar-color or --toolbox-textcolor in this case. + // Similarly, for windows OS, it can be set to "currentColor". urlbarTextRGBA = this._composeRGBA( - this._convertToRGBA(win, navbarStyle, "--toolbar-field-color"), + this._convertToRGBA(win, navbarStyle, "--toolbar-field-color", { + fallbackProperty: chromeTextColorProperty, + currentColorProperty: chromeTextColorProperty, + }), urlbarBackgroundRGBA ); - /* Separator between the urlbar container #nav-bar and the tabbox. */ + // Separator between the urlbar container #nav-bar and the tabbox. + // For the default theme, this can be set to --border-color-card, which + // can use "currentColor". const tabboxStyle = win.getComputedStyle(win.gBrowser.tabbox); contentSeparatorRGBA = this._composeRGBA( this._convertToRGBA( win, tabboxStyle, - "--chrome-content-separator-color" + "--chrome-content-separator-color", + { currentColorProperty: chromeTextColorProperty } ), containerRGBA ); @@ -1114,8 +1162,8 @@ class _RFPHelper { contrastRatio ); urlbarBackgroundDark = bgColor.relativeLuminance < 0.5; - /* Very low contrast ratio. For reference the default light theme has - * a contrast ratio of ~1.1. */ + // Very low contrast ratio. For reference the default light theme has + // a contrast ratio of ~1.1. lowBackgroundOutlineContrast = contrastRatio < 1.05; } for (const { name, colorRGBA } of [ View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/74a… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/74a… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-147.0a1-16.0-2] fixup! BB 32308: Use direct browser sizing for letterboxing.
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed to branch base-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: e2b78f26 by henry at 2026-01-15T11:20:06+00:00 fixup! BB 32308: Use direct browser sizing for letterboxing. TB 44289: Handle the case where --toolbar-field-color is set to "inherit". Also, better handle "currentColor" values to not rely on the computed color, which may vary with the UI state. Also, replace "/*" comments with "//". (cherry picked from commit 961b3271e9af455b91bb43e8ea18701ff6a5577f) Co-authored-by: Henry Wilkes <henry(a)torproject.org> - - - - - 1 changed file: - toolkit/components/resistfingerprinting/RFPHelper.sys.mjs Changes: ===================================== toolkit/components/resistfingerprinting/RFPHelper.sys.mjs ===================================== @@ -920,20 +920,49 @@ class _RFPHelper { * @param {CSSStyleDeclaration} style - The computed style for the element we * want to grab the color from. * @param {string} property - The name of the property we want. + * @param {object} [options] - Optional details. + * @param {string} [options.fallbackProperty] - A fallback to use instead if + * the property doesn't have a computed value. + * @param {string} [options.currentColorProperty] - The name of a property to + * use as the currentColor. * * @returns {InspectorRGBATuple} - The RGBA color. The "r", "g", "b" fields * are relative to the 0-255 color range. The "a" field is in the 0-1 range. */ - _convertToRGBA(win, style, property) { + _convertToRGBA(win, style, property, options) { let cssColor = style.getPropertyValue(property); if (!cssColor) { + if (options?.fallbackProperty) { + lazy.logConsole.debug( + "Using fallback property for RGBA.", + property, + options.fallbackProperty + ); + return this._convertToRGBA(win, style, options.fallbackProperty); + } lazy.logConsole.error(`Missing color "${property}"`); return { r: 0, g: 0, b: 0, a: 0 }; } const currentColorRegex = /(^|[^a-zA-Z0-9_-])currentColor($|[^a-zA-Z0-9_-])/g; if (currentColorRegex.test(cssColor)) { - const currentColor = style.color; + let currentColor; + if (options?.currentColorProperty) { + const currRGBA = this._convertToRGBA( + win, + style, + options.currentColorProperty + ); + currentColor = `rgba(${currRGBA.r}, ${currRGBA.g}, ${currRGBA.b}, ${currRGBA.a})`; + } else { + lazy.logConsole.warning( + "Missing a specification for the currentColor, using computed color." + ); + // Use the current "color" value. NOTE: this may not be exactly what we + // want since it's current value may be effected by :hover, :active, + // :focus, etc. But we want this to be a stable colour for the theme. + currentColor = style.color; + } cssColor = cssColor.replace(currentColorRegex, (_, pre, post) => { return pre + currentColor + post; }); @@ -944,7 +973,7 @@ class _RFPHelper { cssColor ); } - /* Can drop the document argument after bugzilla bug 1973684 (142). */ + // Can drop the document argument after bugzilla bug 1973684 (142). const colorRGBA = win.InspectorUtils.colorToRGBA(cssColor, win.document); if (!colorRGBA) { lazy.logConsole.error( @@ -985,12 +1014,13 @@ class _RFPHelper { * @param {Window} win - The window to calculate the color for. * @param {CSSStyleDeclaration} style - The computed style for the #nav-bar * element. + * @param {boolean} verticalTabs - Whether vertical tabs are enabled. * * @returns {InspectorRGBATuple} - The calculated color, which will be opaque. */ - _calculateUrlbarContainerColor(win, style) { + _calculateUrlbarContainerColor(win, style, verticalTabs) { let colorRGBA; - if (!Services.prefs.getBoolPref(kPrefVerticalTabs)) { + if (!verticalTabs) { lazy.logConsole.debug("Toolbar background used."); colorRGBA = this._convertToRGBA(win, style, "--toolbar-bgcolor"); if (colorRGBA.a === 1) { @@ -1069,12 +1099,19 @@ class _RFPHelper { if (letterboxingEnabled) { // Want the effective colour of various elements without any alpha values // so they can be used consistently. + + const verticalTabs = Services.prefs.getBoolPref(kPrefVerticalTabs); + const chromeTextColorProperty = verticalTabs + ? "--toolbox-textcolor" + : "--toolbar-color"; + const navbarStyle = win.getComputedStyle( win.document.getElementById("nav-bar") ); const containerRGBA = this._calculateUrlbarContainerColor( win, - navbarStyle + navbarStyle, + verticalTabs ); urlbarBackgroundRGBA = this._composeRGBA( this._convertToRGBA( @@ -1084,17 +1121,28 @@ class _RFPHelper { ), containerRGBA ); + // NOTE: In the default theme (no "lwtheme" attribute) with + // browser.theme.native-theme set to false, --toolbar-field-color can be + // set to "inherit", which means it will have a blank computed value. We + // fallback to --toolbar-color or --toolbox-textcolor in this case. + // Similarly, for windows OS, it can be set to "currentColor". urlbarTextRGBA = this._composeRGBA( - this._convertToRGBA(win, navbarStyle, "--toolbar-field-color"), + this._convertToRGBA(win, navbarStyle, "--toolbar-field-color", { + fallbackProperty: chromeTextColorProperty, + currentColorProperty: chromeTextColorProperty, + }), urlbarBackgroundRGBA ); - /* Separator between the urlbar container #nav-bar and the tabbox. */ + // Separator between the urlbar container #nav-bar and the tabbox. + // For the default theme, this can be set to --border-color-card, which + // can use "currentColor". const tabboxStyle = win.getComputedStyle(win.gBrowser.tabbox); contentSeparatorRGBA = this._composeRGBA( this._convertToRGBA( win, tabboxStyle, - "--chrome-content-separator-color" + "--chrome-content-separator-color", + { currentColorProperty: chromeTextColorProperty } ), containerRGBA ); @@ -1114,8 +1162,8 @@ class _RFPHelper { contrastRatio ); urlbarBackgroundDark = bgColor.relativeLuminance < 0.5; - /* Very low contrast ratio. For reference the default light theme has - * a contrast ratio of ~1.1. */ + // Very low contrast ratio. For reference the default light theme has + // a contrast ratio of ~1.1. lowBackgroundOutlineContrast = contrastRatio < 1.05; } for (const { name, colorRGBA } of [ View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/e2b78f2… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/e2b78f2… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! BB 32308: Use direct browser sizing for letterboxing.
by henry (@henry) 15 Jan '26

15 Jan '26
henry pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 961b3271 by Henry Wilkes at 2026-01-15T10:33:25+00:00 fixup! BB 32308: Use direct browser sizing for letterboxing. TB 44289: Handle the case where --toolbar-field-color is set to "inherit". Also, better handle "currentColor" values to not rely on the computed color, which may vary with the UI state. Also, replace "/*" comments with "//". - - - - - 1 changed file: - toolkit/components/resistfingerprinting/RFPHelper.sys.mjs Changes: ===================================== toolkit/components/resistfingerprinting/RFPHelper.sys.mjs ===================================== @@ -920,20 +920,49 @@ class _RFPHelper { * @param {CSSStyleDeclaration} style - The computed style for the element we * want to grab the color from. * @param {string} property - The name of the property we want. + * @param {object} [options] - Optional details. + * @param {string} [options.fallbackProperty] - A fallback to use instead if + * the property doesn't have a computed value. + * @param {string} [options.currentColorProperty] - The name of a property to + * use as the currentColor. * * @returns {InspectorRGBATuple} - The RGBA color. The "r", "g", "b" fields * are relative to the 0-255 color range. The "a" field is in the 0-1 range. */ - _convertToRGBA(win, style, property) { + _convertToRGBA(win, style, property, options) { let cssColor = style.getPropertyValue(property); if (!cssColor) { + if (options?.fallbackProperty) { + lazy.logConsole.debug( + "Using fallback property for RGBA.", + property, + options.fallbackProperty + ); + return this._convertToRGBA(win, style, options.fallbackProperty); + } lazy.logConsole.error(`Missing color "${property}"`); return { r: 0, g: 0, b: 0, a: 0 }; } const currentColorRegex = /(^|[^a-zA-Z0-9_-])currentColor($|[^a-zA-Z0-9_-])/g; if (currentColorRegex.test(cssColor)) { - const currentColor = style.color; + let currentColor; + if (options?.currentColorProperty) { + const currRGBA = this._convertToRGBA( + win, + style, + options.currentColorProperty + ); + currentColor = `rgba(${currRGBA.r}, ${currRGBA.g}, ${currRGBA.b}, ${currRGBA.a})`; + } else { + lazy.logConsole.warning( + "Missing a specification for the currentColor, using computed color." + ); + // Use the current "color" value. NOTE: this may not be exactly what we + // want since it's current value may be effected by :hover, :active, + // :focus, etc. But we want this to be a stable colour for the theme. + currentColor = style.color; + } cssColor = cssColor.replace(currentColorRegex, (_, pre, post) => { return pre + currentColor + post; }); @@ -944,7 +973,7 @@ class _RFPHelper { cssColor ); } - /* Can drop the document argument after bugzilla bug 1973684 (142). */ + // Can drop the document argument after bugzilla bug 1973684 (142). const colorRGBA = win.InspectorUtils.colorToRGBA(cssColor, win.document); if (!colorRGBA) { lazy.logConsole.error( @@ -985,12 +1014,13 @@ class _RFPHelper { * @param {Window} win - The window to calculate the color for. * @param {CSSStyleDeclaration} style - The computed style for the #nav-bar * element. + * @param {boolean} verticalTabs - Whether vertical tabs are enabled. * * @returns {InspectorRGBATuple} - The calculated color, which will be opaque. */ - _calculateUrlbarContainerColor(win, style) { + _calculateUrlbarContainerColor(win, style, verticalTabs) { let colorRGBA; - if (!Services.prefs.getBoolPref(kPrefVerticalTabs)) { + if (!verticalTabs) { lazy.logConsole.debug("Toolbar background used."); colorRGBA = this._convertToRGBA(win, style, "--toolbar-bgcolor"); if (colorRGBA.a === 1) { @@ -1069,12 +1099,19 @@ class _RFPHelper { if (letterboxingEnabled) { // Want the effective colour of various elements without any alpha values // so they can be used consistently. + + const verticalTabs = Services.prefs.getBoolPref(kPrefVerticalTabs); + const chromeTextColorProperty = verticalTabs + ? "--toolbox-textcolor" + : "--toolbar-color"; + const navbarStyle = win.getComputedStyle( win.document.getElementById("nav-bar") ); const containerRGBA = this._calculateUrlbarContainerColor( win, - navbarStyle + navbarStyle, + verticalTabs ); urlbarBackgroundRGBA = this._composeRGBA( this._convertToRGBA( @@ -1084,17 +1121,28 @@ class _RFPHelper { ), containerRGBA ); + // NOTE: In the default theme (no "lwtheme" attribute) with + // browser.theme.native-theme set to false, --toolbar-field-color can be + // set to "inherit", which means it will have a blank computed value. We + // fallback to --toolbar-color or --toolbox-textcolor in this case. + // Similarly, for windows OS, it can be set to "currentColor". urlbarTextRGBA = this._composeRGBA( - this._convertToRGBA(win, navbarStyle, "--toolbar-field-color"), + this._convertToRGBA(win, navbarStyle, "--toolbar-field-color", { + fallbackProperty: chromeTextColorProperty, + currentColorProperty: chromeTextColorProperty, + }), urlbarBackgroundRGBA ); - /* Separator between the urlbar container #nav-bar and the tabbox. */ + // Separator between the urlbar container #nav-bar and the tabbox. + // For the default theme, this can be set to --border-color-card, which + // can use "currentColor". const tabboxStyle = win.getComputedStyle(win.gBrowser.tabbox); contentSeparatorRGBA = this._composeRGBA( this._convertToRGBA( win, tabboxStyle, - "--chrome-content-separator-color" + "--chrome-content-separator-color", + { currentColorProperty: chromeTextColorProperty } ), containerRGBA ); @@ -1114,8 +1162,8 @@ class _RFPHelper { contrastRatio ); urlbarBackgroundDark = bgColor.relativeLuminance < 0.5; - /* Very low contrast ratio. For reference the default light theme has - * a contrast ratio of ~1.1. */ + // Very low contrast ratio. For reference the default light theme has + // a contrast ratio of ~1.1. lowBackgroundOutlineContrast = contrastRatio < 1.05; } for (const { name, colorRGBA } of [ View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/961b327… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/961b327… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] fixup! BB 41803: Add some developer tools for working on tor-browser.
by henry (@henry) 14 Jan '26

14 Jan '26
henry pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: c344d0b6 by Henry Wilkes at 2026-01-14T17:14:26+00:00 fixup! BB 41803: Add some developer tools for working on tor-browser. TB 44452: Improve the range-diff and diff-diff commands. - - - - - 1 changed file: - tools/base_browser/tb-dev Changes: ===================================== tools/base_browser/tb-dev ===================================== @@ -1409,63 +1409,102 @@ def move_to_default(args: argparse.Namespace) -> None: git_run(["cherry-pick", f"{current_basis}..{old_branch_name}"], check=False) +def convert_ref_to_range(ref: str) -> str: + """ + Convert a reference given by the user into a reference range, defaulting to + the last firefox reference. + + :param ref: The reference to convert to a range, if it isn't one already. + :returns: The reference range. + """ + if ".." in ref: + return ref + firefox_commit = get_firefox_ref(ref).commit + return f"{firefox_commit}..{ref}" + + def show_range_diff(args: argparse.Namespace) -> None: """ - Show the range diff between two branches, from their firefox bases. + Show the range diff. If a single reference is given as one of the arguments, + its last "FIREFOX_" tag is used as the range start. """ - firefox_commit_1 = get_firefox_ref(args.branch1).commit - firefox_commit_2 = get_firefox_ref(args.branch2).commit + range1 = convert_ref_to_range(args.ref1) + range2 = convert_ref_to_range(args.ref2) git_run( - [ - "range-diff", - f"{firefox_commit_1}..{args.branch1}", - f"{firefox_commit_2}..{args.branch2}", - ], - check=False, + ["range-diff", *args.gitargs, range1, range2, "--", *args.path], check=False ) def show_diff_diff(args: argparse.Namespace) -> None: """ - Show the diff between the diffs of two branches, relative to their firefox - bases. + Show the diff between the diffs of two ranges. If a single reference is + given as one of the arguments, its last "FIREFOX_" tag is used as the range + start. """ try: diff_tool = next(git_lines(["config", "--get", "diff.tool"])) except StopIteration: raise TbDevException("No diff.tool configured for git") + drop_context = not args.keep_context + # Filter out parts of the diff we expect to be different. index_regex = re.compile(r"index [0-9a-f]{12}\.\.[0-9a-f]{12}") - lines_regex = re.compile(r"@@ -[0-9]+,[0-9]+ \+[0-9]+,[0-9]+ @@(?P<rest>.*)") + context_regex = re.compile(r"@@ -[0-9]+(:?,[0-9]+)? \+[0-9]+(:?,[0-9]+)? @@") - def save_diff(branch: str) -> str: - firefox_commit = get_firefox_ref(branch).commit + # Limit a line length. E.g. "meld" has a line length limit. + LINE_LIMIT = 1024 + + def save_diff(ref_range: str) -> str: file_desc, file_name = tempfile.mkstemp( - text=True, prefix=f'{branch.split("/")[-1]}-' + text=True, prefix=f'{ref_range.replace("/", "_")}' ) # Register deleting the file at exit. atexit.register(os.remove, file_name) diff_process = subprocess.Popen( - [GIT_PATH, "diff", f"{firefox_commit}..{branch}"], + # --unified=1 will reduce the context to just directly neighbouring + # lines. + [ + GIT_PATH, + "diff", + "--binary", + "--unified=1", + *args.gitargs, + ref_range, + "--", + *args.path, + ], stdout=subprocess.PIPE, text=True, + encoding="utf-8", + errors="replace", ) with os.fdopen(file_desc, "w") as file: assert diff_process.stdout is not None for line in diff_process.stdout: - if index_regex.match(line): - # Fake data that will match. - file.write("index ????????????..????????????\n") - continue - lines_match = lines_regex.match(line) - if lines_match: - # Fake data that will match. - file.write("@@ ?,? ?,? @@" + lines_match.group("rest")) - continue - file.write(line) + if drop_context: + if index_regex.match(line): + # Fake data that will match. + file.write("index ????????????..????????????\n") + continue + if context_regex.match(line): + # Fake data that will match. + file.write("@@ ?,? ?,? @@\n") + continue + + remaining_line = line + while True: + if len(remaining_line) - 1 > LINE_LIMIT: + # NOTE: we use `len() - 1` to not count the trailing + # '\n', which we assume all lines in the diff have. + # Long line, split with a newline character. + file.write(remaining_line[:LINE_LIMIT] + "\n") + remaining_line = remaining_line[:LINE_LIMIT] + else: + file.write(remaining_line) + break status = diff_process.wait() if status != 0: @@ -1473,8 +1512,10 @@ def show_diff_diff(args: argparse.Namespace) -> None: return file_name - file_1 = save_diff(args.branch1) - file_2 = save_diff(args.branch2) + range1 = convert_ref_to_range(args.ref1) + range2 = convert_ref_to_range(args.ref2) + file_1 = save_diff(range1) + file_2 = save_diff(range2) subprocess.run([diff_tool, file_1, file_2], check=False) @@ -1483,6 +1524,28 @@ def show_diff_diff(args: argparse.Namespace) -> None: # * -------------------- * +def ref_complete(prefix: str, **_kwargs: Any) -> list[str]: + """ + Complete the argument with a reference name. + """ + if not within_browser_root(): + return [] + try: + matching = [] + for symbolic_ref in ("HEAD",): + if symbolic_ref.startswith(prefix): + matching.append(symbolic_ref) + for ref_type in ("head", "remote", "tag"): + for ref in get_refs(ref_type, ""): + if ref.name.startswith(prefix): + matching.append(ref.name) + if ref.full_name.startswith(prefix): + matching.append(ref.full_name) + return matching + except Exception: + return [] + + def branch_complete(prefix: str, **_kwargs: Any) -> list[str]: """ Complete the argument with a branch name. @@ -1490,12 +1553,9 @@ def branch_complete(prefix: str, **_kwargs: Any) -> list[str]: if not within_browser_root(): return [] try: - branches = [ref.name for ref in get_refs("head", "")] - branches.extend(ref.name for ref in get_refs("remote", "")) - branches.append("HEAD") + return [ref.name for ref in get_refs("head", "") if ref.name.startswith(prefix)] except Exception: return [] - return [br for br in branches if br.startswith(prefix)] parser = argparse.ArgumentParser() @@ -1506,6 +1566,8 @@ class ArgConfig(TypedDict): help: str metavar: NotRequired[str] nargs: NotRequired[str] + action: NotRequired[str] + default: NotRequired[Any] completer: NotRequired[Callable[[str], list[str]]] @@ -1573,33 +1635,59 @@ all_commands: dict[str, CommandConfig] = { }, }, }, - "branch-range-diff": { + "range-diff": { "func": show_range_diff, "args": { - "branch1": { - "help": "the first branch to compare", - "metavar": "<branch-1>", - "completer": branch_complete, + "ref1": { + "help": "the first range to compare", + "metavar": "<ref-1>", + "completer": ref_complete, }, - "branch2": { - "help": "the second branch to compare", - "metavar": "<branch-2>", - "completer": branch_complete, + "ref2": { + "help": "the second range to compare", + "metavar": "<ref-2>", + "completer": ref_complete, + }, + "--path": { + "help": "path filter to pass to git range-diff. Can be given multiple times", + "metavar": "<path>", + "action": "append", + "default": [], + }, + "gitargs": { + "help": "additional argument to pass to git range-diff", + "metavar": "-- git-range-diff-arg", + "nargs": "*", }, }, }, - "branch-diff-diff": { + "diff-diff": { "func": show_diff_diff, "args": { - "branch1": { + "--keep-context": { + "help": "keep the git context lines as they are, otherwise they are trivialised to reduce differences. You may want to use this if your diff tool, like meld, can filter out these lines from the diff without erasing them", + "action": "store_true", + }, + "ref1": { "help": "the first branch to compare", - "metavar": "<branch-1>", - "completer": branch_complete, + "metavar": "<ref-1>", + "completer": ref_complete, }, - "branch2": { + "ref2": { "help": "the second branch to compare", - "metavar": "<branch-2>", - "completer": branch_complete, + "metavar": "<ref-2>", + "completer": ref_complete, + }, + "--path": { + "help": "path filter to pass to git diff. Can be given multiple times", + "metavar": "<path>", + "action": "append", + "default": [], + }, + "gitargs": { + "help": "additional argument to pass to git diff", + "metavar": "-- git-diff-arg", + "nargs": "*", }, }, }, View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/c344d0b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/c344d0b… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • ...
  • 1991
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.