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
  • ----- 2025 -----
  • 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
  • 19581 discussions
[Git][tpo/applications/mullvad-browser][mullvad-browser-145.0a1-16.0-1] 2 commits: fixup! BB 40925: Implemented the Security Level component
by Pier Angelo Vendrame (@pierov) 28 Nov '25

28 Nov '25
Pier Angelo Vendrame pushed to branch mullvad-browser-145.0a1-16.0-1 at The Tor Project / Applications / Mullvad Browser Commits: 4652b979 by Henry Wilkes at 2025-11-28T10:49:10+01:00 fixup! BB 40925: Implemented the Security Level component TB 44365: Fix CSS linting errors and missing variables. - - - - - 9ff7c87b by Henry Wilkes at 2025-11-28T10:49:19+01:00 fixup! BB 32308: Use direct browser sizing for letterboxing. TB 44365: Fix CSS linting errors and missing variables. - - - - - 3 changed files: - browser/components/securitylevel/content/securityLevelPanel.css - browser/components/securitylevel/content/securityLevelPreferences.css - toolkit/components/resistfingerprinting/content/letterboxing.css Changes: ===================================== browser/components/securitylevel/content/securityLevelPanel.css ===================================== @@ -59,7 +59,7 @@ } #securityLevel-level { - font-size: 1.25em; + font-size: larger; font-weight: var(--font-weight-bold); grid-area: title; } ===================================== browser/components/securitylevel/content/securityLevelPreferences.css ===================================== @@ -63,7 +63,7 @@ .security-level-name { grid-area: name; - font-weight: bold; + font-weight: var(--font-weight-bold); align-self: center; white-space: nowrap; } @@ -97,7 +97,7 @@ #security-level-current { margin-block-start: var(--space-large); background: var(--background-color-box); - border: 1px solid var(--in-content-box-border-color); + border: 1px solid var(--border-color); border-radius: var(--border-radius-small); padding: var(--space-medium); } ===================================== toolkit/components/resistfingerprinting/content/letterboxing.css ===================================== @@ -17,6 +17,9 @@ } } +/* stylelint-disable stylelint-plugin-mozilla/use-border-color-tokens */ +/* stylelint-disable stylelint-plugin-mozilla/use-border-radius-tokens */ + #tabbrowser-tabbox.letterboxing { --letterboxing-bgcolor: var(--background-color-canvas); /* Match the border radius used for the sidebar. */ View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/32… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/32… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-145.0a1-16.0-1] 2 commits: fixup! BB 40925: Implemented the Security Level component
by Pier Angelo Vendrame (@pierov) 28 Nov '25

28 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: 4bd11c1b by Henry Wilkes at 2025-11-28T10:46:20+01:00 fixup! BB 40925: Implemented the Security Level component TB 44365: Fix CSS linting errors and missing variables. - - - - - 6746732e by Henry Wilkes at 2025-11-28T10:46:26+01:00 fixup! BB 32308: Use direct browser sizing for letterboxing. TB 44365: Fix CSS linting errors and missing variables. - - - - - 3 changed files: - browser/components/securitylevel/content/securityLevelPanel.css - browser/components/securitylevel/content/securityLevelPreferences.css - toolkit/components/resistfingerprinting/content/letterboxing.css Changes: ===================================== browser/components/securitylevel/content/securityLevelPanel.css ===================================== @@ -59,7 +59,7 @@ } #securityLevel-level { - font-size: 1.25em; + font-size: larger; font-weight: var(--font-weight-bold); grid-area: title; } ===================================== browser/components/securitylevel/content/securityLevelPreferences.css ===================================== @@ -63,7 +63,7 @@ .security-level-name { grid-area: name; - font-weight: bold; + font-weight: var(--font-weight-bold); align-self: center; white-space: nowrap; } @@ -97,7 +97,7 @@ #security-level-current { margin-block-start: var(--space-large); background: var(--background-color-box); - border: 1px solid var(--in-content-box-border-color); + border: 1px solid var(--border-color); border-radius: var(--border-radius-small); padding: var(--space-medium); } ===================================== toolkit/components/resistfingerprinting/content/letterboxing.css ===================================== @@ -17,6 +17,9 @@ } } +/* stylelint-disable stylelint-plugin-mozilla/use-border-color-tokens */ +/* stylelint-disable stylelint-plugin-mozilla/use-border-radius-tokens */ + #tabbrowser-tabbox.letterboxing { --letterboxing-bgcolor: var(--background-color-canvas); /* Match the border radius used for the sidebar. */ View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/a4067c… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/a4067c… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-145.0a1-16.0-1] 10 commits: fixup! BB 40925: Implemented the Security Level component
by Pier Angelo Vendrame (@pierov) 28 Nov '25

28 Nov '25
Pier Angelo Vendrame pushed to branch tor-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: f2691678 by Henry Wilkes at 2025-11-27T17:24:01+00:00 fixup! BB 40925: Implemented the Security Level component TB 44365: Fix CSS linting errors and missing variables. - - - - - 528c689e by Henry Wilkes at 2025-11-27T17:35:12+00:00 fixup! BB 32308: Use direct browser sizing for letterboxing. TB 44365: Fix CSS linting errors and missing variables. - - - - - 6689ac59 by Henry Wilkes at 2025-11-27T17:43:04+00:00 fixup! TB 7494: Create local home page for TBB. TB 44365: Fix CSS linting errors and missing variables. - - - - - dffc19a1 by Henry Wilkes at 2025-11-27T17:43:05+00:00 fixup! TB 30237: Add v3 onion services client authentication prompt TB 44365: Fix CSS linting errors and missing variables. - - - - - 2641c3fc by Henry Wilkes at 2025-11-27T17:43:06+00:00 fixup! TB 40458: Implement .tor.onion aliases TB 44365: Fix CSS linting errors and missing variables. - - - - - 72fcc979 by Henry Wilkes at 2025-11-27T17:43:06+00:00 fixup! TB 41600: Add a tor circuit display panel. TB 44365: Fix CSS linting errors and missing variables. - - - - - e2c81a70 by Henry Wilkes at 2025-11-27T17:43:07+00:00 fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection TB 44365: Fix CSS linting errors and missing variables. - - - - - 5c6aea6a by Henry Wilkes at 2025-11-27T17:43:08+00:00 fixup! TB 27476: Implement about:torconnect captive portal within Tor Browser TB 44365: Fix CSS linting errors and missing variables. - - - - - 7d4f87d0 by Henry Wilkes at 2025-11-27T17:43:09+00:00 fixup! Temporary changes to about:torconnect for Android. TB 44365: Fix CSS linting errors and missing variables. - - - - - 2342c259 by Henry Wilkes at 2025-11-27T17:43:10+00:00 fixup! TB 44032: YEC 2025 assets. TB 44365: Fix CSS linting errors and missing variables. - - - - - 13 changed files: - browser/components/abouttor/content/aboutTor.css - browser/components/abouttor/content/yec2025-font.css - browser/components/onionservices/content/authPreferences.css - browser/components/onionservices/content/onionservices.css - browser/components/rulesets/content/aboutRulesets.css - browser/components/securitylevel/content/securityLevelPanel.css - browser/components/securitylevel/content/securityLevelPreferences.css - browser/components/torcircuit/content/torCircuitPanel.css - browser/components/torpreferences/content/torPreferences.css - browser/themes/shared/tor-urlbar-button.css - toolkit/components/resistfingerprinting/content/letterboxing.css - toolkit/components/torconnect/content/aboutTorConnect.css - toolkit/components/torconnect/content/aboutTorConnect.js Changes: ===================================== browser/components/abouttor/content/aboutTor.css ===================================== @@ -38,6 +38,7 @@ h1 { display: flex; align-items: center; gap: 16px; + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-font-size-tokens */ font-size: 40px; margin-block-start: 0; margin-block-end: 40px; @@ -70,8 +71,8 @@ body:not(.is-testing) #tor-browser-home-heading-testing { } .tor-home-box { - border: 1px solid var(--in-content-box-border-color); - background-color: var(--in-content-box-info-background); + border: 1px solid var(--border-color); + background-color: var(--background-color-box-info); max-width: var(--form-max-width); width: -moz-available; box-sizing: border-box; @@ -95,7 +96,6 @@ body:not(.show-tor-check) #tor-check { .home-message { grid-area: message; - font-weight: 400; text-align: center; margin-block: 1.6em; } @@ -118,12 +118,14 @@ body:not(.show-tor-check) #tor-check { --form-border-width: 1px; /* Padding between elements and the parent's border edge. */ --form-outer-padding: calc(var(--form-padding) - var(--form-border-width)); - --form-radius: 7px; + --form-radius-container: var(--border-radius-medium); + --form-radius: calc(var(--form-radius-container) - var(--form-border-width)); --logo-size: 30px; - border-radius: calc(var(--form-radius) + var(--form-border-width)); + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-radius-tokens */ + border-radius: var(--form-radius-container); border-width: var(--form-border-width); border-style: solid; - border-color: var(--in-content-box-border-color); + border-color: var(--border-color); } #search-form:has(#search-input:focus-visible) { @@ -149,10 +151,12 @@ body:not(.show-tor-check) #tor-check { padding-inline-end: var(--form-padding); padding-inline-start: calc(var(--form-outer-padding) + var(--logo-size) /* logo */ + var(--form-padding) /* padding after logo. */); /* Make sure clickable area does not extend beyond the form's border. */ + /* stylelint-disable stylelint-plugin-mozilla/use-border-radius-tokens */ border-start-start-radius: var(--form-radius); border-end-start-radius: var(--form-radius); border-start-end-radius: 0; border-end-end-radius: 0; + /* stylelint-enable stylelint-plugin-mozilla/use-border-radius-tokens */ /* Focus and outline styling move to the parent. */ background: none; border: none; @@ -161,14 +165,15 @@ body:not(.show-tor-check) #tor-check { #onionize-toggle { flex: 0 0 auto; - font-weight: 500; align-content: center; padding-block: var(--form-outer-padding); padding-inline-end: var(--form-outer-padding); + /* stylelint-disable stylelint-plugin-mozilla/use-border-radius-tokens */ border-start-end-radius: var(--form-radius); border-end-end-radius: var(--form-radius); border-start-start-radius: 0; border-end-start-radius: 0; + /* stylelint-enable stylelint-plugin-mozilla/use-border-radius-tokens */ padding-inline-start: 0; /* Non-clickable gap between input and toggle. */ margin-inline-start: 0.5em; @@ -203,7 +208,7 @@ body:not(.show-survey) #survey { width: 24px; height: 24px; padding: 8px; - border-radius: 20px; + border-radius: var(--border-radius-circle); } #survey-heading { @@ -245,10 +250,12 @@ body:not(.show-survey) #survey { background-color: #2c0449; --focus-outline-color: var(--tor-focus-outline-color-dark); --focus-outline: var(--focus-outline-width) solid var(--focus-outline-color); - --in-content-focus-outline-color: var(--focus-outline-color); - --in-content-focus-outline: var(--focus-outline); --onion-pattern-stroke-color: #3e0663; --onion-pattern-fill-color: #350556; + /* Same as --text-color when "prefers-color-scheme: light" */ + --text-color-light: var(--color-gray-100); + /* Same as --text-color when "prefers-color-scheme: dark" */ + --text-color-dark: var(--color-gray-05); } #tor-check { @@ -257,13 +264,10 @@ body:not(.show-survey) #survey { } body > :not(#search-form) { - /* Same as --in-content-page-color when "prefers-color-scheme: dark" */ - --in-content-page-color-dark: var(--color-gray-05); - color: var(--in-content-page-color-dark); + color: var(--text-color-dark); --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-hover: var(--button-text-color); + --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); @@ -275,15 +279,14 @@ body:not(.show-survey) #survey { #search-form { /* Use light color for background and moz-toggle shadow root. */ color-scheme: light; - /* Same as --in-content-page-color when "prefers-color-scheme: light" */ - --in-content-page-color-light: var(--color-gray-100); - color: var(--in-content-page-color-light); + color: var(--text-color-light); border-color: transparent; } #search-form:has(#search-input:focus-visible) { /* Use a light-themed inner-border to contrast with the dark-themed * focus outline. */ + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-color-tokens */ border-color: var(--tor-focus-outline-color-light); } @@ -297,8 +300,6 @@ body:not(.show-survey) #survey { #search-form > * { --focus-outline-color: var(--tor-focus-outline-color-light); --focus-outline: var(--focus-outline-width) solid var(--focus-outline-color); - --in-content-focus-outline-color: var(--focus-outline-color); - --in-content-focus-outline: var(--focus-outline); /* Variables used for --toggle- variables. */ --color-accent-primary: var(--tor-button-background-color-light); --color-accent-primary-hover: var(--tor-button-background-color-hover-light); @@ -319,10 +320,10 @@ body:not(.show-survey) #survey { } #survey-launch { - color: var(--in-content-page-color-light); - --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); + color: var(--text-color-light); + --button-background-color-primary: var(--tor-button-background-color-dark); + --button-background-color-primary-hover: var(--tor-button-background-color-hover-dark); + --button-background-color-primary-active: var(--tor-button-background-color-active-dark); } } @@ -341,7 +342,7 @@ body.show-yec h1 { #yec-banner { grid-area: heading; border-radius: var(--border-radius-medium); - border: 1px solid var(--in-content-box-border-color); + border: 1px solid var(--border-color); display: grid; grid-template: "yec-heading yec-image" auto @@ -388,8 +389,9 @@ body.show-yec h1 { #yec-heading { grid-area: yec-heading; margin-block: 0 16px; + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-font-size-tokens */ font-size: 64px; - font-weight: 400; + font-weight: var(--font-weight); font-family: "Jacquard 12", serif; } @@ -418,10 +420,10 @@ body.show-yec h1 { justify-self: start; /* Style like a button. */ font-weight: var(--button-font-weight); - color: var(--in-content-button-text-color); - border: 1px solid var(--in-content-button-border-color); - border-radius: var(--border-radius-small); - background-color: var(--in-content-button-background); + color: var(--button-text-color); + border: 1px solid var(--button-border-color); + border-radius: var(--button-border-radius); + background-color: var(--button-background-color); padding: var(--button-padding); box-sizing: border-box; min-height: var(--button-min-height); @@ -437,15 +439,15 @@ body.show-yec h1 { } #yec-donate-link:hover { - background-color: var(--in-content-button-background-hover); - color: var(--in-content-button-text-color-hover); - border-color: var(--in-content-button-border-color-hover); + background-color: var(--button-background-color-hover); + color: var(--button-text-color-hover); + border-color: var(--button-border-color-hover); } #yec-donate-link:hover:active { - background-color: var(--in-content-button-background-active); - color: var(--in-content-button-text-color-active); - border-color: var(--in-content-button-border-color-active); + background-color: var(--button-background-color-active); + color: var(--button-text-color-active); + border-color: var(--button-border-color-active); } #yec-donate-icon { @@ -487,7 +489,8 @@ body.show-yec h1 { } #yec-heading { - font-size: 3.5rem; + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-font-size-tokens */ + font-size: 50px; } #yec-matching { @@ -502,7 +505,7 @@ body.show-yec h1 { @media ((prefers-contrast) or (forced-colors)) and (prefers-color-scheme: dark) { #yec-image { /* Give the dark image a light border to separate from background. */ - border-color: var(--in-content-box-border-color); + border-color: var(--border-color); } } @@ -523,11 +526,11 @@ body.show-yec h1 { } #yec-donate-link { - --in-content-button-text-color: var(--yec-button-text); - --in-content-button-text-color-hover: var(--yec-button-text); - --in-content-button-text-color-active: var(--yec-button-text); - --in-content-button-background: var(--yec-button-background); - --in-content-button-background-hover: var(--yec-button-background-hover); - --in-content-button-background-active: var(--yec-button-background-active); + --button-text-color: var(--yec-button-text); + --button-text-color-hover: var(--yec-button-text); + --button-text-color-active: var(--yec-button-text); + --button-background-color: var(--yec-button-background); + --button-background-color-hover: var(--yec-button-background-hover); + --button-background-color-active: var(--yec-button-background-active); } } ===================================== browser/components/abouttor/content/yec2025-font.css ===================================== @@ -98,6 +98,7 @@ @font-face { font-family: "Jacquard 12"; + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-font-weight-tokens */ font-weight: 400 400; font-style: normal; /* woff2 stream */ ===================================== browser/components/onionservices/content/authPreferences.css ===================================== @@ -5,7 +5,7 @@ } #onionservices-savedkeys-tree treechildren::-moz-tree-cell-text { - font-size: 80%; + font-size: var(--font-size-small); } #onionservices-savedkeys-errorContainer { ===================================== browser/components/onionservices/content/onionservices.css ===================================== @@ -1,7 +1,7 @@ /* Copyright (c) 2020, The Tor Project, Inc. */ #tor-clientauth-notification-desc { - font-weight: bold; + font-weight: var(--font-weight-bold); } #tor-clientauth-notification-key { @@ -16,18 +16,16 @@ * use the same rules). */ #tor-clientauth-notification-key.invalid { - border: 1px solid #d70022; - box-shadow: - 0 0 0 1px #d70022, - 0 0 0 4px rgba(215, 0, 34, 0.3); + border: 1px solid var(--outline-color-error); } #tor-clientauth-warning { display: inline-block; animation: fade-up-tt 450ms; - background: #d70022; + /* FIXME: This warning block does not follow upstream's styling. */ + background: var(--button-background-color-destructive); + color: var(--button-text-color-destructive); border-radius: var(--border-radius-xsmall); - color: #fff; inset-inline-start: 3px; padding: 5px 12px; position: relative; @@ -40,7 +38,7 @@ } #tor-clientauth-warning::before { - background: #d70022; + background: var(--button-background-color-destructive); bottom: -8px; content: "."; height: 16px; ===================================== browser/components/rulesets/content/aboutRulesets.css ===================================== @@ -4,20 +4,10 @@ html, body { - margin: 0; - padding: 0; width: 100%; height: 100%; } -body { - font: message-box; - background-color: var(--background-color-canvas); - color: var(--in-content-page-color); - font-size: 15px; - cursor: default; -} - label { display: flex; align-items: center; @@ -39,14 +29,14 @@ textarea { select, option { - font-weight: 700; + font-weight: var(--font-weight-bold); } dt { margin: var(--ruleset-vmargin) 0 0 0; padding: 0; color: var(--text-color-deemphasized); - font-size: 85%; + font-size: var(--font-size-small); } dd { @@ -60,7 +50,7 @@ hr { width: 40px; margin: 0; border: none; - border-top: 1px solid var(--in-content-border-color); + border-top: 1px solid var(--border-color); } .hidden { @@ -132,15 +122,15 @@ section { width: var(--content-width); max-width: 100%; padding-bottom: 16px; - border-bottom: 1px solid var(--in-content-border-color); + border-bottom: 1px solid var(--border-color); } .title h1 { margin: 0; padding: 0; padding-inline-start: 35px; - font-size: 20px; - font-weight: 700; + font-size: var(--font-size-xlarge); + font-weight: var(--font-weight-bold); background-image: url("chrome://browser/content/rulesets/securedrop.svg"); background-position: 0 center; background-size: 22px; @@ -160,15 +150,15 @@ aside { flex: 0 0 var(--sidebar-width); box-sizing: border-box; - border-inline-end: 1px solid var(--in-content-border-color); + border-inline-end: 1px solid var(--border-color); background-color: var(--background-color-box); } #ruleset-heading { padding: 16px; text-align: center; - font-weight: 700; - border-bottom: 1px solid var(--in-content-border-color); + font-weight: var(--font-weight-bold); + border-bottom: 1px solid var(--border-color); } #ruleset-list-container { @@ -181,7 +171,7 @@ aside { } #ruleset-list-empty-description { - font-size: 80%; + font-size: var(--font-size-small); } #ruleset-list { @@ -196,7 +186,7 @@ aside { padding: 10px 18px; list-style: none; border-inline-start: 4px solid transparent; - border-bottom: 1px solid var(--in-content-border-color); + border-bottom: 1px solid var(--border-color); } #ruleset-list li:last-child { @@ -216,29 +206,30 @@ aside { } #ruleset-list .name { - font-weight: 700; + font-weight: var(--font-weight-bold); } #ruleset-list .description { - font-size: 85%; + font-size: var(--font-size-small); color: var(--text-color-deemphasized); } #ruleset-list .selected { + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-color-tokens */ border-inline-start-color: var(--color-accent-primary); } #ruleset-list .selected.disabled { - border-inline-start-color: var(--in-content-border-color); + border-inline-start-color: var(--border-color); } #ruleset-list li:not(.selected):hover { - background-color: var(--in-content-button-background-hover); - color: var(--in-content-button-text-color-hover); + background-color: var(--button-background-color-hover); + color: var(--button-text-color-hover); } #ruleset-list li:not(.selected):hover:active { - background-color: var(--in-content-button-background-active); + background-color: var(--button-background-color-active); } #ruleset-list #ruleset-template { @@ -255,7 +246,7 @@ aside { padding: 8px; border-radius: var(--border-radius-xsmall); background-color: var(--background-color-box); - font-size: 85%; + font-size: var(--font-size-small); line-break: anywhere; /* ASCII-only text, so can set line-height. */ line-height: 1.4; @@ -284,7 +275,7 @@ aside { #ruleset-updated { margin-top: 24px; color: var(--text-color-deemphasized); - font-size: 85%; + font-size: var(--font-size-small); } /* Edit ruleset */ ===================================== browser/components/securitylevel/content/securityLevelPanel.css ===================================== @@ -59,7 +59,7 @@ } #securityLevel-level { - font-size: 1.25em; + font-size: larger; font-weight: var(--font-weight-bold); grid-area: title; } ===================================== browser/components/securitylevel/content/securityLevelPreferences.css ===================================== @@ -63,7 +63,7 @@ .security-level-name { grid-area: name; - font-weight: bold; + font-weight: var(--font-weight-bold); align-self: center; white-space: nowrap; } @@ -97,7 +97,7 @@ #security-level-current { margin-block-start: var(--space-large); background: var(--background-color-box); - border: 1px solid var(--in-content-box-border-color); + border: 1px solid var(--border-color); border-radius: var(--border-radius-small); padding: var(--space-medium); } ===================================== browser/components/torcircuit/content/torCircuitPanel.css ===================================== @@ -167,6 +167,9 @@ } .tor-circuit-addresses { + /* FIXME: Use a standard font size. Likely will be replaced with the conflux + * design. */ + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-font-size-tokens */ font-size: 0.9em; font-family: monospace; margin-inline-start: 0.75em; ===================================== browser/components/torpreferences/content/torPreferences.css ===================================== @@ -82,7 +82,7 @@ button.spoof-button-disabled { } .network-status-label { - font-weight: bold; + font-weight: var(--font-weight-bold); margin-inline-end: 0.75em; } @@ -142,7 +142,7 @@ button.spoof-button-disabled { min-width: max-content; align-items: center; gap: 0.5em; - font-size: 0.85em; + font-size: var(--font-size-small); } .bridge-status-badge:not(.bridge-status-connected, .bridge-status-none, .bridge-status-current-built-in) { @@ -210,7 +210,7 @@ button.spoof-button-disabled { gap: 16px; border-radius: var(--border-radius-small); color: var(--text-color-deemphasized); - border: 2px dashed color-mix(in srgb, currentColor 20%, transparent); + border: 2px dashed var(--border-color-deemphasized); } #tor-bridges-none-icon { @@ -225,8 +225,8 @@ button.spoof-button-disabled { .tor-bridges-details-box { padding: 16px; border-radius: var(--border-radius-small); - background: var(--in-content-box-info-background); - border: 1px solid var(--in-content-box-border-color); + background: var(--background-color-box-info); + border: 1px solid var(--border-color); } @media not forced-colors { @@ -240,7 +240,7 @@ button.spoof-button-disabled { min-width: max-content; grid-template: "heading source button" min-content / max-content 1fr max-content; align-items: center; - border-block-end: 1px solid var(--in-content-border-color); + border-block-end: 1px solid var(--border-color); padding-block-end: 16px; margin-block-end: 16px; white-space: nowrap; @@ -307,7 +307,7 @@ button.spoof-button-disabled { } #tor-bridges-built-in-type-name { - font-weight: 700; + font-weight: var(--font-weight-bold); grid-area: type; } @@ -525,7 +525,7 @@ button.spoof-button-disabled { /* fill is the progress, stroke is the empty ring. */ -moz-context-properties: fill, stroke; fill: var(--icon-color-success); - stroke: var(--in-content-border-color); + stroke: var(--border-color); content: url("chrome://browser/content/torpreferences/lox-progress-ring.svg"); } @@ -602,7 +602,7 @@ button.spoof-button-disabled { } #tor-bridges-lox-details .tor-bridges-lox-list-item::before { - stroke: var(--in-content-border-color); + stroke: var(--border-color); } #tor-bridges-lox-unlock-alert .tor-bridges-lox-list-item::before { @@ -673,7 +673,7 @@ button.spoof-button-disabled { .tor-bridges-provider-name { font-weight: var(--font-weight-bold); - font-size: 0.85em; + font-size: var(--font-size-small); } .tor-bridges-provider-instruction { @@ -707,8 +707,8 @@ button.spoof-button-disabled { } #torPreferences-bridges-location menuitem[disabled="true"] { - color: var(--in-content-button-text-color, inherit); - font-weight: 700; + color: var(--button-text-color, inherit); + font-weight: var(--font-weight-bold); } /* Request bridges */ @@ -849,7 +849,7 @@ dialog#torPreferences-requestBridge-dialog > hbox { } #lox-invite-dialog-list-label { - font-weight: 700; + font-weight: var(--font-weight-bold); } #lox-invite-dialog-list { @@ -882,7 +882,7 @@ dialog#torPreferences-requestBridge-dialog > hbox { } #torPreferences-builtinBridge-typeSelection radio label { - font-weight: 700; + font-weight: var(--font-weight-bold); } /* Request bridge dialog */ @@ -954,8 +954,8 @@ groupbox#torPreferences-bridges-group textarea { } #user-provide-bridge-textarea.invalid-input { - border-color: var(--in-content-danger-button-background); - outline-color: var(--in-content-danger-button-background); + border-color: var(--outline-color-error); + outline-color: var(--outline-color-error); } #user-provide-bridge-error-message { @@ -1047,7 +1047,7 @@ groupbox#torPreferences-bridges-group textarea { flex-direction: column; padding: var(--space-small); margin-block-end: 4px; - border: 1px solid var(--in-content-box-border-color); + border: 1px solid var(--border-color); border-radius: var(--border-radius-small); font-size: var(--font-size-small); } ===================================== browser/themes/shared/tor-urlbar-button.css ===================================== @@ -2,7 +2,8 @@ display: flex; align-items: center; gap: 0.5em; - border-radius: var(--urlbar-icon-border-radius); + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-radius-tokens */ + border-radius: var(--urlbar-inner-border-radius); --tor-urlbar-button-inline-padding: 8px; padding-inline: var(--tor-urlbar-button-inline-padding); margin: 0; ===================================== toolkit/components/resistfingerprinting/content/letterboxing.css ===================================== @@ -17,6 +17,9 @@ } } +/* stylelint-disable stylelint-plugin-mozilla/use-border-color-tokens */ +/* stylelint-disable stylelint-plugin-mozilla/use-border-radius-tokens */ + #tabbrowser-tabbox.letterboxing { --letterboxing-bgcolor: var(--background-color-canvas); /* Match the border radius used for the sidebar. */ ===================================== toolkit/components/torconnect/content/aboutTorConnect.css ===================================== @@ -35,18 +35,18 @@ body:not(.loaded) { .breadcrumb-item { align-items: center; cursor: pointer; - color: var(--in-content-text-color); + color: var(--text-color); border-radius: var(--border-radius-small); } .breadcrumb-item:hover { color: var(--color-accent-primary); - background-color: var(--in-content-button-background-hover); + background-color: var(--button-background-color-hover); } .breadcrumb-item:active { color: var(--color-accent-primary-active); - background-color: var(--in-content-button-background-active); + background-color: var(--button-background-color-active); } .breadcrumb-separator { @@ -74,23 +74,11 @@ body:not(.loaded) { .breadcrumb-item.disabled, .breadcrumb-item.disabled:hover, .breadcrumb-item.disabled:active { - color: var(--in-content-text-color); + color: var(--text-color); opacity: 0.4; cursor: default; } -.breadcrumb-item.error { - color: var(--in-content-danger-button-background); -} - -.breadcrumb-item.error:hover { - color: var(--in-content-danger-button-background-hover); -} - -.breadcrumb-item.error:active { - color: var(--in-content-danger-button-background-active); -} - .breadcrumb-item.hidden, .breadcrumb-separator.hidden { display: none; @@ -157,7 +145,7 @@ form#locationDropdown { form#locationDropdown select { max-width: 100%; margin-inline: 0; - font-weight: 700; + font-weight: var(--font-weight-bold); } :root { @@ -188,7 +176,7 @@ form#locationDropdown select { #progressBarBackground { width: 100%; height: var(--progress-bar-height); - background: var(--in-content-box-info-background); + background: var(--background-color-box-info); } #progressBackground { @@ -199,6 +187,7 @@ form#locationDropdown select { background-image: linear-gradient(var(--progressbar-shadow-start), var(--background-color-canvas) 100%), var(--progressbar-gradient); animation: var(--progress-animation); filter: blur(5px); + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-radius-tokens */ border-end-end-radius: 33px; } @@ -206,8 +195,10 @@ form#locationDropdown select { z-index: 2; width: var(--progress-percent); height: var(--progress-bar-height); + /* stylelint-disable stylelint-plugin-mozilla/use-border-radius-tokens */ border-start-end-radius: calc(var(--progress-bar-height) / 2); border-end-end-radius: calc(var(--progress-bar-height) / 2); + /* stylelint-enable stylelint-plugin-mozilla/use-border-radius-tokens */ background-image: var(--progressbar-gradient); animation: var(--progress-animation); } @@ -306,7 +297,7 @@ body.android { color: var(--android-dark-text-primary); background: linear-gradient(194deg, #692e9d -0.93%, #393270 48.91%); font: menu; - font-size: 14px; + font-size: var(--font-size-small); display: flex; } @@ -332,13 +323,13 @@ body.android { background-repeat: no-repeat; background-size: 40px; padding-top: 64px; - font-size: 22px; + font-size: var(--font-size-xlarge); line-height: 28px; } .android h1 { font-weight: var(--font-weight); - font-size: 100%; + font-size: inherit; margin: 0 0 16px 0; } @@ -367,6 +358,7 @@ body.android { .android select { background: transparent; border: none; + /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-color-tokens */ border-bottom: 1px solid var(--android-dark-text-primary); color: var(--android-dark-text-primary); display: block; @@ -396,8 +388,8 @@ body:not(.android) #connectButtonContainer { width: 100%; margin: 4px 0; padding: 11px 30px; - font-size: 14px; - font-weight: 500; + font-size: var(--font-size-small); + font-weight: var(--font-weight); border: none; border-radius: var(--border-radius-small); } ===================================== toolkit/components/torconnect/content/aboutTorConnect.js ===================================== @@ -20,7 +20,6 @@ const BreadcrumbStatus = Object.freeze({ Disabled: "disabled", Default: "default", Active: "active", - Error: "error", }); /** @@ -257,7 +256,6 @@ class AboutTorConnect { elem.classList.remove(BreadcrumbStatus.Hidden); elem.classList.remove(BreadcrumbStatus.Disabled); elem.classList.remove(BreadcrumbStatus.Active); - elem.classList.remove(BreadcrumbStatus.Error); if (status !== "") { elem.classList.add(status); } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8e60c9… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8e60c9… 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 43951: Include product with the component in triage CSVs
by morgan (@morgan) 27 Nov '25

27 Nov '25
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: f93c6b8b by Morgan at 2025-11-27T18:21:37+00:00 Bug 43951: Include product with the component in triage CSVs - - - - - 2eb3fb66 by Morgan at 2025-11-27T18:21:37+00:00 Bug 41445: Tweak classification of Web Compatibility product from git logs - - - - - 1 changed file: - tools/browser/generate-bugzilla-triage-csv Changes: ===================================== tools/browser/generate-bugzilla-triage-csv ===================================== @@ -149,12 +149,16 @@ git log --format='%s' $git_begin..$git_end \ printf ",\n" >> "${git_json}" fi - component="Unknown" - if [[ "${summary}" =~ webcompat ]]; then - component="Web Compatibility" + product="Unknown" + # Bugs that include webcompat-reviewers and no other additional -reviewers + # from other teams are *likely* in the Web Compatibility component. But they + # won't show in the bugzilla query because the component doesn't tend to + # have any set milestones. + if [[ "${summary}" =~ r=.*webcompat-reviewers && ! "${summary}" =~ r=.*-reviewers.*-reviewers ]]; then + product="Web Compatibility" fi - printf " { \"component\": \"%s\", \"id\": %s, \"summary\": \"%s\" }" "${component}" ${id} "${summary}" >> "${git_json}" + printf " { \"product\": \"%s\", \"component\": \"Unknown\", \"id\": %s, \"summary\": \"%s\" }" "${product}" ${id} "${summary}" >> "${git_json}" done printf "\n]\n" >> "${git_json}" @@ -170,7 +174,7 @@ printf "\n]\n" >> "${git_json}" query_tail="&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core&f2=target_milestone&o2=substring&v2=${firefox_version}&limit=0" bugzilla_query="https://bugzilla.mozilla.org/buglist.cgi?${query_tail}" -bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,component,summary${…" +bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,product,component,s…" wget "${bugzilla_json_query}" -O ${bugzilla_json} @@ -185,10 +189,10 @@ jq -s '[ (.[0].bugs)[], (.[1])[] ] | group_by(.id) | map(.[0])' "${bugzilla_json # Generate Triage CSV # -echo "\"Review\",,\"Bugzilla Component\",\"Bugzilla Bug\"" +echo "\"Review\",,\"Product :: Component\",\"Bugzilla Bug\"" -jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${union_json} \ -| while IFS='|' read -r id component summary; do +jq '. | sort_by([.product, .component, .id])[] | "\(.id)|\(.product)|\(.component)|\(.summary)"' ${union_json} \ +| while IFS='|' read -r id product component summary; do # bugzilla info id="${id:1}" @@ -219,7 +223,7 @@ jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${uni echoerr "Skipped Bugzilla ${id}: ${summary_short}" else csv_summary=$(csv_escape "${summary}") - csv_component=$(csv_escape "${component}") + csv_product_component=$(csv_escape "${product} :: ${component}") # parent issue bugzilla_url="https://bugzilla.mozilla.org/show_bug.cgi?id=${id}" @@ -235,7 +239,7 @@ jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${uni create_issue=$(csv_escape "=HYPERLINK(\"${new_issue_url}\", \"New Issue\")") bugzilla_link=$(csv_escape "=HYPERLINK(\"${bugzilla_url}\", \"Bugzilla ${id}: ${csv_summary}\")") - echo "FALSE,\"${create_issue}\",\"${csv_component}\",\"${bugzilla_link}\"," + echo "FALSE,\"${create_issue}\",\"${csv_product_component}\",\"${bugzilla_link}\"," fi done 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] Pushed new branch tor-browser-146.0a1-16.0-1
by brizental (@brizental) 27 Nov '25

27 Nov '25
brizental pushed new branch tor-browser-146.0a1-16.0-1 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-build][main] Bug 41445: Better handle bugzilla "Web Compatibility" issues in generate-bugzilla-triage-csv
by morgan (@morgan) 27 Nov '25

27 Nov '25
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 58b81d4e by Morgan at 2025-11-27T14:41:58+00:00 Bug 41445: Better handle bugzilla "Web Compatibility" issues in generate-bugzilla-triage-csv - set component to "Web Compatibility" for git-scraped issues containing "webcompat" string in their summary - always use FIREFOX_NIGHTLY_xxx_END tags as git commits - - - - - 1 changed file: - tools/browser/generate-bugzilla-triage-csv Changes: ===================================== tools/browser/generate-bugzilla-triage-csv ===================================== @@ -4,7 +4,7 @@ browser_label="Apps::Product::TorBrowser" esr_label="esr-next" priority_label="Priority::Blocker" -impact_label="Impact::Unknown" +impact_label="Apps::Impact::Unknown" type_label="Apps::Type::Audit" # milestone for the next major Tor Browser release @@ -16,17 +16,15 @@ function echoerr() { echo "$@" 1>&2; } script_dir=$(dirname "${BASH_ARGV0:-$0}") # help dialog -if [ "$#" -ne 4 ]; then - echoerr "Usage: $0 <ff-version> <begin-commit> <end-commit> <gitlab-audit-issue>" +if [ "$#" -ne 2 ]; then + echoerr "Usage: $0 <ff-version> <gitlab-audit-issue>" echoerr echoerr "ff-version rapid-release Firefox version to audit" - echoerr "begin-commit starting firefox commit of this Firefox version" - echoerr "end-commit ending firefox commit of this Firefox version" echoerr "gitlab-audit-issue tor-browser GitLab issue number for this audit" echoerr "" echoerr "Example:" echoerr "" - echoerr "$0 129 FIREFOX_NIGHTLY_128_END FIREFOX_NIGHTLY_129_END 43303" + echoerr "$0 129 43303" exit 1 fi @@ -56,10 +54,10 @@ check_exists wget # Assign arguments to named variables firefox_version=$1 -git_begin=$2 -git_end=$3 -audit_issue=$4 -reviewers="${@:5}" +firefox_old_version=$((firefox_version - 1)) +audit_issue=$2 +git_begin="FIREFOX_NIGHTLY_${firefox_old_version}_END" +git_end="FIREFOX_NIGHTLY_${firefox_version}_END" # Check valid Firefox version if ! [[ "${firefox_version}" =~ ^[1-9][0-9]{2}$ ]]; then @@ -151,7 +149,12 @@ git log --format='%s' $git_begin..$git_end \ printf ",\n" >> "${git_json}" fi - printf " { \"component\": \"Unknown\", \"id\": %s, \"summary\": \"%s\" }" ${id} "${summary}" >> "${git_json}" + component="Unknown" + if [[ "${summary}" =~ webcompat ]]; then + component="Web Compatibility" + fi + + printf " { \"component\": \"%s\", \"id\": %s, \"summary\": \"%s\" }" "${component}" ${id} "${summary}" >> "${git_json}" done printf "\n]\n" >> "${git_json}" @@ -171,7 +174,6 @@ bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,com wget "${bugzilla_json_query}" -O ${bugzilla_json} - # # Create Union of these two sets of issues # View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-145.0a1-16.0-1] 5 commits: fixup! [android] Modify build system
by brizental (@brizental) 27 Nov '25

27 Nov '25
brizental pushed to branch tor-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: 0693577b by Beatriz Rizental at 2025-11-27T12:48:48+01:00 fixup! [android] Modify build system - - - - - fc0668a4 by Beatriz Rizental at 2025-11-27T12:48:48+01:00 fixup! TB 41878: [android] Add standalone Tor Bootstrap - - - - - 52aa72a6 by Beatriz Rizental at 2025-11-27T12:48:48+01:00 fixup! BB 43564: Modify ./mach bootstrap for Base Browser - - - - - 2bd95ead by Beatriz Rizental at 2025-11-27T12:48:48+01:00 fixup! BB 43564: Modify ./mach bootstrap for Tor Browser - - - - - 8e60c9e7 by Dan Ballard at 2025-11-27T12:48:48+01:00 fixup! [android] Modify build system add checks for empty env vars to not override mozconfig defaults in base-browser-android - - - - - 8 changed files: - browser/config/mozconfigs/base-browser-android - build/moz.configure/basebrowser-resources.configure - build/moz.configure/torbrowser-resources.configure - mobile/android/fenix/app/build.gradle - mobile/android/fenix/tools/tba-fetch-deps.sh - python/mozbuild/mozbuild/backend/base.py - python/mozbuild/mozbuild/tbbutils.py - python/mozbuild/mozbuild/test/test_tbbutils.py Changes: ===================================== browser/config/mozconfigs/base-browser-android ===================================== @@ -11,11 +11,22 @@ ac_add_options --enable-application=mobile/android CC="clang" CXX="clang++" ac_add_options --enable-linker=lld -ac_add_options --with-java-bin-path=$JAVA_HOME/bin -ac_add_options --with-android-sdk=$ANDROID_HOME -ac_add_options --with-android-ndk=$ANDROID_NDK_HOME + +if test -n "$ANDROID_HOME"; then + ac_add_options --with-android-sdk=$ANDROID_HOME +fi + +if test -n "$ANDROID_NDK_HOME"; then + ac_add_options --with-android-ndk=$ANDROID_NDK_HOME +fi + ac_add_options --with-android-min-sdk=21 -ac_add_options --with-gradle=$GRADLE_HOME/bin/gradle + +if test -n "$GRADLE_HOME"; then + ac_add_options --with-gradle=$GRADLE_HOME/bin/gradle +fi +# Otherwise (as per /mobile/android/gradle.config) a version will be downloaded by the gradle wrapper when needed +# so don't use this override, and let it do it's thing ac_add_options --enable-strip ac_add_options --enable-install-strip ===================================== build/moz.configure/basebrowser-resources.configure ===================================== @@ -55,6 +55,7 @@ option( nargs=1, default=None, help="Path to location of fonts directory.", + when=is_desktop_build, ) @@ -63,8 +64,11 @@ option( mozbuild_state_path, bootstrap_path( "fonts", - when=depends("--with-tor-browser-fonts")(lambda x: not x) & is_desktop_build, + when=depends("--with-tor-browser-fonts", when=is_desktop_build)( + lambda x: not x + ), ), + when=is_desktop_build, ) @checking("for tor-browser fonts directory") @imports(_from="pathlib", _import="Path") ===================================== build/moz.configure/torbrowser-resources.configure ===================================== @@ -4,6 +4,7 @@ option( nargs=1, default=None, help="Path to location of tor-expert-bundle directory.", + when=is_desktop_build, ) @@ -12,8 +13,11 @@ option( mozbuild_state_path, bootstrap_path( "tor-expert-bundle", - when=depends("--with-tor-expert-bundle")(lambda x: not x) & is_desktop_build, + when=depends("--with-tor-expert-bundle", when=is_desktop_build)( + lambda x: not x + ), ), + when=is_desktop_build, ) @checking("for tor-expert-bundle") @imports(_from="pathlib", _import="Path") @@ -34,4 +38,155 @@ def tor_expert_bundle(value, mozbuild_state_path, _bootstrapped): return None -set_config("TOR_EXPERT_BUNDLE", tor_expert_bundle) +set_config("TOR_EXPERT_BUNDLE", tor_expert_bundle, when=is_desktop_build) + + +# Android +# ------------------------------------------------- + + +@depends(build_project) +def is_android_build(build_project): + return build_project == "mobile/android" + + +@imports(_from="pathlib", _import="Path") +def maven_local_default(): + return str(Path.home() / ".m2/repository") + + +option( + "--with-maven-local", + nargs=1, + default=maven_local_default(), + help="Path the maven local directory. Defaults to $HOME/.m2/repository", +) + + +@depends("--with-maven-local") +def maven_local(value): + if value: + return value[0] + + +option( + "--with-tor-expert-bundle-aar", + env="TOR_EXPERT_BUNDLE_AAR", + nargs=1, + default=None, + help="Path to location of tor-expert-bundle.aar archive.", + when=is_android_build, +) + + +@depends( + "--with-tor-expert-bundle-aar", + mozbuild_state_path, + bootstrap_path( + "tor-expert-bundle-aar", + no_unpack=True, + when=depends("--with-tor-expert-bundle-aar", when=is_android_build)( + lambda x: not x + ), + ), + when=is_android_build, +) +@checking("for tor-expert-bundle.aar") +@imports(_from="pathlib", _import="Path") +def tor_expert_bundle_aar(value, mozbuild_state_path, _bootstrapped): + if value: + path = Path(value[0]) + if path.suffix.lower() == ".aar": + return value[0] + else: + die("--with-tor-expert-bundle-aar must point to a AAR archive.") + + bootstrapped_location = Path(mozbuild_state_path) / "tor-expert-bundle.aar" + if bootstrapped_location.is_file(): + return str(bootstrapped_location) + + die( + "tor-expert-bundle-aar not found. Either enable bootstrap, or provide a path with --with-tor-expert-bundle-aar." + ) + + +set_config("TOR_EXPERT_BUNDLE_AAR", tor_expert_bundle_aar) + + +option( + "--with-application-services", + env="APPLICATION_SERVICES", + nargs=1, + default=None, + help="Path to location of application-services gradle lib.", + when=is_android_build, +) + + +@depends( + maven_local, + "--with-application-services", + mozbuild_state_path, + bootstrap_path( + "application-services", + when=depends("--with-application-services", when=is_android_build)( + lambda x: not x + ), + ), + when=is_android_build, +) +@checking("for application-services") +@imports(_from="pathlib", _import="Path") +@imports("mozbuild.tbbutils") +def application_services(maven_local, value, mozbuild_state_path, _bootstrapped): + as_location = None + + if value: + path = Path(value[0]) + if path.is_dir(): + as_location = path + else: + die("--with-application-services must point to a directory.") + else: + bootstrapped_location = Path(mozbuild_state_path) / "application-services/maven" + if bootstrapped_location.is_dir(): + as_location = bootstrapped_location + + if not as_location: + # application-services is not required for building. + die( + "application-services not found. Either enable bootstrap, or provide a path with --with-application-services." + ) + + # Symlink a-s in the maven local repository. + # Note that this _overwrites_ whatever is already in there. + mozbuild.tbbutils.symlink_tree(as_location, maven_local) + return as_location + + +option( + "--with-nimbus-fml", + env="NIMBUS_FML", + nargs=1, + default=None, + help="Path to location of nimbus-fml executable.", + when=is_android_build, +) + + +@depends("--with-nimbus-fml", when=is_android_build) +@checking("for nimbus-fml") +@imports(_from="pathlib", _import="Path") +def nimbus_fml(value): + if value: + path = Path(value[0]) + if path.is_file(): + return value[0] + else: + die("--with-nimbus-fml must point to an existing file.") + + # a-s nimbus-gradle-plugin will download nimbus-fml itself if not provided. + return None + + +set_config("NIMBUS_FML", nimbus_fml) ===================================== mobile/android/fenix/app/build.gradle ===================================== @@ -327,13 +327,10 @@ android.applicationVariants.configureEach { variant -> def isDebugOrDCD = isDebug || isDataCollectionDisabled def useReleaseVersioning = variant.buildType.buildConfigFields['USE_RELEASE_VERSIONING']?.value ?: false - // env var NIMBUS_FML always overrides this in the tbb built patched application services - // https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/blob/mai… - // so safe to have always set so local builds and supply their expected location as fetched by - // fenix/tools/tba-fetch-deps.sh - // We normalize the path because it is valid to open/build from both tb and fenix roots - def normalizedTBPath = rootProject.projectDir.absolutePath.minus("mobile/android/fenix") - System.setProperty("nimbusFml", normalizedTBPath + "/mobile/android/fenix/tools/nimbus-fml") + // When this is set, a-s doesn't attempt to download NIMBUS_FML. + if (gradle.mozconfig.substs.NIMBUS_FML) { + System.setProperty("nimbusFml", gradle.mozconfig.substs.NIMBUS_FML) + } def disableTor = false if (project.hasProperty("disableTor")) { @@ -774,7 +771,7 @@ dependencies { lintChecks project(':components:tooling-lint') // Tor Expert Bundle - implementation files('tor-expert-bundle.aar') + implementation files(gradle.mozconfig.substs.TOR_EXPERT_BUNDLE_AAR) } protobuf { ===================================== mobile/android/fenix/tools/tba-fetch-deps.sh ===================================== @@ -1,124 +1,7 @@ #!/bin/bash -if [ $# -eq 0 ]; then - echo "Usage: ./tba-fetch-deps.sh --\$MODE" - echo " modes:" - echo " --nightly Downloads the needed assets from the nightlies build server. Use when local version matches nightly build server version." - echo " --tbb PATH Harvest most recently built assets from PATH assuming it points to a tor-browser-build dir. Use when local version does NOT match nightly build server version." - exit -1 -fi +echo -e "\033[1;33mThis file is deprecated.\033[0m" +echo "Run ./mach bootstrap and/or define options in your mozconfig from now on." +echo "See documentation at: https://gitlab.torproject.org/tpo/applications/wiki/-/wikis/Development-Inf…" -TBB_BUILD_06="https://tb-build-06.torproject.org/~tb-builder/tor-browser-build/out" - -if [[ $1 == "--tbb" && -z $2 ]]; then - echo "--tbb needs path to tor-browser-build dir" - exit -1 -fi -TBB_PATH=$2 - -cd "$(dirname $(realpath "$0"))/.." - -if [ -z "$TOR_BROWSER_BUILD" ]; then - TOR_BROWSER_BUILD=../../../../tor-browser-build -fi - -echo "Fetching tor-expert-bundle.aar..." - -if [[ $1 == "--tbb" ]]; then - tor_expert_bundle_aar="$(ls -1td "$TOR_BROWSER_BUILD/out/tor-expert-bundle-aar/"tor-expert-bundle-aar-* | head -1)" - cp "$tor_expert_bundle_aar"/* app/ -else - tor_expert_bundle_aar_dirname="$(curl -s $TBB_BUILD_06/tor-expert-bundle-aar/ | sed -nE 's/.*href=\"(tor-expert-bundle-aar-[0-9a-z\.\-]*).*/\1/p' | head -n 1)" - curl -o app/tor-expert-bundle.aar $TBB_BUILD_06/tor-expert-bundle-aar/$tor_expert_bundle_aar_dirname/tor-expert-bundle.aar -fi - -if [ -z app/tor_expert_bundle.aar ]; then - echo "Cannot find Tor Expert Bundle arr artifacts!" - exit 2 -fi -echo "" - -echo "Fetching noscript..." - -mkdir -p "app/src/main/assets/extensions" - -if [[ $1 == "--tbb" ]]; then - noscript="$(find "$TOR_BROWSER_BUILD/out/browser" -name 'noscript*.xpi' -print | sort | tail -1)" - cp "$noscript" "app/src/main/assets/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" -else - noscript_fname="$(curl -s $TBB_BUILD_06/browser/ | sed -nE 's/.*href=\"(noscript-[0-9a-z\.\-]*).*/\1/p')" - curl -o "app/src/main/assets/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi" $TBB_BUILD_06/browser/$noscript_fname -fi -echo "" - -if [ -z "$GRADLE_MAVEN_REPOSITORIES" ]; then - GRADLE_MAVEN_REPOSITORIES="$HOME/.m2/repository" -fi - -os="$(uname -s)" -case "${os}" in - Linux*) os=unknown-linux;; - Darwin*) os=apple-darwin;; - # This is not quite correct, however the only option for the nimbus-fml - # build are these three... so if it's not Linux or Darwin it's very likely - # we are building from Windows. I apologize in advance to all the BSD users. - *) os="pc-windows";; -esac - -arch="$(uname -m)" -case "${arch}" in - # Also no quite correct, but again these are the only options for nimbus-fml. - aarch64) arch=aarch64;; - arm64) arch=aarch64;; - *) arch="x86_64";; -esac - -if [ "$os" = "unsupported" ] || [ "$arch" = "unsupported" ]; then - echo "Android builds from $os-$arch are not supported." - exit 2 -fi - -echo "Fetching application-services..." - -if [[ $1 == "--tbb" ]]; then - app_services="$(ls -1t "$TOR_BROWSER_BUILD/out/application-services/"application-services*.tar.zst | head -1)" - tar -C /tmp -xf "$app_services" -else - app_services_fname="$(curl -s $TBB_BUILD_06/application-services/ | sed -nE 's/.*href=\"(application-services-[0-9a-z\.\-]*).*/\1/p')" - app_services=/tmp/$app_services_fname - curl -o $app_services $TBB_BUILD_06/application-services/$app_services_fname - tar -C /tmp -xf "$app_services" - rm "$app_services" -fi -mkdir -p "$GRADLE_MAVEN_REPOSITORIES/org/mozilla" -if [ -d /tmp/application-services ]; then - cp -r /tmp/application-services/maven/org/mozilla/* "$GRADLE_MAVEN_REPOSITORIES/org/mozilla" - - # Over on tor-browser-build all build tools are built for x86_64-linux. - # If we are not building from that platform, we need to fetch the correct - # nimbus-fml binary. - # - # Even though we do modify nimbus-fml in tbb, all the changes are made to - # support reproducibility and are not necessary for development builds. - if [ "$os" != "unknown-linux" ] || [ "$arch" != "x86_64" ]; then - echo "Downloading nimbus-fml binary for $arch-$os" - app_services_version=$(echo "$app_services" | grep -oE 'application-services-[0-9]+\.[0-9]+(\.[0-9]{1,2})?' | grep -oE '[0-9]+\.[0-9]+(\.[0-9]{1,2})?') - - curl -L -o /tmp/nimbus-fml.zip "https://archive.mozilla.org/pub/app-services/releases/$app_services_version…" - unzip -d /tmp/nimbus-fml /tmp/nimbus-fml.zip - nimbus_fml="$(find "/tmp/nimbus-fml/" -name 'nimbus-fml*' | grep "$arch-$os")" - echo "Using nimbus-fml binary: $nimbus_fml" - cp $nimbus_fml tools/ - - rm -rf /tmp/nimbus-fml - rm /tmp/nimbus-fml.zip - else - cp /tmp/application-services/nimbus-fml tools/ - fi - chmod +x tools/nimbus-fml - - rm -rf /tmp/application-services -else - echo "Cannot find application-services artifacts!" - exit 2 -fi +exit 1 ===================================== python/mozbuild/mozbuild/backend/base.py ===================================== @@ -258,8 +258,35 @@ class BuildBackend(LoggingMixin): os.remove(dst) os.symlink(src, dst) else: + self.log( + logging.ERROR, + "_setup_tor_browser_environment", + {}, + "Error creating symlink.", + ) return + if app == "mobile/android": + # Set up NoScript extension + # We put it in the srcdir... It will be moved to the APK in the gradle build. + if noscript_location: + noscript_target = ( + Path(config.topsrcdir) + / "mobile/android/fenix/app/src/main/assets/extensions" + / noscript_target_filename + ) + self.log( + logging.INFO, + "_setup_tor_browser_environment", + { + "noscript_location": noscript_location, + "noscript_target": str(noscript_target), + }, + "Creating symlink for NoScript from {noscript_location} to {noscript_target}", + ) + + _infallible_symlink(noscript_location, noscript_target) + if app == "browser": tbdir = Path(config.topobjdir) / "dist" / "bin" ===================================== python/mozbuild/mozbuild/tbbutils.py ===================================== @@ -1,7 +1,37 @@ +import os import re +from pathlib import Path from urllib.request import Request, urlopen +def symlink_tree(src_dir, target_dir): + """ + Recursively mirror the directory tree from `src_dir` into `target_dir` + using symbolic links. + + Equivalent to: `cp -rs src_dir/* target_dir` + + Notes: + - If a file or symlink already exists in the destination, it overwritten. + - The symlinks created here use absolute paths i.e. not relocatable. + """ + src = Path(src_dir) + target = Path(target_dir) + + target.mkdir(parents=True, exist_ok=True) + + for root, _, files in os.walk(src): + target_path = target / Path(root).relative_to(src) + target_path.mkdir(parents=True, exist_ok=True) + + for file in files: + src_file = Path(root) / file + target_file = target_path / file + if target_file.exists() or target_file.is_symlink(): + target_file.unlink() + os.symlink(src_file, target_file) + + def list_files_http(url): try: req = Request(url, method="GET") @@ -17,7 +47,9 @@ def list_files_http(url): if href == "../": continue - if "tor-expert-bundle" in href: + if "tor-expert-bundle-aar" in href: + href = f"{href.rstrip('/')}/tor-expert-bundle.aar" + elif "tor-expert-bundle" in href: href = f"{href.rstrip('/')}/tor-expert-bundle.tar.gz" links.append(href) @@ -30,6 +62,8 @@ TOR_BROWSER_BUILD_ARTIFACTS = [ "noscript", "fonts", "tor-expert-bundle", + "tor-expert-bundle-aar", + "application-services", ] # Mapping of artifacts from taskcluster to tor-browser-build. ===================================== python/mozbuild/mozbuild/test/test_tbbutils.py ===================================== @@ -1,10 +1,98 @@ +import os +import shutil +import tempfile import unittest +from pathlib import Path from types import SimpleNamespace from unittest.mock import MagicMock, patch import mozunit -from mozbuild.tbbutils import get_artifact_index, get_artifact_path, list_files_http +from mozbuild.tbbutils import ( + get_artifact_index, + get_artifact_path, + list_files_http, + symlink_tree, +) + + +class TestSymlinkTree(unittest.TestCase): + def _create_sample_tree(self, base: Path): + (base / "subdir").mkdir() + (base / "file1.txt").write_text("content1") + (base / "subdir" / "file2.txt").write_text("content2") + + def setUp(self): + self.tmpdir = tempfile.mkdtemp() + self.src = Path(self.tmpdir) / "src" + self.dst = Path(self.tmpdir) / "dst" + self.src.mkdir() + self.dst.mkdir() + + def tearDown(self): + shutil.rmtree(self.tmpdir) + + def test_symlinks_created_correctly(self): + self._create_sample_tree(self.src) + + symlink_tree(self.src, self.dst) + + self.assertTrue((self.dst / "file1.txt").is_symlink()) + self.assertTrue((self.dst / "subdir" / "file2.txt").is_symlink()) + + self.assertEqual( + os.readlink(self.dst / "file1.txt"), + str(self.src / "file1.txt"), + ) + self.assertEqual( + os.readlink(self.dst / "subdir" / "file2.txt"), + str(self.src / "subdir" / "file2.txt"), + ) + + def test_overwrites_existing_files(self): + self._create_sample_tree(self.src) + + # Create a conflicting file in destination + (self.dst / "file1.txt").write_text("old") + + symlink_tree(self.src, self.dst) + + self.assertTrue((self.dst / "file1.txt").is_symlink()) + self.assertEqual( + os.readlink(self.dst / "file1.txt"), + str(self.src / "file1.txt"), + ) + + def test_nested_directories_are_mirrored(self): + (self.src / "a" / "b" / "c").mkdir(parents=True) + (self.src / "a" / "b" / "c" / "deep.txt").write_text("deep content") + + symlink_tree(self.src, self.dst) + + deep_link = self.dst / "a" / "b" / "c" / "deep.txt" + self.assertTrue(deep_link.is_symlink()) + self.assertEqual( + os.readlink(deep_link), + str(self.src / "a" / "b" / "c" / "deep.txt"), + ) + + def test_idempotence(self): + self._create_sample_tree(self.src) + + symlink_tree(self.src, self.dst) + symlink_tree(self.src, self.dst) # Run again + + self.assertTrue((self.dst / "file1.txt").is_symlink()) + self.assertTrue((self.dst / "subdir" / "file2.txt").is_symlink()) + + def test_symlinks_use_absolute_paths(self): + (self.src / "file.txt").write_text("absolute") + + symlink_tree(self.src, self.dst) + + link_target = os.readlink(self.dst / "file.txt") + self.assertTrue(Path(link_target).is_absolute()) + self.assertEqual(Path(link_target), self.src / "file.txt") class TestGetArtifactName(unittest.TestCase): @@ -152,6 +240,7 @@ class TestListFilesHttp(unittest.TestCase): def test_tor_expert_bundle_rewrites(self, mock_urlopen): html = """ <a href="tor-expert-bundle">bundle</a> + <a href="tor-expert-bundle-aar">bundle</a> """ mock_resp = MagicMock() mock_resp.status = 200 @@ -163,6 +252,7 @@ class TestListFilesHttp(unittest.TestCase): result, [ "tor-expert-bundle/tor-expert-bundle.tar.gz", + "tor-expert-bundle-aar/tor-expert-bundle.aar", ], ) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/529b5c… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/529b5c… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-bundle-testsuite][main] Bug 40093: Remove openssl-nightly-linux-arm
by boklm (@boklm) 27 Nov '25

27 Nov '25
boklm pushed to branch main at The Tor Project / Applications / tor-browser-bundle-testsuite Commits: 7aec706a by Nicolas Vigier at 2025-11-27T10:34:36+01:00 Bug 40093: Remove openssl-nightly-linux-arm - - - - - 1 changed file: - TBBTestSuite/TestSuite/TorBrowserBuild.pm Changes: ===================================== TBBTestSuite/TestSuite/TorBrowserBuild.pm ===================================== @@ -280,18 +280,6 @@ sub set_tests { publish_dir => 'mullvadbrowser-nightly-macos', projectname => 'mullvadbrowser', }, - # openssl build for linux-arm (#40074) - { - name => 'openssl-nightly-linux-arm', - descr => 'build openssl nightly linux-arm', - type => 'rbm_build', - project => 'openssl', - targets => [ - 'nightly', - 'torbrowser-linux-arm', - ], - publish_dir => 'openssl-nightly-linux-arm', - }, ]; } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-bundle-testsuite… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-bundle-testsuite… 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 41639: Remove linux-arm target
by boklm (@boklm) 27 Nov '25

27 Nov '25
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 57d4514a by Nicolas Vigier at 2025-11-27T10:22:47+01:00 Bug 41639: Remove linux-arm target - - - - - 5 changed files: - projects/gcc-cross/config - projects/go/config - projects/openssl/config - projects/tor/config - rbm.conf Changes: ===================================== projects/gcc-cross/config ===================================== @@ -26,11 +26,6 @@ var: - gawk - rsync -targets: - linux-arm: - var: - configure_opt: '--target=[% c("var/crosstarget") %] --disable-multilib --enable-languages=c,c++ --with-glibc-version=[% c("var/glibc_version") %] --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb' - input_files: - project: container-image - project: gcc-source ===================================== projects/go/config ===================================== @@ -62,9 +62,6 @@ targets: linux-aarch64: var: GOARCH: arm64 - linux-arm: - var: - GOARCH: arm android: var: GOOS: android ===================================== projects/openssl/config ===================================== @@ -11,9 +11,6 @@ targets: linux-aarch64: var: configure_opts: -shared --cross-compile-prefix=[% c("var/crosstarget") %]- enable-ec_nistp_64_gcc_128 linux-aarch64 - linux-arm: - var: - configure_opts: -shared --cross-compile-prefix=[% c("var/crosstarget") %]- linux-armv4 windows: var: flag_mwindows: '' ===================================== projects/tor/config ===================================== @@ -29,11 +29,6 @@ targets: libdir: lib64 arch_deps: - zlib1g-dev:arm64 - linux-arm: - var: - libdir: lib - arch_deps: - - zlib1g-dev:armhf android: var: ===================================== rbm.conf ===================================== @@ -529,16 +529,6 @@ targets: - linux-aarch64 - linux - mullvadbrowser - torbrowser-linux-arm: - - linux-cross - - linux-arm - - linux - - torbrowser - basebrowser-linux-arm: - - linux-cross - - linux-arm - - linux - - basebrowser linux-x86_64: arch: x86_64 var: @@ -554,14 +544,6 @@ targets: linux-cross: 1 arch_debian: arm64 crosstarget: aarch64-linux-gnu - linux-arm: - arch: arm - var: - linux-arm: 1 - osname: linux-arm - linux-cross: 1 - arch_debian: armhf - crosstarget: arm-linux-gnueabihf linux-cross: var: linux-cross: 1 View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/5… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41601: Fix Rust aarch64 configuration.
by Pier Angelo Vendrame (@pierov) 26 Nov '25

26 Nov '25
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 9e2bd54d by Pier Angelo Vendrame at 2025-11-26T16:40:26+01:00 Bug 41601: Fix Rust aarch64 configuration. We thought we could share linux-x86_64 and linux-aarch64 Rust artifacts, but this introduces an inconvenient dependency on aarch64 GCC, so restore to the previous state. - - - - - 1 changed file: - projects/rust/config Changes: ===================================== projects/rust/config ===================================== @@ -14,7 +14,7 @@ targets: target: armv7-linux-androideabi,thumbv7neon-linux-androideabi,aarch64-linux-android,i686-linux-android,x86_64-linux-android target_flags: --set=target.armv7-linux-androideabi.cc=armv7a-linux-androideabi21-clang --set=target.armv7-linux-androideabi.ar=llvm-ar --set=target.thumbv7neon-linux-androideabi.cc=armv7a-linux-androideabi21-clang --set=target.thumbv7neon-linux-androideabi.ar=llvm-ar --set=target.aarch64-linux-android.cc=aarch64-linux-android21-clang --set=target.aarch64-linux-android.ar=llvm-ar --set=target.i686-linux-android.cc=i686-linux-android21-clang --set=target.i686-linux-android.ar=llvm-ar --set=target.x86_64-linux-android.cc=x86_64-linux-android21-clang --set=target.x86_64-linux-android.ar=llvm-ar - linux: + linux-aarch64: var: target: aarch64-unknown-linux-gnu target_flags: --set target.aarch64-unknown-linux-gnu.linker=aarch64-linux-gnu-gcc --set target.aarch64-unknown-linux-gnu.ar=llvm-ar --set target.aarch64-unknown-linux-gnu.ranlib=llvm-ranlib View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • ...
  • 1959
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.