morgan pushed to branch tor-browser-150.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: 0a786687 by Henry Wilkes at 2026-05-06T12:22:31+01:00 fixup! BB 42583: Modify moz-support-link for Base Browser. BB 44903: Use upstream's `support-page` rather than custom `tor-manual-page`. - - - - - 470aceec by Henry Wilkes at 2026-05-06T12:22:32+01:00 fixup! BB 41916: Letterboxing preferences UI BB 44903: Use upstream's `support-page` rather than custom `tor-manual-page`. - - - - - 6ebb1d50 by Henry Wilkes at 2026-05-06T12:22:33+01:00 fixup! BB 40925: Implemented the Security Level component BB 44903: Use upstream's `support-page` rather than custom `tor-manual-page`. - - - - - 386c008a by Henry Wilkes at 2026-05-06T12:25:39+01:00 fixup! TB 30237: Add v3 onion services client authentication prompt TB 44904: Use setting config for onion site settings. - - - - - d0ffd3d5 by Henry Wilkes at 2026-05-06T12:25:43+01:00 fixup! Tor Browser strings TB 44904: Merge the onion site settings strings. - - - - - 595177b2 by Henry Wilkes at 2026-05-06T12:25:43+01:00 fixup! Tor Browser localization migration scripts. TB 44904: Migrate onion sites setting strings. - - - - - 11 changed files: - − browser/components/onionservices/content/authPreferences.inc.xhtml - − browser/components/onionservices/content/authPreferences.js - browser/components/preferences/letterboxing.inc.xhtml - browser/components/preferences/main.js - browser/components/preferences/privacy.inc.xhtml - browser/components/preferences/privacy.js - browser/components/securitylevel/content/securityLevelPanel.inc.xhtml - browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml - toolkit/content/widgets/moz-support-link/moz-support-link.mjs - toolkit/locales/en-US/toolkit/global/tor-browser.ftl - + tools/torbrowser/l10n/migrations/bug-44904-onion-sites-setting-group.py Changes: ===================================== browser/components/onionservices/content/authPreferences.inc.xhtml deleted ===================================== @@ -1,34 +0,0 @@ -# Copyright (c) 2020, The Tor Project, Inc. - -<groupbox id="torOnionServiceKeys" orient="vertical" - data-category="panePrivacy" hidden="true"> - <label><html:h2 - data-l10n-id="onion-site-authentication-preferences-heading" - ></html:h2></label> - <hbox> - <description - class="description-deemphasized description-with-side-element" - flex="1" - > - <html:span - id="torOnionServiceKeys-overview" - data-l10n-id="onion-site-authentication-preferences-overview" - ></html:span> - <label - id="torOnionServiceKeys-learnMore" - class="learnMore text-link" - is="text-link" - href="about:manual#onion-services_onion-service-authentication" - useoriginprincipal="true" - data-l10n-id="onion-site-authentication-preferences-learn-more" - /> - </description> - <vbox align="end"> - <html:button - id="torOnionServiceKeys-savedKeys" - class="accessory-button" - data-l10n-id="onion-site-authentication-preferences-saved-keys-button" - ></html:button> - </vbox> - </hbox> -</groupbox> ===================================== browser/components/onionservices/content/authPreferences.js deleted ===================================== @@ -1,20 +0,0 @@ -// Copyright (c) 2020, The Tor Project, Inc. - -"use strict"; - -/* import-globals-from /browser/components/preferences/preferences.js */ - -/** - * Onion site preferences. - */ -var OnionServicesAuthPreferences = { - init() { - document - .getElementById("torOnionServiceKeys-savedKeys") - .addEventListener("click", () => { - gSubDialog.open( - "chrome://browser/content/onionservices/savedKeysDialog.xhtml" - ); - }); - }, -}; ===================================== browser/components/preferences/letterboxing.inc.xhtml ===================================== @@ -10,7 +10,7 @@ <html:span data-l10n-id="letterboxing-overview"></html:span> <html:a is="moz-support-link" - tor-manual-page="anti-fingerprinting_letterboxing" + support-page="tor-manual:anti-fingerprinting_letterboxing" data-l10n-id="letterboxing-learn-more" ></html:a> </description> ===================================== browser/components/preferences/main.js ===================================== @@ -3868,6 +3868,18 @@ SettingGroupManager.registerGroups({ }, ], }, + onionSiteAuthentication: { + l10nId: "onion-site-authentication-group", + headingLevel: 2, + supportPage: "tor-manual:onion-services_onion-service-authentication", + items: [ + { + id: "onionSiteSavedKeys", + control: "moz-box-button", + l10nId: "onion-site-authentication-saved-keys-button", + }, + ], + }, // Hide the payments and addresses settings. tor-browser#44460. // NOTE: "payments" and "addresses" are usually configured in // FormAutofillPreferences.sys.mjs. But this never runs because the "autofill" ===================================== browser/components/preferences/privacy.inc.xhtml ===================================== @@ -553,7 +553,7 @@ <html:setting-group groupid="passwords" hidden="true" data-category="panePrivacy" /> -#include ../onionservices/content/authPreferences.inc.xhtml +<html:setting-group groupid="onionSiteAuthentication" hidden="true" data-category="panePrivacy" /> <html:setting-group data-category="panePrivacy" data-subcategory="payment-methods-autofill credit-card-autofill" groupid="payments" data-group="formAutofill" hidden="true" /> <html:setting-group data-category="panePrivacy" data-subcategory="addresses-autofill address-autofill" groupid="addresses" data-group="formAutofill" hidden="true" /> ===================================== browser/components/preferences/privacy.js ===================================== @@ -64,12 +64,6 @@ ChromeUtils.defineLazyGetter(lazy, "gParentalControlsService", () => : null ); -XPCOMUtils.defineLazyScriptGetter( - this, - ["OnionServicesAuthPreferences"], - "chrome://browser/content/onionservices/authPreferences.js" -); - // TODO: module import via ChromeUtils.defineModuleGetter XPCOMUtils.defineLazyScriptGetter( this, @@ -592,6 +586,15 @@ Preferences.addSetting({ pref: "signon.management.page.breach-alerts.enabled", }); +Preferences.addSetting({ + id: "onionSiteSavedKeys", + onUserClick: () => { + gSubDialog.open( + "chrome://browser/content/onionservices/savedKeysDialog.xhtml" + ); + }, +}); + /** * This class is used to create Settings that are used to warn the user about * potential misconfigurations. It should be passed into Preferences.addSetting @@ -3577,6 +3580,7 @@ var gPrivacyPane = { initSettingGroup("browsingProtection"); initSettingGroup("cookiesAndSiteData"); initSettingGroup("cookiesAndSiteData2"); + initSettingGroup("onionSiteAuthentication"); initSettingGroup("certificates"); initSettingGroup("ipprotection"); // NOTE: "payments" and "addresses" are usually initialised by @@ -3605,7 +3609,6 @@ var gPrivacyPane = { this._initTrackingProtectionExtensionControl(); this._ensureTrackingProtectionExceptionListMigration(); this._initProfilesInfo(); - OnionServicesAuthPreferences.init(); this._initSecurityLevel(); Preferences.get("privacy.trackingprotection.enabled").on( ===================================== browser/components/securitylevel/content/securityLevelPanel.inc.xhtml ===================================== @@ -18,7 +18,7 @@ <html:a is="moz-support-link" id="securityLevel-learnMore" - tor-manual-page="security-settings" + support-page="tor-manual:security-settings" data-l10n-id="security-level-panel-learn-more-link" ></html:a> <html:img id="securityLevel-background-image" alt="" /> ===================================== browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml ===================================== @@ -13,7 +13,7 @@ ></html:span> <html:a is="moz-support-link" - tor-manual-page="security-settings" + support-page="tor-manual:security-settings" data-l10n-id="security-level-preferences-learn-more-link" ></html:a> </description> ===================================== toolkit/content/widgets/moz-support-link/moz-support-link.mjs ===================================== @@ -17,9 +17,7 @@ window.MozXULElement?.insertFTLIfNeeded("toolkit/global/mozSupportLink.ftl"); export default class MozSupportLink extends HTMLAnchorElement { static SUPPORT_URL = "https://www.mozilla.org/"; static get observedAttributes() { - // We add tor-manual-page for pages hosted at tor project. Also shared with - // base-browser/mullvad-browser. See tor-browser#42583. - return ["support-page", "utm-content", "tor-manual-page"]; + return ["support-page", "utm-content"]; } /** @@ -97,22 +95,21 @@ export default class MozSupportLink extends HTMLAnchorElement { } attributeChangedCallback(attrName) { - if ( - attrName === "support-page" || - attrName === "utm-content" || - attrName === "tor-manual-page" - ) { + if (attrName === "support-page" || attrName === "utm-content") { this.#setHref(); } } #setHref() { - let torManualPage = this.getAttribute("tor-manual-page"); - if (torManualPage) { + let supportPage = this.getAttribute("support-page") ?? ""; + // Support pages that start with "tor-manual:" are meant to point to the + // Tor Project's support pages. See tor-browser#44903. + const torManualPrefix = "tor-manual:"; + if (supportPage.startsWith(torManualPrefix)) { + const torManualPage = supportPage.substring(torManualPrefix.length); this.href = `about:manual#${torManualPage}`; return; } - let supportPage = this.getAttribute("support-page") ?? ""; // For base-browser we sometimes want to override firefox support links with // our own. // See tor-browser#40899. ===================================== toolkit/locales/en-US/toolkit/global/tor-browser.ftl ===================================== @@ -704,12 +704,15 @@ page-info-onion-site-encryption-with-bits = Connection encrypted (Onion site, { page-info-onion-site-encryption-plain = Connection encrypted (Onion site) ## Onion site authentication preferences. -## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network. -onion-site-authentication-preferences-heading = Onion site authentication -onion-site-authentication-preferences-overview = Some onion sites require that you identify yourself with a key (a kind of password) before you can access them. -onion-site-authentication-preferences-learn-more = Learn more -onion-site-authentication-preferences-saved-keys-button = Saved keys… +# "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network. +# Here "key" is a noun, and refers to a special code that gives the user access to a website. +onion-site-authentication-group = + .label = Onion site authentication + .description = Some onion sites require that you identify yourself with a key (a kind of password) before you can access them. +# Here "key" is a noun, and refers to a special code that gives the user access to a website. +onion-site-authentication-saved-keys-button = + .label = Saved keys… ## Onion site saved keys dialog. ## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network. ===================================== tools/torbrowser/l10n/migrations/bug-44904-onion-sites-setting-group.py ===================================== @@ -0,0 +1,18 @@ +from fluent.migrate.helpers import transforms_from + + +def migrate(ctx): + ctx.add_transforms( + "tor-browser.ftl", + "tor-browser.ftl", + transforms_from( + """ +onion-site-authentication-group = + .label = { COPY_PATTERN(path, "onion-site-authentication-preferences-heading") } + .description = { COPY_PATTERN(path, "onion-site-authentication-preferences-overview") } +onion-site-authentication-saved-keys-button = + .label = { COPY_PATTERN(path, "onion-site-authentication-preferences-saved-keys-button") } +""", + path="tor-browser.ftl", + ), + ) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/9c9e31b... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/9c9e31b... You're receiving this email because of your account on gitlab.torproject.org. Manage all notifications: https://gitlab.torproject.org/-/profile/notifications | Help: https://gitlab.torproject.org/help
participants (1)
-
morgan (@morgan)