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

Keyboard Shortcuts

Thread View

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

tbb-commits

Thread Start a new thread
Download
Threads by month
  • ----- 2025 -----
  • 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

August 2024

  • 1 participants
  • 282 discussions
[Git][tpo/applications/tor-browser][tor-browser-115.14.0esr-13.5-1] fixup! Bug 42835: Create an actor to filter file data transfers
by ma1 (@ma1) 21 Aug '24

21 Aug '24
ma1 pushed to branch tor-browser-115.14.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 6f5ad1e3 by hackademix at 2024-08-22T00:37:28+02:00 fixup! Bug 42835: Create an actor to filter file data transfers Bug 43064: Make file filtering more specific - - - - - 1 changed file: - toolkit/actors/FilesFilterChild.sys.mjs Changes: ===================================== toolkit/actors/FilesFilterChild.sys.mjs ===================================== @@ -12,11 +12,14 @@ ChromeUtils.defineLazyGetter(lazy, "console", () => { export class FilesFilterChild extends JSWindowActorChild { handleEvent(event) { + if (!Services.prefs.getBoolPref("browser.filesfilter.enabled", true)) { + return; + } // drop or paste const { composedTarget } = event; const dt = event.clipboardData || event.dataTransfer; - if (dt.files.length) { + if ([...dt.files].some(f => f.mozFullPath)) { if ( ["HTMLInputElement", "HTMLTextAreaElement"].includes( ChromeUtils.getClassName(composedTarget) @@ -25,7 +28,7 @@ export class FilesFilterChild extends JSWindowActorChild { event.preventDefault(); lazy.console.log( `Preventing path leak on ${event.type} for ${[...dt.files] - .map(f => f.name) + .map(f => `${f.name} (${f.mozFullPath})`) .join(", ")}.` ); } @@ -33,7 +36,7 @@ export class FilesFilterChild extends JSWindowActorChild { } // "Paste Without Formatting" (ctrl+shift+V) in HTML editors coerces files into paths - if (!(event.clipboardData && dt.getData("text"))) { + if (!(event.clipboardData && /[\/\\]/.test(dt.getData("text")))) { return; } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/6f5ad1e… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/6f5ad1e… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.1.0esr-14.0-1] fixup! Bug 42835: Create an actor to filter file data transfers
by ma1 (@ma1) 21 Aug '24

21 Aug '24
ma1 pushed to branch mullvad-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Mullvad Browser Commits: 2e3f9dd6 by hackademix at 2024-08-22T00:37:08+02:00 fixup! Bug 42835: Create an actor to filter file data transfers Bug 43064: Make file filtering more specific - - - - - 1 changed file: - toolkit/actors/FilesFilterChild.sys.mjs Changes: ===================================== toolkit/actors/FilesFilterChild.sys.mjs ===================================== @@ -12,11 +12,14 @@ ChromeUtils.defineLazyGetter(lazy, "console", () => { export class FilesFilterChild extends JSWindowActorChild { handleEvent(event) { + if (!Services.prefs.getBoolPref("browser.filesfilter.enabled", true)) { + return; + } // drop or paste const { composedTarget } = event; const dt = event.clipboardData || event.dataTransfer; - if (dt.files.length) { + if ([...dt.files].some(f => f.mozFullPath)) { if ( ["HTMLInputElement", "HTMLTextAreaElement"].includes( ChromeUtils.getClassName(composedTarget) @@ -25,7 +28,7 @@ export class FilesFilterChild extends JSWindowActorChild { event.preventDefault(); lazy.console.log( `Preventing path leak on ${event.type} for ${[...dt.files] - .map(f => f.name) + .map(f => `${f.name} (${f.mozFullPath})`) .join(", ")}.` ); } @@ -33,7 +36,7 @@ export class FilesFilterChild extends JSWindowActorChild { } // "Paste Without Formatting" (ctrl+shift+V) in HTML editors coerces files into paths - if (!(event.clipboardData && dt.getData("text"))) { + if (!(event.clipboardData && /[\/\\]/.test(dt.getData("text")))) { return; } View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/2e3… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/2e3… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-128.1.0esr-14.0-1] fixup! Bug 42835: Create an actor to filter file data transfers
by ma1 (@ma1) 21 Aug '24

21 Aug '24
ma1 pushed to branch base-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser Commits: 6abbbf97 by hackademix at 2024-08-22T00:37:03+02:00 fixup! Bug 42835: Create an actor to filter file data transfers Bug 43064: Make file filtering more specific - - - - - 1 changed file: - toolkit/actors/FilesFilterChild.sys.mjs Changes: ===================================== toolkit/actors/FilesFilterChild.sys.mjs ===================================== @@ -12,11 +12,14 @@ ChromeUtils.defineLazyGetter(lazy, "console", () => { export class FilesFilterChild extends JSWindowActorChild { handleEvent(event) { + if (!Services.prefs.getBoolPref("browser.filesfilter.enabled", true)) { + return; + } // drop or paste const { composedTarget } = event; const dt = event.clipboardData || event.dataTransfer; - if (dt.files.length) { + if ([...dt.files].some(f => f.mozFullPath)) { if ( ["HTMLInputElement", "HTMLTextAreaElement"].includes( ChromeUtils.getClassName(composedTarget) @@ -25,7 +28,7 @@ export class FilesFilterChild extends JSWindowActorChild { event.preventDefault(); lazy.console.log( `Preventing path leak on ${event.type} for ${[...dt.files] - .map(f => f.name) + .map(f => `${f.name} (${f.mozFullPath})`) .join(", ")}.` ); } @@ -33,7 +36,7 @@ export class FilesFilterChild extends JSWindowActorChild { } // "Paste Without Formatting" (ctrl+shift+V) in HTML editors coerces files into paths - if (!(event.clipboardData && dt.getData("text"))) { + if (!(event.clipboardData && /[\/\\]/.test(dt.getData("text")))) { return; } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/6abbbf9… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/6abbbf9… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] 3 commits: fixup! Bug 40701: Add security warning when downloading a file
by morgan (@morgan) 21 Aug '24

21 Aug '24
morgan pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser Commits: 8a68fba1 by Henry Wilkes at 2024-08-21T19:22:49+00:00 fixup! Bug 40701: Add security warning when downloading a file Bug 41820: Convert downloads warning to moz-message-bar. Move the logic to DownloadsTorWarning.sys.mjs so it remains in one place. - - - - - 49c2f08e by Henry Wilkes at 2024-08-21T19:22:49+00:00 fixup! Tor Browser strings Bug 41820: Use moz-message-bar for the downloads warning. - - - - - 04d6d341 by Henry Wilkes at 2024-08-21T19:22:49+00:00 fixup! Tor Browser localization migration scripts. Bug 41820: Use moz-message-bar for the downloads warning. We add a migration to convert the old string values into the new value. - - - - - 13 changed files: - + browser/components/downloads/DownloadsTorWarning.sys.mjs - browser/components/downloads/content/allDownloadsView.js - browser/components/downloads/content/contentAreaDownloadsView.js - browser/components/downloads/content/contentAreaDownloadsView.xhtml - browser/components/downloads/content/downloads.css - browser/components/downloads/content/downloads.js - browser/components/downloads/content/downloadsPanel.inc.xhtml - browser/components/downloads/moz.build - browser/components/places/content/places.js - browser/components/places/content/places.xhtml - browser/themes/shared/downloads/downloads.inc.css - toolkit/locales/en-US/toolkit/global/tor-browser.ftl - + tools/torbrowser/l10n/migrations/bug-41820-moz-message-bar-download-warning.py Changes: ===================================== browser/components/downloads/DownloadsTorWarning.sys.mjs ===================================== @@ -0,0 +1,152 @@ +/* import-globals-from /browser/base/content/utilityOverlay.js */ + +const PREF_SHOW_DOWNLOAD_WARNING = "browser.download.showTorWarning"; + +/** + * Manages an instance of a tor warning. + */ +export class DownloadsTorWarning { + /** + * Observer for showing or hiding the warning. + * + * @type {function} + */ + #torWarningPrefObserver; + + /** + * Whether the warning is active. + * + * @type {boolean} + */ + #active = false; + + /** + * The moz-message-bar element that should show the warning. + * + * @type {MozMessageBar} + */ + #warningElement; + + /** + * The dismiss button for the warning. + * + * @type {HTMLButton} + */ + #dismissButton; + + /** + * Attach to an instance of the tor warning. + * + * @param {MozMessageBar} warningElement - The warning element to initialize + * and attach to. + * @param {boolean} isChrome - Whether the element belongs to the chrome. + * Otherwise it belongs to content. + * @param {function} moveFocus - Callback to move the focus out of the warning + * when it is hidden. + * @param {function} [onLinkClick] - Callback that is called when a link is + * about to open. + */ + constructor(warningElement, isChrome, moveFocus, onLinkClick) { + const doc = warningElement.ownerDocument; + this.#warningElement = warningElement; + warningElement.setAttribute( + "data-l10n-id", + "downloads-tor-warning-message-bar" + ); + warningElement.setAttribute("data-l10n-attrs", "heading, message"); + + // Observe changes to the tor warning pref. + this.#torWarningPrefObserver = () => { + if (Services.prefs.getBoolPref(PREF_SHOW_DOWNLOAD_WARNING)) { + warningElement.hidden = false; + } else { + const hadFocus = warningElement.contains(doc.activeElement); + warningElement.hidden = true; + if (hadFocus) { + moveFocus(); + } + } + }; + + const tailsLink = doc.createElement("a"); + tailsLink.setAttribute("slot", "support-link"); + tailsLink.href = "https://tails.net/"; + tailsLink.target = "_blank"; + tailsLink.setAttribute("data-l10n-id", "downloads-tor-warning-tails-link"); + if (isChrome) { + // Intercept clicks on the tails link. + tailsLink.addEventListener("click", event => { + event.preventDefault(); + onLinkClick?.(); + doc.defaultView.openWebLinkIn(tailsLink.href, "tab"); + }); + } + + const dismissButton = doc.createElement("button"); + dismissButton.setAttribute("slot", "actions"); + dismissButton.setAttribute( + "data-l10n-id", + "downloads-tor-warning-dismiss-button" + ); + if (isChrome) { + dismissButton.classList.add("footer-button"); + } + + dismissButton.addEventListener("click", () => { + Services.prefs.setBoolPref(PREF_SHOW_DOWNLOAD_WARNING, false); + }); + + warningElement.append(tailsLink); + warningElement.append(dismissButton); + + this.#dismissButton = dismissButton; + } + + /** + * Whether the warning is hidden by the preference. + * + * @type {boolean} + */ + get hidden() { + return this.#warningElement.hidden; + } + + /** + * The dismiss button for the warning. + * + * @type {HTMLButton} + */ + get dismissButton() { + return this.#dismissButton; + } + + /** + * Activate the instance. + */ + activate() { + if (this.#active) { + return; + } + this.#active = true; + Services.prefs.addObserver( + PREF_SHOW_DOWNLOAD_WARNING, + this.#torWarningPrefObserver + ); + // Initialize. + this.#torWarningPrefObserver(); + } + + /** + * Deactivate the instance. + */ + deactivate() { + if (!this.#active) { + return; + } + this.#active = false; + Services.prefs.removeObserver( + PREF_SHOW_DOWNLOAD_WARNING, + this.#torWarningPrefObserver + ); + } +} ===================================== browser/components/downloads/content/allDownloadsView.js ===================================== @@ -213,7 +213,6 @@ var DownloadsView = { */ function DownloadsPlacesView( aRichListBox, - torWarningMessageBar, aActive = true, aSuppressionFlag = DownloadsCommon.SUPPRESS_ALL_DOWNLOADS_OPEN ) { @@ -242,46 +241,6 @@ function DownloadsPlacesView( aSuppressionFlag; } - // Tor browser warning message/alert shown above the list. - - const PREF_SHOW_DOWNLOAD_WARNING = "browser.download.showTorWarning"; - // Observe changes to the tor warning pref. - const torWarningPrefObserver = () => { - if (Services.prefs.getBoolPref(PREF_SHOW_DOWNLOAD_WARNING)) { - torWarningMessageBar.hidden = false; - } else { - // Re-assign focus if it is about to be lost. - if (torWarningMessageBar.contains(document.activeElement)) { - // Try and focus the downloads list. - // NOTE: If #downloadsListBox is still hidden, this will do nothing. - // But in this case there are no other focusable targets within the - // view, so we just leave it up to the focus handler. - this._richlistbox.focus({ preventFocusRing: true }); - } - torWarningMessageBar.hidden = true; - } - }; - - Services.prefs.addObserver( - PREF_SHOW_DOWNLOAD_WARNING, - torWarningPrefObserver - ); - // Initialize. - torWarningPrefObserver(); - - window.addEventListener("unload", () => { - Services.prefs.removeObserver( - PREF_SHOW_DOWNLOAD_WARNING, - torWarningPrefObserver - ); - }); - - torWarningMessageBar - .querySelector(".downloads-tor-warning-dismiss-button") - .addEventListener("click", () => { - Services.prefs.setBoolPref(PREF_SHOW_DOWNLOAD_WARNING, false); - }); - // Make sure to unregister the view if the window is closed. window.addEventListener( "unload", ===================================== browser/components/downloads/content/contentAreaDownloadsView.js ===================================== @@ -8,12 +8,30 @@ const { PrivateBrowsingUtils } = ChromeUtils.importESModule( "resource://gre/modules/PrivateBrowsingUtils.sys.mjs" ); +const { DownloadsTorWarning } = ChromeUtils.importESModule( + "resource:///modules/DownloadsTorWarning.sys.mjs" +); + var ContentAreaDownloadsView = { init() { - const torWarningMessage = document.getElementById( - "aboutDownloadsTorWarning" - ); let box = document.getElementById("downloadsListBox"); + + const torWarning = new DownloadsTorWarning( + document.getElementById("aboutDownloadsTorWarning"), + false, + () => { + // Try and focus the downloads list. + // NOTE: If #downloadsListBox is still hidden, this will do nothing. + // But in this case there are no other focusable targets within the + // view, so we just leave it up to the focus handler. + box.focus({ preventFocusRing: true }); + } + ); + torWarning.activate(); + window.addEventListener("unload", () => { + torWarning.deactivate(); + }); + let suppressionFlag = DownloadsCommon.SUPPRESS_CONTENT_AREA_DOWNLOADS_OPEN; box.addEventListener( "InitialDownloadsLoaded", @@ -30,7 +48,7 @@ var ContentAreaDownloadsView = { // experience was bad. // Without auto-focusing the downloads list, a screen reader should not // skip beyond the alert's content. - if (torWarningMessage.hidden) { + if (torWarning.hidden) { document .getElementById("downloadsListBox") .focus({ focusVisible: false }); @@ -44,12 +62,7 @@ var ContentAreaDownloadsView = { }, { once: true } ); - let view = new DownloadsPlacesView( - box, - torWarningMessage, - true, - suppressionFlag - ); + let view = new DownloadsPlacesView(box, true, suppressionFlag); document.addEventListener("visibilitychange", () => { let indicator = DownloadsCommon.getIndicatorData(window); if (document.visibilityState === "visible") { ===================================== browser/components/downloads/content/contentAreaDownloadsView.xhtml ===================================== @@ -49,36 +49,7 @@ </keyset> #endif - <html:message-bar - id="aboutDownloadsTorWarning" - class="downloads-tor-warning-message-bar" - role="alert" - aria-labelledby="aboutDownloadsTorWarningTitle" - aria-describedby="aboutDownloadsTorWarningDescription" - > - <html:div class="downloads-tor-warning-grid"> - <html:p - id="aboutDownloadsTorWarningTitle" - class="downloads-tor-warning-title" - data-l10n-id="downloads-tor-warning-title" - ></html:p> - <html:p - id="aboutDownloadsTorWarningDescription" - class="downloads-tor-warning-description" - data-l10n-id="downloads-tor-warning-description" - > - <html:a - href="https://tails.net/" - target="_blank" - data-l10n-name="tails-link" - ></html:a> - </html:p> - <html:button - class="downloads-tor-warning-dismiss-button" - data-l10n-id="downloads-tor-warning-dismiss-button" - ></html:button> - </html:div> - </html:message-bar> + <html:moz-message-bar id="aboutDownloadsTorWarning"></html:moz-message-bar> <richlistbox flex="1" seltype="multiple" ===================================== browser/components/downloads/content/downloads.css ===================================== @@ -92,63 +92,13 @@ #downloadsPanel-mainView { min-width: 37em; padding: 0.62em; - /* If we don't set a width, #downloadsPanelTorWarningDescription will request + /* If we don't set a width, #downloadsPanelTorWarning will request * its max-content width. */ width: 37em; } -#downloadsPanel-mainView { - /* Fix the layout to ensure the #downloadsWarningDescription is given enough - * vertical space. For tor-browser#40701. - * TODO: May no longer be necessary after esr 115 due to bugzilla bug 1816455. - */ - display: flex; - flex-direction: column; -} - -.downloads-tor-warning-grid { - display: grid; - grid-template: - "title button" min-content - "description button" auto - / 1fr max-content; - gap: 8px; - margin-block: 8px; - /* Some extra space between the text and the icon. */ - margin-inline-start: 8px; -} - -.downloads-tor-warning-grid .downloads-tor-warning-title { - grid-area: title; - margin: 0; -} - -.downloads-tor-warning-grid .downloads-tor-warning-description { - grid-area: description; - margin: 0; -} - -.downloads-tor-warning-grid .downloads-tor-warning-dismiss-button { - grid-area: button; - align-self: center; -} - -.downloads-tor-warning-description, -.downloads-tor-warning-title { - line-height: 1.4; -} - -.downloads-tor-warning-title { - font-weight: bold; -} - -#downloadsPanelTorWarning :is( - .downloads-tor-warning-description, - .downloads-tor-warning-title -) { - padding-inline: 8px; - margin-block-start: 8px; - margin-block-end: 0; +#downloadsPanelTorWarning { + margin-block-end: var(--arrowpanel-menuitem-padding-block); } #downloadsHistory, ===================================== browser/components/downloads/content/downloads.js ===================================== @@ -31,8 +31,6 @@ "use strict"; -const PREF_SHOW_DOWNLOAD_WARNING = "browser.download.showTorWarning"; - var { XPCOMUtils } = ChromeUtils.importESModule( "resource://gre/modules/XPCOMUtils.sys.mjs" ); @@ -42,6 +40,7 @@ ChromeUtils.defineESModuleGetters(this, { FileUtils: "resource://gre/modules/FileUtils.sys.mjs", NetUtil: "resource://gre/modules/NetUtil.sys.mjs", PlacesUtils: "resource://gre/modules/PlacesUtils.sys.mjs", + DownloadsTorWarning: "resource:///modules/DownloadsTorWarning.sys.mjs", }); const { Integration } = ChromeUtils.importESModule( @@ -76,11 +75,11 @@ var DownloadsPanel = { _waitingDataForOpen: false, /** - * State of tor's download warning. It should only be initialized once (text assigned, - * button commands assigned). This tracks if that has been performed and prevents - * repeats. + * Tracks whether to show the tor warning or not. + * + * @type {?DownloadsTorWarning} */ - _torWarningInitialized: false, + _torWarning: null, /** * Starts loading the download data in background, without opening the panel. @@ -98,30 +97,20 @@ var DownloadsPanel = { ); } - const torWarningMessage = document.getElementById( - "downloadsPanelTorWarning" - ); - if (!this._torWarningPrefObserver) { - // Observe changes to the tor warning pref. - this._torWarningPrefObserver = () => { - if (Services.prefs.getBoolPref(PREF_SHOW_DOWNLOAD_WARNING)) { - torWarningMessage.hidden = false; - } else { - const hadFocus = torWarningMessage.contains(document.activeElement); - torWarningMessage.hidden = true; + if (!this._torWarning) { + this._torWarning = new DownloadsTorWarning( + document.getElementById("downloadsPanelTorWarning"), + true, + () => { // Re-assign focus that was lost. - if (hadFocus) { - this._focusPanel(true); - } + this._focusPanel(true); + }, + () => { + this.hidePanel(); } - }; - Services.prefs.addObserver( - PREF_SHOW_DOWNLOAD_WARNING, - this._torWarningPrefObserver ); - // Initialize - this._torWarningPrefObserver(); } + this._torWarning.activate(); if (this._initialized) { DownloadsCommon.log("DownloadsPanel is already initialized."); @@ -149,33 +138,6 @@ var DownloadsPanel = { DownloadsSummary ); - if (!this._torWarningInitialized) { - // Intercept clicks on the tails link. - // NOTE: We listen for clicks on the parent instead of the - // <a data-l10n-name="tails-link"> element because the latter may be - // swapped for a new instance by Fluent when refreshing the parent. - torWarningMessage - .querySelector(".downloads-tor-warning-description") - .addEventListener("click", event => { - const tailsLink = event.target.closest( - ".downloads-tor-warning-tails-link" - ); - if (!tailsLink) { - return; - } - event.preventDefault(); - this.hidePanel(); - openWebLinkIn(tailsLink.href, "tab"); - }); - - torWarningMessage - .querySelector(".downloads-tor-warning-dismiss-button") - .addEventListener("click", () => { - Services.prefs.setBoolPref(PREF_SHOW_DOWNLOAD_WARNING, false); - }); - this._torWarningInitialized = true; - } - DownloadsCommon.log( "DownloadsView attached - the panel for this window", "should now see download items come in." @@ -218,13 +180,7 @@ var DownloadsPanel = { DownloadIntegration.downloadSpamProtection.unregister(window); } - if (this._torWarningPrefObserver) { - Services.prefs.removeObserver( - PREF_SHOW_DOWNLOAD_WARNING, - this._torWarningPrefObserver - ); - delete this._torWarningPrefObserver; - } + this._torWarning?.deactivate(); this._initialized = false; @@ -582,13 +538,8 @@ var DownloadsPanel = { // Focus the "Got it" button if it is visible. // This should ensure that the alert is read aloud by Orca when the // downloads panel is opened. See tor-browser#42642. - const torWarningMessage = document.getElementById( - "downloadsPanelTorWarning" - ); - if (!torWarningMessage.hidden) { - torWarningMessage - .querySelector(".downloads-tor-warning-dismiss-button") - .focus(focusOptions); + if (!this._torWarning?.hidden) { + this._torWarning.dismissButton.focus(focusOptions); return; } ===================================== browser/components/downloads/content/downloadsPanel.inc.xhtml ===================================== @@ -104,37 +104,8 @@ disablekeynav="true"> <panelview id="downloadsPanel-mainView"> - <vbox id="downloadsPanelTorWarning"> - <vbox - role="alert" - aria-labelledby="downloadsPanelTorWarningTitle" - aria-describedby="downloadsPanelTorWarningDescription" - > - <html:p - id="downloadsPanelTorWarningTitle" - class="downloads-tor-warning-title" - data-l10n-id="downloads-tor-warning-title" - ></html:p> - <html:p - id="downloadsPanelTorWarningDescription" - class="downloads-tor-warning-description" - data-l10n-id="downloads-tor-warning-description" - > - <html:a - href="https://tails.net/" - data-l10n-name="tails-link" - class="downloads-tor-warning-tails-link" - ></html:a> - </html:p> - <html:moz-button-group class="panel-footer"> - <html:button - class="footer-button downloads-tor-warning-dismiss-button" - data-l10n-id="downloads-tor-warning-dismiss-button" - ></html:button> - </html:moz-button-group> - </vbox> - <toolbarseparator /> - </vbox> + <html:moz-message-bar id="downloadsPanelTorWarning"> + </html:moz-message-bar> <vbox class="panel-view-body-unscrollable"> <richlistbox id="downloadsListBox" data-l10n-id="downloads-panel-items" ===================================== browser/components/downloads/moz.build ===================================== @@ -15,6 +15,7 @@ EXTRA_JS_MODULES += [ "DownloadsCommon.sys.mjs", "DownloadSpamProtection.sys.mjs", "DownloadsTaskbar.sys.mjs", + "DownloadsTorWarning.sys.mjs", "DownloadsViewableInternally.sys.mjs", "DownloadsViewUI.sys.mjs", ] ===================================== browser/components/places/content/places.js ===================================== @@ -6,7 +6,6 @@ /* import-globals-from editBookmark.js */ /* import-globals-from /toolkit/content/contentAreaUtils.js */ /* import-globals-from /browser/components/downloads/content/allDownloadsView.js */ -/* import-globals-from /browser/base/content/utilityOverlay.js */ /* Shared Places Import - change other consumers if you change this: */ var { XPCOMUtils } = ChromeUtils.importESModule( @@ -18,6 +17,7 @@ ChromeUtils.defineESModuleGetters(this, { PlacesBackups: "resource://gre/modules/PlacesBackups.sys.mjs", PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs", DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs", + DownloadsTorWarning: "resource:///modules/DownloadsTorWarning.sys.mjs", }); XPCOMUtils.defineLazyScriptGetter( this, @@ -158,15 +158,25 @@ var PlacesOrganizer = { "&sort=" + Ci.nsINavHistoryQueryOptions.SORT_BY_DATE_DESCENDING; - const torWarningMessage = document.getElementById( - "placesDownloadsTorWarning" + const torWarning = new DownloadsTorWarning( + document.getElementById("placesDownloadsTorWarning"), + true, + () => { + document + .getElementById("downloadsListBox") + .focus({ preventFocusRing: true }); + } ); + torWarning.activate(); + window.addEventListener("unload", () => { + torWarning.deactivate(); + }); + ContentArea.setContentViewForQueryString( DOWNLOADS_QUERY, () => new DownloadsPlacesView( document.getElementById("downloadsListBox"), - torWarningMessage, false ), { @@ -176,23 +186,6 @@ var PlacesOrganizer = { } ); - // Intercept clicks on the tor warning tails link. - // NOTE: We listen for clicks on the parent instead of the - // <a data-l10n-name="tails-link"> element because the latter may be - // swapped for a new instance by Fluent when refreshing the parent. - document - .querySelector(".downloads-tor-warning-description") - .addEventListener("click", event => { - const tailsLink = event.target.closest( - ".downloads-tor-warning-tails-link" - ); - if (!tailsLink) { - return; - } - event.preventDefault(); - openWebLinkIn(tailsLink.href, "tab"); - }); - ContentArea.init(); this._places = document.getElementById("placesList"); @@ -1432,6 +1425,7 @@ var ContentArea = { oldView.associatedElement.hidden = true; aNewView.associatedElement.hidden = false; + // Hide the Tor warning when not in the downloads view. const isDownloads = aNewView.associatedElement.id === "downloadsListBox"; const torWarningMessage = document.getElementById( "placesDownloadsTorWarning" ===================================== browser/components/places/content/places.xhtml ===================================== @@ -363,35 +363,8 @@ </tree> <splitter collapse="none" persist="state"></splitter> <vbox id="contentView"> - <html:message-bar - id="placesDownloadsTorWarning" - role="alert" - aria-labelledby="placesDownloadsTorWarningTitle" - aria-describedby="placesDownloadsTorWarningDescription" - > - <html:div class="downloads-tor-warning-grid"> - <html:p - id="placesDownloadsTorWarningTitle" - class="downloads-tor-warning-title" - data-l10n-id="downloads-tor-warning-title" - ></html:p> - <html:p - id="placesDownloadsTorWarningDescription" - class="downloads-tor-warning-description" - data-l10n-id="downloads-tor-warning-description" - > - <html:a - href="https://tails.net/" - class="downloads-tor-warning-tails-link" - data-l10n-name="tails-link" - ></html:a> - </html:p> - <html:button - class="downloads-tor-warning-dismiss-button" - data-l10n-id="downloads-tor-warning-dismiss-button" - ></html:button> - </html:div> - </html:message-bar> + <html:moz-message-bar id="placesDownloadsTorWarning"> + </html:moz-message-bar> <vbox id="placesViewsBox" flex="1"> <tree id="placeContent" class="placesTree" ===================================== browser/themes/shared/downloads/downloads.inc.css ===================================== @@ -252,7 +252,6 @@ } /*** Toolbarseparator ***/ -#downloadsPanelTorWarning toolbarseparator, #downloadsFooterButtons > toolbarseparator { margin-inline: 0; } ===================================== toolkit/locales/en-US/toolkit/global/tor-browser.ftl ===================================== @@ -559,9 +559,13 @@ crypto-safety-prompt-dismiss-button = Dismiss Warning ## Downloads warning. ## Shown in downloads panel, about:downloads and Library window. -downloads-tor-warning-title = Be careful opening downloads -# "Tails" is the brand name for the Tails operating system and should be localized appropriately, and will be a link to its website. The name should be wrapped in '<a data-l10n-name="tails-link">' and '</a>'. -downloads-tor-warning-description = Some files may connect to the internet when opened without using Tor. To be safe, open the files while offline or use a portable operating system like <a data-l10n-name="tails-link">Tails</a>. +# "Tails" is the brand name for the Tails operating system and should be localized appropriately. +downloads-tor-warning-message-bar = + .heading = Be careful opening downloads + .message = Some files may connect to the internet when opened without using Tor. To be safe, open the files while offline or use a portable operating system like Tails. +# This will be a link to the Tails operating system website. +# "Tails" is the brand name for the Tails operating system and should be localized appropriately. +downloads-tor-warning-tails-link= Learn more about Tails # Button to dismiss the warning forever. downloads-tor-warning-dismiss-button = Got it ===================================== tools/torbrowser/l10n/migrations/bug-41820-moz-message-bar-download-warning.py ===================================== @@ -0,0 +1,67 @@ +import re + +import fluent.syntax.ast as FTL +from fluent.migrate.transforms import COPY_PATTERN, FluentSource +from fluent.syntax.visitor import Visitor + + +class RemoveAnchorVisitor(Visitor): + """Class to remove <a> and </a> wrappers from a Fluent TextElement.""" + + def __init__(self): + # Good enough regex for our needs that will match starting and ending + # tags. + self._anchor_regex = re.compile(r"<\/?[aA](| [^>]*)>") + super().__init__() + + def visit_TextElement(self, node): + node.value = self._anchor_regex.sub("", node.value) + + +class RemoveAnchorTransform(FluentSource): + """Class to remove <a> and </a> wrappers from a Fluent source.""" + + def __call__(self, ctx): + pattern = ctx.get_fluent_source_pattern(self.path, self.key).clone() + # Visit every node in the pattern, replacing each TextElement's content. + RemoveAnchorVisitor().visit(pattern) + return pattern + + +def migrate(ctx): + # Convert + # + # downloads-tor-warning-title = A + # downloads-tor-warning-description = B<a data-l10n-name="tails-link">C</a>D + # + # to + # + # downloads-tor-warning-message-bar = + # .heading = A + # .message = BCD + ctx.add_transforms( + "tor-browser.ftl", + "tor-browser.ftl", + [ + FTL.Message( + id=FTL.Identifier("downloads-tor-warning-message-bar"), + value=None, + attributes=[ + FTL.Attribute( + id=FTL.Identifier("heading"), + value=COPY_PATTERN( + "tor-browser.ftl", + "downloads-tor-warning-title", + ), + ), + FTL.Attribute( + id=FTL.Identifier("message"), + value=RemoveAnchorTransform( + "tor-browser.ftl", + "downloads-tor-warning-description", + ), + ), + ], + ), + ], + ) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/f650da… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/f650da… 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 41221: Use Go build tags to reduce PT binary sizes
by morgan (@morgan) 21 Aug '24

21 Aug '24
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 9f4afa27 by Cecylia Bocovich at 2024-08-21T12:04:24-04:00 Bug 41221: Use Go build tags to reduce PT binary sizes - - - - - 2 changed files: - projects/conjure/build - projects/snowflake/build Changes: ===================================== projects/conjure/build ===================================== @@ -18,7 +18,7 @@ cd /var/tmp/build/[% project %]-[% c('version') %] tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %] cd client -go build -ldflags '-s' +go build -ldflags '-s' -tags 'protoreflect,nacl' cp -a client[% IF c("var/windows") %].exe[% END %] $distdir/conjure-client[% IF c("var/windows") %].exe[% END %] cd .. ===================================== projects/snowflake/build ===================================== @@ -18,7 +18,7 @@ cd /var/tmp/build/[% project %]-[% c('version') %] tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %] cd client -go build -ldflags '-s' +go build -ldflags '-s' -tags 'nopshufb,noasm,packetioSizeHardlimit,purego,safe,appengine,disableunsafe' cp -a client[% IF c("var/windows") %].exe[% END %] $distdir/snowflake-client[% IF c("var/windows") %].exe[% END %] cd .. 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
[Git][tpo/applications/tor-browser][tor-browser-115.14.0esr-13.5-1] fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in...
by morgan (@morgan) 21 Aug '24

21 Aug '24
morgan pushed to branch tor-browser-115.14.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 4c12da1a by Henry Wilkes at 2024-08-21T18:23:59+00:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 42691: Allow users to copy built-in addresses. - - - - - 1 changed file: - browser/components/torpreferences/content/connectionPane.js Changes: ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -2121,12 +2121,10 @@ const gBridgeSettings = { }); this._bridgesMenu.addEventListener("showing", () => { - const canCopy = this._bridgeSource !== TorBridgeSource.BuiltIn; const canShare = this._bridgeSource === TorBridgeSource.UserProvided || this._bridgeSource === TorBridgeSource.BridgeDB; qrItem.hidden = !canShare || !this._canQRBridges; - copyItem.hidden = !canCopy; editItem.hidden = this._bridgeSource !== TorBridgeSource.UserProvided; }); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4c12da1… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4c12da1… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.14.0esr-13.5-1] fixup! Bug 40701: Add security warning when downloading a file
by morgan (@morgan) 21 Aug '24

21 Aug '24
morgan pushed to branch tor-browser-115.14.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: f3b141db by Henry Wilkes at 2024-08-21T18:14:24+00:00 fixup! Bug 40701: Add security warning when downloading a file Bug 42642: Focus the &quot;Got it&quot; button when opening the downloads panel. This should ensure that the alert is read aloud by Orca screen reader. - - - - - 1 changed file: - browser/components/downloads/content/downloads.js Changes: ===================================== browser/components/downloads/content/downloads.js ===================================== @@ -128,11 +128,12 @@ var DownloadsPanel = { if (Services.prefs.getBoolPref(PREF_SHOW_DOWNLOAD_WARNING)) { torWarningMessage.hidden = false; } else { - // Re-assign focus if it is about to be lost. - if (torWarningMessage.contains(document.activeElement)) { + const hadFocus = torWarningMessage.contains(document.activeElement); + torWarningMessage.hidden = true; + // Re-assign focus that was lost. + if (hadFocus) { this._focusPanel(true); } - torWarningMessage.hidden = true; } }; Services.prefs.addObserver( @@ -597,6 +598,20 @@ var DownloadsPanel = { if (this._preventFocusRing) { focusOptions.focusVisible = false; } + + // Focus the "Got it" button if it is visible. + // This should ensure that the alert is read aloud by Orca when the + // downloads panel is opened. See tor-browser#42642. + const torWarningMessage = document.getElementById( + "downloadsPanelTorWarning" + ); + if (!torWarningMessage.hidden) { + torWarningMessage + .querySelector(".downloads-tor-warning-dismiss-button") + .focus(focusOptions); + return; + } + if (DownloadsView.richListBox.itemCount > 0) { if (DownloadsView.canChangeSelectedItem) { DownloadsView.richListBox.selectedIndex = 0; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f3b141d… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f3b141d… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] fixup! Add CI for Tor Browser
by Pier Angelo Vendrame (@pierov) 21 Aug '24

21 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser Commits: f650dacf by Henry Wilkes at 2024-08-21T13:41:55+01:00 fixup! Add CI for Tor Browser Bug 42480: Add android torbrowser_strings.xml to our translation CI. - - - - - 1 changed file: - .gitlab/ci/update-translations.yml Changes: ===================================== .gitlab/ci/update-translations.yml ===================================== @@ -26,6 +26,7 @@ combine-en-US-translations: tor-browser:torConnect.properties tor-browser:torlauncher.properties base-browser:base-browser.ftl + fenix-torbrowserstringsxml:torbrowser_strings.xml ' cache: paths: View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f650dac… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f650dac… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.14.0esr-13.5-1] TEMPORARY: Copy torbrowser_strings.xml to the 13.5 branch.
by Pier Angelo Vendrame (@pierov) 21 Aug '24

21 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-115.14.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: ba841d9b by Henry Wilkes at 2024-08-21T14:24:18+01:00 TEMPORARY: Copy torbrowser_strings.xml to the 13.5 branch. NOTE: Only needed for the `tor-browser` `13.5` branches. Bug 42480: Make sure the torbrowser_strings.xml file is in the 13.5 branch for the tor-browser `update-translations` CI. The file should otherwise remain unused for the 13.5 branch. File was copied from https://gitlab.torproject.org/tpo/translation/-/blob/f27eda6d10a4585a8402c5… - - - - - 1 changed file: - + mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml Changes: ===================================== mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml ===================================== @@ -0,0 +1,147 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?><!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<resources> + <!-- About content. The first parameter is the name of the application. (For example: Fenix) --> + <string name="tor_about_content">%1$s is produced by the Tor Project, a U.S.-based 501(c)(3) nonprofit.</string> + + <!-- Preference for enabling non-Private Browsing Mode--> + <string name="preferences_disable_normal_mode">Allow Only Private Browsing Mode</string> + <!-- Preference link to donate to The Tor Project--> + <string name="preferences_donate">Donate to The Tor Project</string> + <!-- Preference for allowing screenshots to be taken in the app--> + <string name="preferences_allow_screenshots">Allow screenshots</string> + + <string name="tor_bootstrap_connect">Connect</string> + <string name="tor_bootstrap_connecting">Connecting</string> + <string name="tor_bootstrap_connecting_failed">Connecting Failed</string> + <string name="tor_bootstrap_quick_start_label">Quick Start</string> + <string name="tor_bootstrap_quick_start_disabled">Enable Quick Start to connect automatically in the future</string> + <string name="tor_bootstrap_quick_start_enabled">%s will connect automatically to the Tor Network in the future</string> + <string name="tor_bootstrap_swipe_for_logs">Swipe to the left to see Tor logs</string> + <string name="tor_initializing_log">Initializing Tor Log</string> + + <string name="tor_onboarding_security_level">Set your Security Level</string> + <string name="tor_onboarding_security_level_description">Disable certain web features that can be used to attack you, and harm your security, anonymity, and privacy.</string> + <string name="tor_onboarding_chosen_security_level_label">Current Security Level: %s</string> + <string name="tor_onboarding_security_settings_button">Open Security Settings</string> + <string name="tor_onboarding_donate_header">Donate and keep Tor safe</string> + <string name="tor_onboarding_donate_description">Tor is free to use because of donations from people like you.</string> + <string name="tor_onboarding_donate_button">Donate Now</string> + + <string name="tor_explore_privately">Explore. Privately.</string> + + <string name="preferences_tor_network_settings">Tor Network</string> + <string name="preferences_tor_network_settings_explanation">Tor Browser routes your traffic over the Tor Network, run by thousands of volunteers around the world.</string> + <string name="preferences_tor_network_settings_bridge_config">Config Bridge</string> + <string name="preferences_tor_network_settings_bridge_config_description">Use a Bridge to connect to Tor</string> + <string name="preferences_tor_network_settings_bridge_config_description_builtin_transport_enabled">You’re using a built-in bridge to connect to Tor</string> + <string name="preferences_tor_network_settings_bridge_config_description_user_provided_enabled">You provided a bridge to connect to Tor</string> + <string name="preferences_tor_network_settings_bridge_config_explanation">Bridges are unlisted relays that make it more difficult to block connections to the Tor Network. Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.</string> + <string name="preferences_tor_network_settings_bridge_config_toggle">Use a Bridge</string> + <string name="preferences_tor_network_settings_bridge_config_toggle_description">Config a bridge to connect to Tor</string> + <string name="preferences_tor_network_settings_bridge_config_builtin_bridge_obfs4">obfs4</string> + <string name="preferences_tor_network_settings_bridge_config_builtin_bridge_meek_azure">meek-azure</string> + <string name="preferences_tor_network_settings_bridge_config_builtin_bridge_snowflake">snowflake</string> + <string name="preferences_tor_network_settings_bridge_config_user_provided_bridge">Provide a Bridge I know</string> + <string name="preferences_tor_network_settings_bridge_config_user_provided_bridge_description">Enter bridge information from a trusted source</string> + <string name="preferences_tor_network_settings_bridge_config_current_bridge">Current Configured Bridge: %s</string> + <string name="tor_network_settings_bridge_not_configured">Not Configured</string> + <string name="preferences_tor_network_settings_status">Current Status</string> + <string name="preferences_tor_network_settings_tor_ready">Is Tor Ready: %s</string> + <string name="preferences_tor_network_settings_state">State: %s</string> + <string name="preferences_tor_network_settings_yes">Yes</string> + <string name="preferences_tor_network_settings_no">No</string> + <string name="preferences_tor_network_settings_disconnected">Disconnected</string> + <string name="preferences_tor_network_settings_connecting">Connecting</string> + <string name="preferences_tor_network_settings_connected">Connected</string> + <string name="preferences_tor_network_settings_restarting">Restarting</string> + <string name="preferences_tor_network_settings_bridges_enabled">Bridges are enabled: %s</string> + + <!-- Preference title for security level settings --> + <string name="preferences_tor_security_level_settings">Security Settings</string> + <string name="preferences_tor_security_level_options">Security Level</string> + + <!-- Description of security levels --> + <string name="tor_security_level_standard_option">Standard</string> + <string name="tor_security_level_standard_description">All Tor Browser and website features are enabled.</string> + <string name="tor_security_level_safer_option">Safer</string> + <string name="tor_security_level_safer_description">Disable website features that are often dangerous, causing some sites to lose functionality.</string> + <string name="tor_security_level_safest_option">Safest</string> + <string name="tor_security_level_safest_description">Only allow website features required for static sites and basic services. These changes affect images, media, and scripts.</string> + + <!-- Spoof locale to English --> + <string name="tor_spoof_english">Request English versions of web pages for enhanced privacy</string> + <!-- Onion location --> + <string name="preferences_tor_prioritize_onions">Prioritize .onion sites</string> + + <!-- Connection assist. --> + <string name="connection_assist_tor_connect_title">Connect to Tor</string> + <!-- Connection assist. --> + <string name="connection_assist_always_connect_automatically_toggle_description">Always connect automatically</string> + <!-- Connection assist. --> + <string name="connection_assist_configure_connection_button">Configure connection…</string> + + <!-- Connection assist. --> + <string name="connection_assist_connecting_title">Establishing a connection…</string> + + <!-- Connection assist. --> + <string name="connection_assist_internet_error_title">We can’t reach the internet</string> + <!-- Connection assist. %1$s is connection_assist_internet_error_learn_more--> + <string name="connection_assist_internet_error_description">This could be due to a connection issue rather than Tor being blocked. Check your internet connection, proxy, and firewall settings before trying again. %1$s</string> + <!-- Connection assist. --> + <string name="connection_assist_internet_error_learn_more">Learn more</string> + <!-- Connection assist. --> + <string name="connection_assist_internet_error_try_again">Try again</string> + + <!-- Connection assist. --> + <string name="connection_assist_trying_again_waiting_title">Trying again…</string> + + <!-- Connection assist. --> + <string name="connection_assist_cant_connect_to_tor_title">We can’t connect to Tor directly</string> + <!-- Connection assist. %1$s is connection_assist_try_a_bridge_learn_more--> + <string name="connection_assist_try_a_bridge_description">Try connecting via a bridge instead. By providing your location, we can look up the bridge that’s most likely to unblock the internet in your country or region. %1$s</string> + <!-- Connection assist. --> + <string name="connection_assist_unblock_the_internet_in_country_or_region">Unblock the internet in:</string> + <!-- Connection assist. --> + <string name="connection_assist_share_my_location_country_or_region">Share my location</string> + <!-- Connection assist. --> + <string name="connection_assist_try_a_bridge_button">Try a bridge</string> + + <!-- Connection assist. %1$s is connection_assist_choose_a_bridge_manually_link--> + <string name="connection_assist_try_a_bridge_learn_more_description1">Tor Browser will need to establish a brief non-Tor connection to determine your location and look up a bridge. If you don’t want to do that, you can %1$s instead.</string> + <!-- Connection assist. --> + <string name="connection_assist_choose_a_bridge_manually_link">choose a bridge manually</string> + <!-- Connection assist. %s is the error code--> + <string name="connection_assist_try_a_bridge_learn_more_error_code">Error code: %s</string> + + <!-- Connection assist. --> + <string name="connection_assist_trying_a_bridge_title">Trying a bridge…</string> + + <!-- Connection assist. --> + <string name="connection_assist_location_error_title">We couldn’t find your location</string> + <!-- Connection assist. %1$s is connection_assist_find_bridge_location_description, %2$s is connection_assist_select_country_try_again, %3$s is connection_assist_location_error_learn_more_link--> + <string name="connection_assist_location_error_description" translatable="false">%1$s %2$s %3$s</string> + <string name="connection_assist_find_bridge_location_description">To find a bridge that can unblock your internet, we need to know where you’re connecting from.</string> + <string name="connection_assist_select_country_try_again">Select your country or region and try again.</string> + <!-- Connection assist. %1$s is connection_assist_find_bridge_location_description, %2$s is connection_assist_check_location_settings_try_again. %3$s is connection_assist_location_error_learn_more_link--> + <string name="connection_assist_location_error_last_try_description">%1$s %2$s %3$s</string> + <string name="connection_assist_check_location_settings_try_again">Please check your location settings are correct and try again.</string> + + <string name="connection_assist_location_error_learn_more_link">Learn more</string> + + <!-- Connection assist. --> + <string name="connection_assist_location_check_title">We’re still having trouble connecting</string> + + <!-- Connection assist. --> + <string name="connection_assist_last_try_title">Trying one more time…</string> + + <!-- Connection assist. --> + <string name="connection_assist_final_error_title">We weren’t able to connect automatically</string> + <!-- Connection assist. %1$s is connection_assist_final_error_troubleshoot_connection_link. %2$s is connection_assist_final_error_learn_more_link--> + <string name="connection_assist_final_error_description1">Despite our best efforts, we weren’t able to connect to Tor. We recommend %1$s and adding a bridge manually instead. %2$s</string> + <!-- Connection assist. --> + <string name="connection_assist_final_error_troubleshoot_connection_link">troubleshooting your connection</string> + <!-- Connection assist. --> + <string name="connection_assist_final_error_learn_more_link">Learn more</string> +</resources> View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ba841d9… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/ba841d9… 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 41218: Use new Tor Browser gpg subkey for signing stable releases
by boklm (@boklm) 21 Aug '24

21 Aug '24
boklm pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build Commits: 3f16675b by Nicolas Vigier at 2024-08-21T13:08:19+02:00 Bug 41218: Use new Tor Browser gpg subkey for signing stable releases With #40964 we started using a new subkey for signing alpha releases. We now start using the new subkey for signing stable releases too. - - - - - 3 changed files: - tools/signing/linux-signer-gpg-sign - tools/signing/machines-setup/sudoers.d/sign-gpg - tools/signing/wrappers/sign-gpg Changes: ===================================== tools/signing/linux-signer-gpg-sign ===================================== @@ -4,8 +4,6 @@ set -e script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source "$script_dir/functions" -test "$tbb_version_type" = "alpha" && export GPG_NEWSUBKEY=1 - cd ~/"$SIGNING_PROJECTNAME-$tbb_version" test -n "$GPG_PASS" || read -sp "Enter gpg passphrase: " GPG_PASS ===================================== tools/signing/machines-setup/sudoers.d/sign-gpg ===================================== @@ -1,2 +1,2 @@ -Defaults>signing-gpg env_keep += "SIGNING_PROJECTNAME GPG_NEWSUBKEY" +Defaults>signing-gpg env_keep += SIGNING_PROJECTNAME %signing ALL = (signing-gpg) NOPASSWD: /signing/tor-browser-build/tools/signing/wrappers/sign-gpg ===================================== tools/signing/wrappers/sign-gpg ===================================== @@ -11,6 +11,5 @@ if test $(whoami) != 'signing-gpg'; then exit 1 fi -gpg_subkey='0xe53d989a9e2d47bf!' -test -n "$GPG_NEWSUBKEY" && gpg_subkey='0x157432CF78A65729!' +gpg_subkey='0x157432CF78A65729!' exec gpg --homedir /home/signing-gpg/.gnupg -absu "$gpg_subkey" --batch --no-tty -o- --passphrase-fd 0 -- "$1" View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/3… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/3… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • ...
  • 29
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.