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 -----
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • 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
  • 21105 discussions
[Git][tpo/applications/tor-browser] Pushed new branch tor-browser-115.31.0esr-13.5-1
by ma1 (@ma1) 01 Dec '25

01 Dec '25
ma1 pushed new branch tor-browser-115.31.0esr-13.5-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][maint-13.5] Bug 41644: Self-hosted browser extensions support in relprep.py
by ma1 (@ma1) 01 Dec '25

01 Dec '25
ma1 pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build Commits: 6b0e711f by hackademix at 2025-12-01T16:23:32+01:00 Bug 41644: Self-hosted browser extensions support in relprep.py - - - - - 1 changed file: - tools/relprep.py Changes: ===================================== tools/relprep.py ===================================== @@ -12,6 +12,7 @@ import sys import xml.etree.ElementTree as ET from git import Repo +from git.exc import GitCommandError import requests import ruamel.yaml @@ -155,8 +156,11 @@ class ReleasePreparation: break if remote is None: raise RuntimeError("Cannot find the tpo/applications remote.") - remote.fetch() - remote.fetch(tags=True) + try: + remote.fetch() + remote.fetch(tags=True) + except GitCommandError: + logger.warning(f"Cannot fetch tags from {rem.url}, skipping.") branch_name = ( "main" if self.version.is_alpha else f"maint-{self.version.major}" @@ -314,59 +318,50 @@ class ReleasePreparation: logger.info("Updating addons") config = self.load_config("browser") - logger.debug("Updating NoScript") - self.update_addon_amo( + self.update_addon_tpo( config, "noscript", "{73a6fe31-595d-460b-a920-fcc0f8843232}" ) - if self.mullvad_browser: - logger.debug("Updating uBlock Origin") - self.update_addon_amo( - config, "ublock-origin", "uBlock0(a)raymondhill.net" - ) - logger.debug("Updating the Mullvad Browser extension") - self.update_mullvad_addon(config) self.save_config("browser", config) - def update_addon_amo(self, config, name, addon_id): - r = requests.get( - f"https://services.addons.mozilla.org/api/v4/addons/addon/{addon_id}" - ) - r.raise_for_status() - amo_data = r.json() - addon = amo_data["current_version"]["files"][0] - assert addon["hash"].startswith("sha256:") - addon_input = self.find_input(config, name) - addon_input["URL"] = addon["url"] - addon_input["sha256sum"] = addon["hash"][7:] - - def update_mullvad_addon(self, config): - input_ = self.find_input(config, "mullvad-extension") - r = requests.get( - "https://cdn.mullvad.net/browser-extension/updates.json" + def update_addon_tpo(self, config, name, addon_id): + channel = "pre" if self.version.is_alpha else "stable" + self.update_addon_any( + config, + name, + addon_id, + f"https://dist.torproject.org/torbrowser/{name}/update-{channel}.json", ) - r.raise_for_status() + def update_addon_any(self, config, name, addon_id, updates_url): + logger.debug("Checking updates for addon %s", name) + r = requests.get(updates_url) + r.raise_for_status() data = r.json() - updates = data["addons"]["{d19a89b9-76c1-4a61-bcd4-49e8de916403}"][ - "updates" - ] - url = updates[-1]["update_link"] + input_ = self.find_input(config, name) + if "current_version" in data: + # AMO matadata + addon = data["current_version"]["files"][0] + assert addon["hash"].startswith("sha256:") + input_["URL"] = addon["url"] + input_["sha256sum"] = addon["hash"][7:] + return + # self-hosted standalone updates.json + url = data["addons"][addon_id]["updates"][-1]["update_link"] if input_["URL"] == url: - logger.debug("No need to update the Mullvad extension.") + logger.debug("No need to update the %s extension.", name) return input_["URL"] = url - path = self.base_path / "out/browser" / url.split("/")[-1] # The extension should be small enough to easily fit in memory :) - if not path.exists: + if not path.exists(): r = requests.get(url) r.raise_for_status() with path.open("wb") as f: - f.write(r.bytes) + f.write(r.content) with path.open("rb") as f: input_["sha256sum"] = sha256(f.read()).hexdigest() - logger.debug("Mullvad extension downloaded and updated") + logger.debug("%s extension downloaded and updated.", name) def update_tor(self): logger.info("Updating Tor") View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/6… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/6… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][maint-15.0] Bug 41644: Self-hosted browser extensions support in relprep.py
by ma1 (@ma1) 01 Dec '25

01 Dec '25
ma1 pushed to branch maint-15.0 at The Tor Project / Applications / tor-browser-build Commits: b183ef8e by hackademix at 2025-12-01T11:30:50+01:00 Bug 41644: Self-hosted browser extensions support in relprep.py - - - - - 1 changed file: - tools/relprep.py Changes: ===================================== tools/relprep.py ===================================== @@ -12,6 +12,7 @@ import sys import xml.etree.ElementTree as ET from git import Repo +from git.exc import GitCommandError import requests import ruamel.yaml @@ -154,8 +155,12 @@ class ReleasePreparation: break if remote is None: raise RuntimeError("Cannot find the tpo/applications remote.") - remote.fetch() - remote.fetch(tags=True) + + try: + remote.fetch() + remote.fetch(tags=True) + except GitCommandError: + logger.warning(f"Cannot fetch tags from {rem.url}, skipping.") branch_name = ( "main" if self.version.is_alpha else f"maint-{self.version.major}" @@ -165,7 +170,7 @@ class ReleasePreparation: if base != branch.commit: raise RuntimeError( "You are not working on a branch descending from " - f"f{branch_name}. " + f"{branch_name}. " "Please checkout the correct branch, or pull/rebase." ) logger.debug("Sanity check succeeded.") @@ -294,9 +299,7 @@ class ReleasePreparation: tag_info = None for t in tags: logger.debug("tag: %s", t.tag) - m = re.match( - rf"v{branch}-build(\d+)", t.tag - ) + m = re.match(rf"v{branch}-build(\d+)", t.tag) if m: logger.debug("Matched tag %s", t.tag) tag_info = [int(m.group(1))] @@ -336,51 +339,58 @@ class ReleasePreparation: logger.info("Updating addons") config = self.load_config("browser") - logger.debug("Updating NoScript") - self.update_addon_amo( + self.update_addon_tpo( config, "noscript", "{73a6fe31-595d-460b-a920-fcc0f8843232}" ) if self.mullvad_browser: - logger.debug("Updating uBlock Origin") self.update_addon_amo( config, "ublock-origin", "uBlock0(a)raymondhill.net" ) - logger.debug("Updating the Mullvad Browser extension") - self.update_mullvad_addon(config) + self.update_addon_any( + config, + "mullvad-extension", + "{d19a89b9-76c1-4a61-bcd4-49e8de916403}", + "https://cdn.mullvad.net/browser-extension/updates.json", + ) self.save_config("browser", config) def update_addon_amo(self, config, name, addon_id): - logger.debug("Checking updates for %s", name) - r = requests.get( - f"https://services.addons.mozilla.org/api/v4/addons/addon/{addon_id}" + self.update_addon_any( + config, + name, + addon_id, + f"https://services.addons.mozilla.org/api/v4/addons/addon/{addon_id}", ) - r.raise_for_status() - amo_data = r.json() - addon = amo_data["current_version"]["files"][0] - assert addon["hash"].startswith("sha256:") - addon_input = self.find_input(config, name) - addon_input["URL"] = addon["url"] - addon_input["sha256sum"] = addon["hash"][7:] - - def update_mullvad_addon(self, config): - logger.debug("Checking updates for the Mullvad addon") - input_ = self.find_input(config, "mullvad-extension") - r = requests.get( - "https://cdn.mullvad.net/browser-extension/updates.json" + + def update_addon_tpo(self, config, name, addon_id): + channel = "pre" if self.version.is_alpha else "stable" + self.update_addon_any( + config, + name, + addon_id, + f"https://dist.torproject.org/torbrowser/{name}/update-{channel}.json", ) - r.raise_for_status() + def update_addon_any(self, config, name, addon_id, updates_url): + logger.debug("Checking updates for addon %s", name) + r = requests.get(updates_url) + r.raise_for_status() data = r.json() - updates = data["addons"]["{d19a89b9-76c1-4a61-bcd4-49e8de916403}"][ - "updates" - ] - url = updates[-1]["update_link"] + input_ = self.find_input(config, name) + if "current_version" in data: + # AMO matadata + addon = data["current_version"]["files"][0] + assert addon["hash"].startswith("sha256:") + input_["URL"] = addon["url"] + input_["sha256sum"] = addon["hash"][7:] + return + # self-hosted standalone updates.json + url = data["addons"][addon_id]["updates"][-1]["update_link"] if input_["URL"] == url: - logger.debug("No need to update the Mullvad extension.") + logger.debug("No need to update the %s extension.", name) return input_["URL"] = url - path = self.base_path / "out/browser" / url.split("/")[-1] # The extension should be small enough to easily fit in memory :) if not path.exists(): @@ -390,7 +400,7 @@ class ReleasePreparation: f.write(r.content) with path.open("rb") as f: input_["sha256sum"] = sha256(f.read()).hexdigest() - logger.debug("Mullvad extension downloaded and updated") + logger.debug("%s extension downloaded and updated.", name) def update_tor(self): logger.info("Updating Tor") View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/b… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/b… 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 41644: Self-hosted browser extensions support in relprep.py
by ma1 (@ma1) 01 Dec '25

01 Dec '25
ma1 pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: c1ce5e0f by hackademix at 2025-12-01T10:31:13+01:00 Bug 41644: Self-hosted browser extensions support in relprep.py - - - - - 1 changed file: - tools/relprep.py Changes: ===================================== tools/relprep.py ===================================== @@ -12,6 +12,7 @@ import sys import xml.etree.ElementTree as ET from git import Repo +from git.exc import GitCommandError import requests import ruamel.yaml @@ -154,8 +155,12 @@ class ReleasePreparation: break if remote is None: raise RuntimeError("Cannot find the tpo/applications remote.") - remote.fetch() - remote.fetch(tags=True) + + try: + remote.fetch() + remote.fetch(tags=True) + except GitCommandError: + logger.warning(f"Cannot fetch tags from {rem.url}, skipping.") branch_name = ( "main" if self.version.is_alpha else f"maint-{self.version.major}" @@ -165,7 +170,7 @@ class ReleasePreparation: if base != branch.commit: raise RuntimeError( "You are not working on a branch descending from " - f"f{branch_name}. " + f"{branch_name}. " "Please checkout the correct branch, or pull/rebase." ) logger.debug("Sanity check succeeded.") @@ -294,9 +299,7 @@ class ReleasePreparation: tag_info = None for t in tags: logger.debug("tag: %s", t.tag) - m = re.match( - rf"v{branch}-build(\d+)", t.tag - ) + m = re.match(rf"v{branch}-build(\d+)", t.tag) if m: logger.debug("Matched tag %s", t.tag) tag_info = [int(m.group(1))] @@ -336,51 +339,58 @@ class ReleasePreparation: logger.info("Updating addons") config = self.load_config("browser") - logger.debug("Updating NoScript") - self.update_addon_amo( + self.update_addon_tpo( config, "noscript", "{73a6fe31-595d-460b-a920-fcc0f8843232}" ) if self.mullvad_browser: - logger.debug("Updating uBlock Origin") self.update_addon_amo( config, "ublock-origin", "uBlock0(a)raymondhill.net" ) - logger.debug("Updating the Mullvad Browser extension") - self.update_mullvad_addon(config) + self.update_addon_any( + config, + "mullvad-extension", + "{d19a89b9-76c1-4a61-bcd4-49e8de916403}", + "https://cdn.mullvad.net/browser-extension/updates.json", + ) self.save_config("browser", config) def update_addon_amo(self, config, name, addon_id): - logger.debug("Checking updates for %s", name) - r = requests.get( - f"https://services.addons.mozilla.org/api/v4/addons/addon/{addon_id}" + self.update_addon_any( + config, + name, + addon_id, + f"https://services.addons.mozilla.org/api/v4/addons/addon/{addon_id}", ) - r.raise_for_status() - amo_data = r.json() - addon = amo_data["current_version"]["files"][0] - assert addon["hash"].startswith("sha256:") - addon_input = self.find_input(config, name) - addon_input["URL"] = addon["url"] - addon_input["sha256sum"] = addon["hash"][7:] - - def update_mullvad_addon(self, config): - logger.debug("Checking updates for the Mullvad addon") - input_ = self.find_input(config, "mullvad-extension") - r = requests.get( - "https://cdn.mullvad.net/browser-extension/updates.json" + + def update_addon_tpo(self, config, name, addon_id): + channel = "pre" if self.version.is_alpha else "stable" + self.update_addon_any( + config, + name, + addon_id, + f"https://dist.torproject.org/torbrowser/{name}/update-{channel}.json", ) - r.raise_for_status() + def update_addon_any(self, config, name, addon_id, updates_url): + logger.debug("Checking updates for addon %s", name) + r = requests.get(updates_url) + r.raise_for_status() data = r.json() - updates = data["addons"]["{d19a89b9-76c1-4a61-bcd4-49e8de916403}"][ - "updates" - ] - url = updates[-1]["update_link"] + input_ = self.find_input(config, name) + if "current_version" in data: + # AMO matadata + addon = data["current_version"]["files"][0] + assert addon["hash"].startswith("sha256:") + input_["URL"] = addon["url"] + input_["sha256sum"] = addon["hash"][7:] + return + # self-hosted standalone updates.json + url = data["addons"][addon_id]["updates"][-1]["update_link"] if input_["URL"] == url: - logger.debug("No need to update the Mullvad extension.") + logger.debug("No need to update the %s extension.", name) return input_["URL"] = url - path = self.base_path / "out/browser" / url.split("/")[-1] # The extension should be small enough to easily fit in memory :) if not path.exists(): @@ -390,7 +400,7 @@ class ReleasePreparation: f.write(r.content) with path.open("rb") as f: input_["sha256sum"] = sha256(f.read()).hexdigest() - logger.debug("Mullvad extension downloaded and updated") + logger.debug("%s extension downloaded and updated.", name) def update_tor(self): logger.info("Updating Tor") View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/c… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/c… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[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
  • ← Newer
  • 1
  • ...
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • ...
  • 2111
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.