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 -----
  • 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

November 2025

  • 1 participants
  • 144 discussions
[Git][tpo/applications/mullvad-browser][mullvad-browser-145.0a1-16.0-1] 8 commits: fixup! BB 43140: Tighten up fonts on Linux.
by Pier Angelo Vendrame (@pierov) 25 Nov '25

25 Nov '25
Pier Angelo Vendrame pushed to branch mullvad-browser-145.0a1-16.0-1 at The Tor Project / Applications / Mullvad Browser Commits: 71a835d4 by Pier Angelo Vendrame at 2025-11-24T16:42:17+01:00 fixup! BB 43140: Tighten up fonts on Linux. BB 44315: Fix the fonts on the updater. - - - - - 2e8e285c by Pier Angelo Vendrame at 2025-11-24T16:44:40+01:00 fixup! BB 43525: Skip Remote Settings for search engine customization. MB 483: Ship DDG without AI as a bundled search engine. MB 487: Use custom order for search engines. - - - - - 77434824 by Pier Angelo Vendrame at 2025-11-24T16:47:37+01:00 fixup! MB 213: Customize the search engines list. MB 487: Use custom order for search engines. - - - - - 4e498e75 by Beatriz Rizental at 2025-11-24T16:47:37+01:00 fixup! Tweaks to the build system Skip downloading WPT artifacts when generating test artifacts. - - - - - e9ded521 by Henry Wilkes at 2025-11-24T16:47:38+01:00 fixup! MB 39: Add home page about:mullvad-browser MB 486: Delay the update data for preloaded about:mullvad-browser pages. - - - - - d4f44eea by Henry Wilkes at 2025-11-24T16:47:59+01:00 fixup! MB 213: Customize the search engines list. MB 488: Drop Mullvad Leta search engine. - - - - - ba68b6de by Henry Wilkes at 2025-11-24T16:50:04+01:00 MB 488: Adjust search engine removal notification for Mullvad Leta. - - - - - 157bb4f4 by Pier Angelo Vendrame at 2025-11-24T17:36:30+01:00 fixup! BB 43615: Add Gitlab Issue and Merge Request templates Update GitLab templates. Avoid mentioning existing issues/MRs, and update the channels. - - - - - 14 changed files: - .gitlab/issue_templates/040 Feature.md - .gitlab/issue_templates/050 Backport.md - .gitlab/merge_request_templates/Default.md - browser/components/mullvad-browser/AboutMullvadBrowserChild.sys.mjs - browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs - browser/components/search/SearchUIUtils.sys.mjs - browser/components/tabbrowser/NewTabPagePreloading.sys.mjs - testing/testsuite-targets.mk - toolkit/components/search/SearchService.sys.mjs - toolkit/components/search/content/base-browser-search-engine-icons.json - toolkit/components/search/content/base-browser-search-engines.json - − toolkit/components/search/content/mullvad-leta.svg - toolkit/components/search/tests/xpcshell/test_base_browser.js - toolkit/mozapps/update/updater/updater.cpp Changes: ===================================== .gitlab/issue_templates/040 Feature.md ===================================== @@ -18,11 +18,11 @@ Provide an overview of the technical/implementation aspects of this feature ### Proposal <!-- Add links to associated proposal issues (or delete block) --> -- mullvad-browser#123 +- mullvad-browser#xyz ### Design <!-- Add links to associated design issues (or delete block) --> -- tpo/UX/Design#123 +- tpo/UX/Design#xyz <!-- Do not edit beneath this line <3 --> ===================================== .gitlab/issue_templates/050 Backport.md ===================================== @@ -13,12 +13,12 @@ please ensure the title has the following format: ## Bookkeeping ### Issue(s) -- tor-browser#12345 -- mullvad-browser#123 -- https://bugzilla.mozilla.org/show_bug.cgi?id=1234567 +- tor-browser#xxxxx +- mullvad-browser#xyz +- https://bugzilla.mozilla.org/show_bug.cgi?id=xxxxxxx ### Merge Request(s) -- tor-browser!123 +- tor-browser!xxxx ### Target Channels ===================================== .gitlab/merge_request_templates/Default.md ===================================== @@ -27,8 +27,8 @@ #### Target Channels -- [ ] **Alpha**: esr140-15.0 -- [ ] **Stable**: esr128-14.5 +- [ ] **Alpha**: rapid release, 16.0 +- [ ] **Stable**: esr140-15.0 ### Backporting ===================================== browser/components/mullvad-browser/AboutMullvadBrowserChild.sys.mjs ===================================== @@ -5,13 +5,34 @@ export class AboutMullvadBrowserChild extends JSWindowActorChild { handleEvent(event) { switch (event.type) { case "DOMContentLoaded": - this.sendQuery("AboutMullvadBrowser:GetUpdateData").then(data => { - const updateEvent = new this.contentWindow.CustomEvent("UpdateData", { - detail: Cu.cloneInto(data, this.contentWindow), - }); - this.contentWindow.dispatchEvent(updateEvent); + this.sendQuery("AboutMullvadBrowser:GetUpdateData").then(response => { + if (response.delayed) { + // Wait for DelayedUpdateData. + return; + } + this.#dispatchUpdateData(response.updateData); }); break; } } + + receiveMessage(message) { + switch (message.name) { + case "AboutMullvadBrowser:DelayedUpdateData": + this.#dispatchUpdateData(message.data); + break; + } + } + + /** + * Send the update data to the page. + * + * @param {object} data - The data to send. + */ + #dispatchUpdateData(data) { + const updateEvent = new this.contentWindow.CustomEvent("UpdateData", { + detail: Cu.cloneInto(data, this.contentWindow), + }); + this.contentWindow.dispatchEvent(updateEvent); + } } ===================================== browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs ===================================== @@ -2,30 +2,73 @@ * Actor parent class for the about:mullvad-browser page. */ export class AboutMullvadBrowserParent extends JSWindowActorParent { - receiveMessage(message) { + /** + * Whether this instance has a preloaded browser. + * + * @type {boolean} + */ + #preloaded = false; + + /** + * Method to be called when the browser corresponding to this actor has its + * preloadedState attribute removed. + */ + preloadedRemoved() { + if (!this.#preloaded) { + return; + } + this.#preloaded = false; + // Send in the initial data now that the page is actually going to be + // visible. + this.sendAsyncMessage( + "AboutMullvadBrowser:DelayedUpdateData", + this.#getUpdateData() + ); + } + + /** + * Get the update data for the page. + * + * @returns {object?} - The update data, or `null` if no update should be + * shown. + */ + #getUpdateData() { const shouldNotifyPref = "mullvadbrowser.post_update.shouldNotify"; + if (!Services.prefs.getBoolPref(shouldNotifyPref, false)) { + return null; + } + Services.prefs.clearUserPref(shouldNotifyPref); + // Try use the same URL as the about dialog. See mullvad-browser#411. + let updateURL = Services.urlFormatter.formatURLPref( + "app.releaseNotesURL.aboutDialog" + ); + if (updateURL === "about:blank") { + updateURL = Services.urlFormatter.formatURLPref( + "startup.homepage_override_url" + ); + } + + return { + version: Services.prefs.getCharPref( + "browser.startup.homepage_override.mullvadbrowser.version" + ), + url: updateURL, + }; + } + + receiveMessage(message) { switch (message.name) { case "AboutMullvadBrowser:GetUpdateData": { - if (!Services.prefs.getBoolPref(shouldNotifyPref, false)) { - return Promise.resolve(null); - } - Services.prefs.clearUserPref(shouldNotifyPref); - // Try use the same URL as the about dialog. See mullvad-browser#411. - let updateURL = Services.urlFormatter.formatURLPref( - "app.releaseNotesURL.aboutDialog" - ); - if (updateURL === "about:blank") { - updateURL = Services.urlFormatter.formatURLPref( - "startup.homepage_override_url" - ); + const browser = this.browsingContext.top.embedderElement; + if (browser?.getAttribute("preloadedState") === "preloaded") { + // Wait until the page is actually about to be shown before sending + // the initial data. + // Otherwise the preloaded page might grab the updateData even though + // it won't be shown as the landing page. See mullvad-browser#486. + this.#preloaded = true; + return Promise.resolve({ delayed: true }); } - - return Promise.resolve({ - version: Services.prefs.getCharPref( - "browser.startup.homepage_override.mullvadbrowser.version" - ), - url: updateURL, - }); + return Promise.resolve({ updateData: this.#getUpdateData() }); } } return undefined; ===================================== browser/components/search/SearchUIUtils.sys.mjs ===================================== @@ -86,8 +86,12 @@ export var SearchUIUtils = { * name of the engine to be moved and replaced. * @param {string} newEngine * name of the application default engine to replaced the removed engine. + * @param {object} [details] + * Additional details about the removed search engine. + * @param {boolean} [details.removedMullvadLeta] + * Whether we removed Mullvad Leta. */ - async removalOfSearchEngineNotificationBox(oldEngine, newEngine) { + async removalOfSearchEngineNotificationBox(oldEngine, newEngine, details) { let win = lazy.BrowserWindowTracker.getTopWindow({ allowFromInactiveWorkspace: true, }); @@ -103,9 +107,14 @@ export var SearchUIUtils = { win.gNotificationBox.removeNotification(notificationBox); }, }, - { - supportPage: "search-engine-removal", - }, + details?.removedMullvadLeta + ? { + link: "https://leta.mullvad.net/mullvad-browser", + "l10n-id": "moz-support-link-text", + } + : { + supportPage: "search-engine-removal", + }, ]; await win.gNotificationBox.appendNotification( ===================================== browser/components/tabbrowser/NewTabPagePreloading.sys.mjs ===================================== @@ -178,6 +178,17 @@ export let NewTabPagePreloading = { this.browserCounts[countKey]--; browser.removeAttribute("preloadedState"); browser.setAttribute("autocompletepopup", "PopupAutoComplete"); + // Copied from tor-browser. See mullvad-browser#486. + // Let a preloaded about:mullvad-browser page know that it is no longer + // preloaded (about to be shown). + try { + browser.browsingContext?.currentWindowGlobal + ?.getActor("AboutMullvadBrowser") + .preloadedRemoved(); + } catch { + // Not an about:mullvad-browser page with an AboutMullvadBrowserParent + // instance. + } } return browser; ===================================== testing/testsuite-targets.mk ===================================== @@ -151,7 +151,7 @@ download-wpt-manifest: $(call py_action,download_wpt_manifest) define package_archive -package-tests-$(1): stage-all package-tests-prepare-dest download-wpt-manifest +package-tests-$(1): stage-all package-tests-prepare-dest $$(call py_action,test_archive, \ $(1) \ '$$(abspath $$(test_archive_dir))/$$(PKG_BASENAME).$(1).tests.$(2)') ===================================== toolkit/components/search/SearchService.sys.mjs ===================================== @@ -1849,7 +1849,11 @@ export class SearchService { this._showRemovalOfSearchEngineNotificationBox( prevCurrentEngineName || prevAppDefaultEngineName, - newCurrentEngineName + newCurrentEngineName, + { + removedMullvadLeta: + (prevCurrentEngineId || prevAppDefaultEngineId) === "mullvad-leta", + } ); } } @@ -1927,7 +1931,13 @@ export class SearchService { // the user changes their locale it causes a change in engines. // If there is no update to settings metadata then the engine change was // caused by an update to config rather than a user changing their locale. - if (!this.#didSettingsMetaDataUpdate(prevMetaData)) { + // + // For the removal of Mullvad Leta, we show the notification even if the + // locale also changed because this change is not locale-dependant. + if ( + (prevCurrentEngineId || prevAppDefaultEngineId) === "mullvad-leta" || + !this.#didSettingsMetaDataUpdate(prevMetaData) + ) { return true; } } @@ -3821,16 +3831,22 @@ export class SearchService { * The name of the previous default engine that will be replaced. * @param {string} newCurrentEngineName * The name of the engine that will be the new default engine. + * @param {object} [details] + * Additional details about the removed search engine. + * @param {boolean} [details.removedMullvadLeta] + * Whether we removed Mullvad Leta. */ _showRemovalOfSearchEngineNotificationBox( prevCurrentEngineName, - newCurrentEngineName + newCurrentEngineName, + details ) { lazy.BrowserUtils.callModulesFromCategory( { categoryName: "search-service-notification" }, "search-engine-removal", prevCurrentEngineName, - newCurrentEngineName + newCurrentEngineName, + details ); } ===================================== toolkit/components/search/content/base-browser-search-engine-icons.json ===================================== @@ -5,11 +5,8 @@ "ddg-html": [ { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 } ], - "mullvad-leta": [ - { - "url": "chrome://global/content/search/mullvad-leta.svg", - "imageSize": 16 - } + "ddg-noai": [ + { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 } ], "mojeek": [ { "url": "chrome://global/content/search/mojeek.ico", "imageSize": 32 } ===================================== toolkit/components/search/content/base-browser-search-engines.json ===================================== @@ -1,55 +1,55 @@ [ { "base": { - "aliases": ["mullvad-leta", "leta", "mullvad", "ml"], + "aliases": ["duckduckgo", "ddg"], "classification": "general", - "name": "Mullvad Leta", + "name": "DuckDuckGo", "urls": { "search": { - "base": "https://leta.mullvad.net/", + "base": "https://duckduckgo.com/", "params": [], "searchTermParamName": "q" } } }, - "id": "ee88d691-6d7a-4adb-9fec-5a205565505a", - "identifier": "mullvad-leta", + "id": "04e99a38-13ee-47d8-8aa4-64482b3dea99", + "identifier": "ddg", "recordType": "engine", "variants": [{ "environment": { "allRegionsAndLocales": true } }] }, { "base": { - "aliases": ["duckduckgo", "ddg"], + "aliases": ["ddg-html", "duckduckgohtml", "ddgh"], "classification": "general", - "name": "DuckDuckGo", + "name": "DuckDuckGo (HTML)", "urls": { "search": { - "base": "https://duckduckgo.com/", + "base": "https://html.duckduckgo.com/html/", "params": [], "searchTermParamName": "q" } } }, - "id": "04e99a38-13ee-47d8-8aa4-64482b3dea99", - "identifier": "ddg", + "id": "98d8c84b-7455-431d-98b9-890e7bcc0041", + "identifier": "ddg-html", "recordType": "engine", "variants": [{ "environment": { "allRegionsAndLocales": true } }] }, { "base": { - "aliases": ["ddg-html", "duckduckgohtml", "ddgh"], + "aliases": ["ddgnoai"], "classification": "general", - "name": "DuckDuckGo (HTML)", + "name": "DuckDuckGo (no AI)", "urls": { "search": { - "base": "https://html.duckduckgo.com/html/", + "base": "https://noai.duckduckgo.com/", "params": [], "searchTermParamName": "q" } } }, - "id": "98d8c84b-7455-431d-98b9-890e7bcc0041", - "identifier": "ddg-html", + "id": "91687f02-56dd-4fef-ba26-bf139dff3166", + "identifier": "ddg-noai", "recordType": "engine", "variants": [{ "environment": { "allRegionsAndLocales": true } }] }, @@ -109,7 +109,16 @@ }, { "recordType": "defaultEngines", - "globalDefault": "mullvad-leta", - "globalDefaultPrivate": "mullvad-leta" + "globalDefault": "ddg", + "globalDefaultPrivate": "dgg" + }, + { + "recordType": "engineOrders", + "orders": [ + { + "environment": { "allRegionsAndLocales": true }, + "order": ["ddg", "ddg-html", "ddg-noai", "mojeek", "brave", "startpage"] + } + ] } ] ===================================== toolkit/components/search/content/mullvad-leta.svg deleted ===================================== @@ -1,25 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" id="Mullvad_VPN_Logo_Positive" x="0" y="0" version="1.1" - viewBox="0 0 252.70001 252.6" xml:space="preserve"> - <g id="Logo" transform="translate(-566.2 -73.7)"> - <path id="bg" fill="#192e45" fill-rule="evenodd" - d="M566.2 200c0 69.8 56.6 126.3 126.3 126.3 69.7 0 126.4-56.5 126.4-126.3S762.3 73.7 692.5 73.7c-69.8 0-126.3 56.5-126.3 126.3z" - clip-rule="evenodd" /> - <path id="Mullvad_Fur" fill="#d0933a" fill-rule="evenodd" - d="M583.1 184.9l9.6-13.4c0 .1-.6 19.3-.6 19.3l2.7-14.5c8 16.2 27.6 38.6 45.5 50.6 1.9 1.3 3.5 2.7 4.6 4.1 2.3.9 4.6 1.4 6.9 1.8 1.2.2 2.5.3 3.7.4 1.2.1 2.5.1 3.7.1 1.2 0 2.4-.1 3.6-.2 1.2-.1 2.4-.3 3.6-.5 1.2-.2 2.4-.4 3.5-.8 1.2-.3 2.3-.6 3.5-1 1.1-.3 2.3-.8 3.4-1.2 1.1-.5 2.2-.9 3.3-1.5 1.1-.6 2.2-1.1 3.2-1.7 1.1-.5 2.1-1.2 3.2-1.8 1.1-.6 2.1-1.3 3.2-1.9 1.1-.6 2.1-1.3 3.1-1.9 1-.7 2.1-1.3 3.1-2s2.1-1.3 3.2-2l1-.6.5.3 7.2 4.8-7.3-1.9c-.7.8-1.4 1.6-2.2 2.4-.9.9-1.9 1.8-2.8 2.7-1 .8-2 1.7-3.1 2.4-1.1.8-2.1 1.5-3.3 2.2-2.2 1.4-4.6 2.6-7.1 3.6-1.2.5-2.5 1-3.7 1.4-1.3.4-2.5.8-3.8 1.1-1.3.3-2.6.6-3.9.8-1.3.2-2.6.3-3.9.5-2.6.1-5.3.1-7.9-.3-1.3-.2-2.6-.4-3.9-.7-1.3-.3-2.5-.7-3.7-1.1-2.1-.8-4.2-1.8-6.1-3 0 0-6.9 1-4.1 6.2 2.8 5.2 7 4.7 5 10.8-1.4 3.3-3.4 6.5-5.6 9.5-4.6 6.2-11.8 11.7-11.1 15 32.7 40.3 106.4 34.7 134.4-1.3-.4-5.2-8.6-7.7-14.3-20.4 1.6.5 4 1.2 4 1.1 0-.1-6.8-11.1-7.1-12.2l4.4.3s-5.8-7.2-6-7.9l5.9-.8s-7.4-8.5-7.5-9.2l7.5 1.2-8.2-9.9h3.9l-4.6-6.7c-.8-.3-1.6-.5-2.4-.7l-3-.9c-11.2-3.5-21.8-6.7-32-13.1-14.3-8.9-27.1-19.8-36.7-28.3l-19.3-9.4c-18.5-1.4-35.9-.9-46.5 1.2l6.8-11.6-10.4 12.5c-.7-.2-.9-.6-.9-.6l.7-15.4-3.3 13.9c-1-.5-2.2-.7-3.4-.7-4.6 0-8.3 3.7-8.3 8.3 0 4.2 3.1 7.7 7.2 8.2l-7.1 14.4z" - clip-rule="evenodd" /> - <path id="Mullvad_Nose" fill="#ffcc86" fill-rule="evenodd" - d="M594.8 154.5c-1-.4-2.2-.7-3.3-.7-4.6 0-8.3 3.7-8.3 8.3 0 4 2.9 7.4 6.7 8.2h.2c2.5-.8 7.5-7.5 6.7-11.7-.4-1.5-1-2.9-2-4.1z" - clip-rule="evenodd" /> - <path id="Mullvad_Helmet" fill="#fdd321" fill-rule="evenodd" - d="M667.6 143.8c-1.5-4.1-1.1-9.4 1-14.4 3-6.9 8.7-11.5 14.1-11.5 1.1 0 2.1.2 3.1.6 3.1-2.8 6.7-5.1 10.7-6.7 22.1-8.8 54.4 6.9 62.7 28.6 4 10.5 2.8 22-.6 32.5-2.8 8.6-13 21-9.2 30.4-1.5-.4-33.1-10.2-41.9-15.8-14.1-8.8-26.8-19.6-36.3-28l-.3-.3-32.1-15.2c-.4-.2-.8-.4-1.1-.6 4.6 0 22.1 2.1 29.9.4" - clip-rule="evenodd" /> - <g id="Helmet_Lamp"> - <path id="path113" fill="#fff" - d="M677.1 147.4c-.9 0-1.6-.2-2.3-.5-1.6-.7-2.8-2-3.6-4-1.4-3.4-1-8.1.9-12.5 2.5-5.6 7.3-9.7 11.5-9.7.8 0 1.6.2 2.4.5 2.1.9 3.6 3 4.1 6 .6 3.2.1 6.9-1.5 10.4-2.4 5.7-7.3 9.8-11.5 9.8z" /> - <g id="g117"> - <path id="path115" fill="#1d2a3a" - d="M683.6 122.3c.6 0 1.2.1 1.8.4 1.6.7 2.8 2.5 3.2 4.9.5 2.9.1 6.3-1.4 9.5-2.2 5.1-6.5 8.8-10.1 8.8-.6 0-1.2-.1-1.7-.3-1.5-.6-2.3-2-2.7-3.1-1.2-3-.9-7.4.8-11.4 2.2-5.1 6.5-8.8 10.1-8.8m0-3c-4.8 0-10.1 4.4-12.9 10.7-2.1 4.7-2.4 9.8-.9 13.7.9 2.3 2.4 3.9 4.3 4.8.9.4 1.9.6 3 .6 4.8 0 10.1-4.4 12.8-10.7 1.7-3.8 2.2-7.8 1.6-11.3-.6-3.5-2.4-6-5-7.1-.9-.5-1.9-.7-2.9-.7z" /> - </g> - </g> - </g> -</svg> ===================================== toolkit/components/search/tests/xpcshell/test_base_browser.js ===================================== @@ -4,19 +4,21 @@ /** * This tests the SearchService to check our override of the remote settings is * working as expected. + * + * When adding new engines, it should be enough to change expectedURLs below. */ "use strict"; const expectedURLs = { - leta: "https://leta.mullvad.net/?q=test", - ddg: "https://duckduckgo.com/html/?q=test", - "ddg-html": "https://html.duckduckgo.com/html?q=test", + ddg: "https://duckduckgo.com/?q=test", + "ddg-html": "https://html.duckduckgo.com/html/?q=test", + "ddg-noai": "https://noai.duckduckgo.com/?q=test", mojeek: "https://www.mojeek.com/search?q=test", brave: "https://search.brave.com/search?q=test", startpage: "https://www.startpage.com/sp/search?q=test", }; -const defaultEngine = "leta"; +const defaultEngine = "ddg"; add_setup(async function setup() { await Services.search.init(); @@ -49,3 +51,11 @@ add_task(function test_checkSearchURLs() { Assert.equal(foundUrl, url, `The URL of ${engine.name} is not altered.`); } }); + +add_task(async function test_iconsDoesNotFail() { + for (const id of Object.keys(expectedURLs)) { + const engine = Services.search.getEngineById(id); + // No need to assert anything, as in case of error this method should throw. + await engine.getIconURL(); + } +}); ===================================== toolkit/mozapps/update/updater/updater.cpp ===================================== @@ -3326,6 +3326,10 @@ int NS_main(int argc, NS_tchar** argv) { putenv(const_cast<char*>("MOZ_USING_SERVICE=")); #endif +#if defined(XP_UNIX) && !defined(XP_MACOSX) + unsetenv("FONTCONFIG_PATH"); +#endif + if (argc == 2 && NS_tstrcmp(argv[1], NS_T("--channels-allowed")) == 0) { #ifdef MOZ_VERIFY_MAR_SIGNATURE int rv = PopulategMARStrings(); View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/16… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/16… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-bundle-testsuite][main] Bug 40092: Remove torbrowser-nightly-linux-i686
by boklm (@boklm) 24 Nov '25

24 Nov '25
boklm pushed to branch main at The Tor Project / Applications / tor-browser-bundle-testsuite Commits: 0d7e065b by Nicolas Vigier at 2025-11-24T16:54:15+01:00 Bug 40092: Remove torbrowser-nightly-linux-i686 See tor-browser-build#41601. - - - - - 1 changed file: - TBBTestSuite/TestSuite/TorBrowserBuild.pm Changes: ===================================== TBBTestSuite/TestSuite/TorBrowserBuild.pm ===================================== @@ -55,27 +55,6 @@ sub set_tests { publish_dir => 'nightly-linux-x86_64', projectname => 'torbrowser', }, - { - name => 'torbrowser-nightly-linux-i686', - descr => 'build tor-browser nightly linux-i686', - type => 'rbm_build', - project => 'release', - targets => [ - 'noversiondir', - 'nightly', - 'browser-single-platform', - 'browser-linux-i686', - 'torbrowser', - ], - publish_dir => 'nightly-linux-i686', - }, - { - name => 'torbrowser-incrementals-nightly-linux-i686', - descr => 'create incrementals for tor-browser nightly linux-i686', - type => 'make_incrementals', - publish_dir => 'nightly-linux-i686', - projectname => 'torbrowser', - }, { name => 'torbrowser-nightly-linux-aarch64', descr => 'build tor-browser nightly linux-aarch64', View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-bundle-testsuite… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-bundle-testsuite… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-145.0a1-16.0-1] fixup! BB 43615: Add Gitlab Issue and Merge Request templates
by Pier Angelo Vendrame (@pierov) 24 Nov '25

24 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: e2ed272c by Pier Angelo Vendrame at 2025-11-24T17:37:07+01:00 fixup! BB 43615: Add Gitlab Issue and Merge Request templates Update GitLab templates. Avoid mentioning existing issues/MRs, and update the channels. - - - - - 3 changed files: - .gitlab/issue_templates/040 Feature.md - .gitlab/issue_templates/050 Backport.md - .gitlab/merge_request_templates/Default.md Changes: ===================================== .gitlab/issue_templates/040 Feature.md ===================================== @@ -18,11 +18,11 @@ Provide an overview of the technical/implementation aspects of this feature ### Proposal <!-- Add links to associated proposal issues (or delete block) --> -- tor-browser#12345 +- tor-browser#xxxxx ### Design <!-- Add links to associated design issues (or delete block) --> -- tpo/UX/Design#123 +- tpo/UX/Design#xyz <!-- Do not edit beneath this line <3 --> ===================================== .gitlab/issue_templates/050 Backport.md ===================================== @@ -13,12 +13,12 @@ please ensure the title has the following format: ## Bookkeeping ### Issue(s) -- tor-browser#12345 -- mullvad-browser#123 -- https://bugzilla.mozilla.org/show_bug.cgi?id=1234567 +- tor-browser#xxxxx +- mullvad-browser#xyz +- https://bugzilla.mozilla.org/show_bug.cgi?id=xxxxxxx ### Merge Request(s) -- tor-browser!123 +- tor-browser!xxxx ### Target Channels ===================================== .gitlab/merge_request_templates/Default.md ===================================== @@ -27,8 +27,8 @@ #### Target Channels -- [ ] **Alpha**: esr140-15.0 -- [ ] **Stable**: esr128-14.5 +- [ ] **Alpha**: rapid release, 16.0 +- [ ] **Stable**: esr140-15.0 - [ ] **Legacy**: esr115-13.5 ### Backporting View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/e2ed272… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/e2ed272… 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] 3 commits: fixup! BB 43140: Tighten up fonts on Linux.
by Pier Angelo Vendrame (@pierov) 24 Nov '25

24 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: 86495864 by Pier Angelo Vendrame at 2025-11-24T16:33:27+01:00 fixup! BB 43140: Tighten up fonts on Linux. BB 44315: Fix the fonts on the updater. - - - - - 6d3f1030 by Pier Angelo Vendrame at 2025-11-24T16:35:28+01:00 fixup! BB 43525: Skip Remote Settings for search engine customization. MB 483: Ship DDG without AI as a bundled search engine. MB 487: Use custom order for search engines. - - - - - 7d9ea4aa by Beatriz Rizental at 2025-11-24T16:35:51+01:00 fixup! Tweaks to the build system Skip downloading WPT artifacts when generating test artifacts. - - - - - 5 changed files: - testing/testsuite-targets.mk - toolkit/components/search/content/base-browser-search-engine-icons.json - toolkit/components/search/content/base-browser-search-engines.json - toolkit/components/search/tests/xpcshell/test_base_browser.js - toolkit/mozapps/update/updater/updater.cpp Changes: ===================================== testing/testsuite-targets.mk ===================================== @@ -151,7 +151,7 @@ download-wpt-manifest: $(call py_action,download_wpt_manifest) define package_archive -package-tests-$(1): stage-all package-tests-prepare-dest download-wpt-manifest +package-tests-$(1): stage-all package-tests-prepare-dest $$(call py_action,test_archive, \ $(1) \ '$$(abspath $$(test_archive_dir))/$$(PKG_BASENAME).$(1).tests.$(2)') ===================================== toolkit/components/search/content/base-browser-search-engine-icons.json ===================================== @@ -2,6 +2,9 @@ "ddg": [ { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 } ], + "ddg-noai": [ + { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 } + ], "startpage": [ { "url": "chrome://global/content/search/startpage-16.png", ===================================== toolkit/components/search/content/base-browser-search-engines.json ===================================== @@ -17,6 +17,24 @@ "recordType": "engine", "variants": [{ "environment": { "allRegionsAndLocales": true } }] }, + { + "base": { + "aliases": ["ddgnoai"], + "classification": "general", + "name": "DuckDuckGo (no AI)", + "urls": { + "search": { + "base": "https://noai.duckduckgo.com/", + "params": [], + "searchTermParamName": "q" + } + } + }, + "id": "91687f02-56dd-4fef-ba26-bf139dff3166", + "identifier": "ddg-noai", + "recordType": "engine", + "variants": [{ "environment": { "allRegionsAndLocales": true } }] + }, { "base": { "aliases": ["startpage", "sp"], @@ -39,5 +57,14 @@ "recordType": "defaultEngines", "globalDefault": "ddg", "globalDefaultPrivate": "ddg" + }, + { + "recordType": "engineOrders", + "orders": [ + { + "environment": { "allRegionsAndLocales": true }, + "order": ["ddg", "ddg-noai", "startpage"] + } + ] } ] ===================================== toolkit/components/search/tests/xpcshell/test_base_browser.js ===================================== @@ -4,12 +4,15 @@ /** * This tests the SearchService to check our override of the remote settings is * working as expected. + * + * When adding new engines, it should be enough to change expectedURLs below. */ "use strict"; const expectedURLs = { ddg: "https://duckduckgo.com/?q=test", + "ddg-noai": "https://noai.duckduckgo.com/?q=test", startpage: "https://www.startpage.com/sp/search?q=test", }; const defaultEngine = "ddg"; @@ -45,3 +48,11 @@ add_task(function test_checkSearchURLs() { Assert.equal(foundUrl, url, `The URL of ${engine.name} is not altered.`); } }); + +add_task(async function test_iconsDoesNotFail() { + for (const id of Object.keys(expectedURLs)) { + const engine = Services.search.getEngineById(id); + // No need to assert anything, as in case of error this method should throw. + await engine.getIconURL(); + } +}); ===================================== toolkit/mozapps/update/updater/updater.cpp ===================================== @@ -3326,6 +3326,10 @@ int NS_main(int argc, NS_tchar** argv) { putenv(const_cast<char*>("MOZ_USING_SERVICE=")); #endif +#if defined(XP_UNIX) && !defined(XP_MACOSX) + unsetenv("FONTCONFIG_PATH"); +#endif + if (argc == 2 && NS_tstrcmp(argv[1], NS_T("--channels-allowed")) == 0) { #ifdef MOZ_VERIFY_MAR_SIGNATURE int rv = PopulategMARStrings(); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/c9beb7… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/c9beb7… 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] 6 commits: fixup! TB 7494: Create local home page for TBB.
by Pier Angelo Vendrame (@pierov) 24 Nov '25

24 Nov '25
Pier Angelo Vendrame pushed to branch tor-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser Commits: 57842b65 by Henry Wilkes at 2025-11-20T17:47:36+01:00 fixup! TB 7494: Create local home page for TBB. TB 44314: Delay initial data for preloaded about:tor pages. - - - - - 7fe873d8 by Pier Angelo Vendrame at 2025-11-20T17:47:37+01:00 fixup! BB 43140: Tighten up fonts on Linux. BB 44315: Fix the fonts on the updater. - - - - - 5079b9ac by Pier Angelo Vendrame at 2025-11-20T17:47:38+01:00 fixup! BB 43525: Skip Remote Settings for search engine customization. MB 483: Ship DDG without AI as a bundled search engine. MB 487: Use custom order for search engines. - - - - - f940028c by Pier Angelo Vendrame at 2025-11-20T17:47:38+01:00 fixup! TB 42891: Set the bundled search engine for Tor Browser. MB 487: Use custom order for search engines. - - - - - 81b52668 by Beatriz Rizental at 2025-11-20T17:47:39+01:00 fixup! Tweaks to the build system Skip downloading WPT artifacts when generating test artifacts. - - - - - 851147b1 by clairehurst at 2025-11-20T17:47:40+01:00 fixup! [android] Disable features and functionality - - - - - 10 changed files: - browser/components/abouttor/AboutTorChild.sys.mjs - browser/components/abouttor/AboutTorParent.sys.mjs - browser/components/abouttor/content/aboutTor.js - browser/components/tabbrowser/NewTabPagePreloading.sys.mjs - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt - testing/testsuite-targets.mk - toolkit/components/search/content/base-browser-search-engine-icons.json - toolkit/components/search/content/base-browser-search-engines.json - toolkit/components/search/tests/xpcshell/test_base_browser.js - toolkit/mozapps/update/updater/updater.cpp Changes: ===================================== browser/components/abouttor/AboutTorChild.sys.mjs ===================================== @@ -6,11 +6,9 @@ export class AboutTorChild extends JSWindowActorChild { switch (event.type) { case "DOMContentLoaded": this.sendQuery("AboutTor:GetInitialData").then(data => { - const initialDataEvent = new this.contentWindow.CustomEvent( - "InitialData", - { detail: Cu.cloneInto(data, this.contentWindow) } - ); - this.contentWindow.dispatchEvent(initialDataEvent); + if (data) { + this.#dispatchInitialData(data); + } }); break; case "SubmitSearchOnionize": @@ -36,6 +34,9 @@ export class AboutTorChild extends JSWindowActorChild { receiveMessage(message) { switch (message.name) { + case "AboutTor:DelayedInitialData": + this.#dispatchInitialData(message.data); + break; case "AboutTor:DismissYEC": { this.contentWindow.dispatchEvent( new this.contentWindow.CustomEvent("DismissYEC") @@ -45,4 +46,16 @@ export class AboutTorChild extends JSWindowActorChild { } return undefined; } + + /** + * Send the initial data to the page. + * + * @param {object} data - The data to send. + */ + #dispatchInitialData(data) { + const initialDataEvent = new this.contentWindow.CustomEvent("InitialData", { + detail: Cu.cloneInto(data, this.contentWindow), + }); + this.contentWindow.dispatchEvent(initialDataEvent); + } } ===================================== browser/components/abouttor/AboutTorParent.sys.mjs ===================================== @@ -8,6 +8,8 @@ ChromeUtils.defineESModuleGetters(lazy, { }); const initializedActors = new Set(); +const onionizePref = "torbrowser.homepage.search.onionize"; +const surveyDismissVersionPref = "torbrowser.homepage.survey.dismiss_version"; /** * Actor parent class for the about:tor page. @@ -21,35 +23,76 @@ export class AboutTorParent extends JSWindowActorParent { */ static #dismissYEC = false; + /** + * Whether this instance has a preloaded browser. + * + * @type {boolean} + */ + #preloaded = false; + + /** + * Method to be called when the browser corresponding to this actor has its + * preloadedState attribute removed. + */ + preloadedRemoved() { + if (!this.#preloaded) { + return; + } + this.#preloaded = false; + // Send in the initial data now that the page is actually going to be + // visible. + this.sendAsyncMessage( + "AboutTor:DelayedInitialData", + this.#getInitialData() + ); + } + + /** + * Get the initial data for the page when it is about to be shown. + * + * @returns {object} - The initial data. + */ + #getInitialData() { + let appLocale = Services.locale.appLocaleAsBCP47; + if (appLocale === "ja-JP-macos") { + appLocale = "ja"; + } + + return { + torConnectEnabled: lazy.TorConnect.enabled, + messageData: lazy.AboutTorMessage.getNext(), + isStable: AppConstants.MOZ_UPDATE_CHANNEL === "release", + searchOnionize: Services.prefs.getBoolPref(onionizePref, false), + surveyDismissVersion: Services.prefs.getIntPref( + surveyDismissVersionPref, + 0 + ), + appLocale, + dismissYEC: AboutTorParent.#dismissYEC, + }; + } + didDestroy() { initializedActors.delete(this); } receiveMessage(message) { - const onionizePref = "torbrowser.homepage.search.onionize"; - const surveyDismissVersionPref = - "torbrowser.homepage.survey.dismiss_version"; switch (message.name) { case "AboutTor:GetInitialData": { // Track this actor to send future updates. initializedActors.add(this); - let appLocale = Services.locale.appLocaleAsBCP47; - if (appLocale === "ja-JP-macos") { - appLocale = "ja"; + const browser = this.browsingContext.top.embedderElement; + if (browser?.getAttribute("preloadedState") === "preloaded") { + // Wait until the page is actually about to be shown before sending + // the initial data. + // Otherwise the preloaded page might receive data that has expired by + // the time the page is shown. And it will iterate + // AboutTorMessage.getNext too early. See tor-browser#44314. + this.#preloaded = true; + return Promise.resolve(null); } - return Promise.resolve({ - torConnectEnabled: lazy.TorConnect.enabled, - messageData: lazy.AboutTorMessage.getNext(), - isStable: AppConstants.MOZ_UPDATE_CHANNEL === "release", - searchOnionize: Services.prefs.getBoolPref(onionizePref, false), - surveyDismissVersion: Services.prefs.getIntPref( - surveyDismissVersionPref, - 0 - ), - appLocale, - dismissYEC: AboutTorParent.#dismissYEC, - }); + return Promise.resolve(this.#getInitialData()); } case "AboutTor:SetSearchOnionize": Services.prefs.setBoolPref(onionizePref, message.data); ===================================== browser/components/abouttor/content/aboutTor.js ===================================== @@ -562,11 +562,35 @@ const YecArea = { }, }; +let gInitialData = false; +let gLoaded = false; + +function maybeComplete() { + if (!gInitialData || !gLoaded) { + return; + } + // Wait to show the content when the l10n population has completed. + if (document.hasPendingL10nMutations) { + window.addEventListener( + "L10nMutationsFinished", + () => { + document.body.classList.add("initialized"); + }, + { once: true } + ); + } else { + document.body.classList.add("initialized"); + } +} + window.addEventListener("DOMContentLoaded", () => { SearchWidget.init(); MessageArea.init(); SurveyArea.init(); YecArea.init(); + + gLoaded = true; + maybeComplete(); }); window.addEventListener("InitialData", event => { @@ -584,18 +608,8 @@ window.addEventListener("InitialData", event => { SurveyArea.potentiallyShow(surveyDismissVersion, isStable, appLocale); YecArea.potentiallyShow(dismissYEC, isStable, appLocale); - // Wait to show the content when the l10n population has completed. - if (document.hasPendingL10nMutations) { - window.addEventListener( - "L10nMutationsFinished", - () => { - document.body.classList.add("initialized"); - }, - { once: true } - ); - } else { - document.body.classList.add("initialized"); - } + gInitialData = true; + maybeComplete(); }); window.addEventListener("DismissYEC", () => { ===================================== browser/components/tabbrowser/NewTabPagePreloading.sys.mjs ===================================== @@ -178,6 +178,24 @@ export let NewTabPagePreloading = { this.browserCounts[countKey]--; browser.removeAttribute("preloadedState"); browser.setAttribute("autocompletepopup", "PopupAutoComplete"); + // Let a preloaded about:tor page know that it is no longer preloaded + // (about to be shown). See tor-browser#44314. + // NOTE: We call the AboutTorParent instance directly because it is not + // reliable for the AboutTorParent to wait for the "preloadedState" + // attribute to change via a MutationObserver on the browsingContext's + // browser element because the AboutTorParent's browsingContext's browser + // element may be swapped out. E.g. see the "SwapDocShells" event. + // NOTE: We assume that this is the only place that removes the + // "preloadedState" attribute. + // NOTE: Alternatively, we could have the AboutTorParent wait for + // MozAfterPaint, but this would be slightly delayed. + try { + browser.browsingContext?.currentWindowGlobal + ?.getActor("AboutTor") + .preloadedRemoved(); + } catch { + // Not an about:tor page with an AboutTorParent instance. + } } return browser; ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt ===================================== @@ -203,11 +203,9 @@ open class DefaultToolbarMenu( */ @VisibleForTesting(otherwise = PRIVATE) fun shouldShowTranslations(): Boolean { - val isEngineSupported = store.state.translationEngine.isEngineSupported - return selectedSession?.let { - isEngineSupported == true && - FxNimbus.features.translations.value().mainFlowBrowserMenuEnabled - } ?: false + // We need this because in FxNimbus.kt, mainFlowToolbarEnabled defaults to true + // ```mainFlowToolbarEnabled: Boolean = true``` + return false // bug_44304 Hide broken translat page action. } /** ===================================== testing/testsuite-targets.mk ===================================== @@ -151,7 +151,7 @@ download-wpt-manifest: $(call py_action,download_wpt_manifest) define package_archive -package-tests-$(1): stage-all package-tests-prepare-dest download-wpt-manifest +package-tests-$(1): stage-all package-tests-prepare-dest $$(call py_action,test_archive, \ $(1) \ '$$(abspath $$(test_archive_dir))/$$(PKG_BASENAME).$(1).tests.$(2)') ===================================== toolkit/components/search/content/base-browser-search-engine-icons.json ===================================== @@ -2,6 +2,9 @@ "ddg": [ { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 } ], + "ddg-noai": [ + { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 } + ], "ddg-onion": [ { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 } ], ===================================== toolkit/components/search/content/base-browser-search-engines.json ===================================== @@ -17,6 +17,24 @@ "recordType": "engine", "variants": [{ "environment": { "allRegionsAndLocales": true } }] }, + { + "base": { + "aliases": ["ddgnoai"], + "classification": "general", + "name": "DuckDuckGo (no AI)", + "urls": { + "search": { + "base": "https://noai.duckduckgo.com/", + "params": [], + "searchTermParamName": "q" + } + } + }, + "id": "91687f02-56dd-4fef-ba26-bf139dff3166", + "identifier": "ddg-noai", + "recordType": "engine", + "variants": [{ "environment": { "allRegionsAndLocales": true } }] + }, { "base": { "aliases": ["ddgonion"], @@ -93,5 +111,21 @@ "recordType": "defaultEngines", "globalDefault": "ddg", "globalDefaultPrivate": "ddg" + }, + { + "recordType": "engineOrders", + "orders": [ + { + "environment": { "allRegionsAndLocales": true }, + "order": [ + "ddg", + "ddg-noai", + "ddg-onion", + "startpage", + "startpage-onion", + "wikipedia" + ] + } + ] } ] ===================================== toolkit/components/search/tests/xpcshell/test_base_browser.js ===================================== @@ -4,12 +4,15 @@ /** * This tests the SearchService to check our override of the remote settings is * working as expected. + * + * When adding new engines, it should be enough to change expectedURLs below. */ "use strict"; const expectedURLs = { ddg: "https://duckduckgo.com/?q=test", + "ddg-noai": "https://noai.duckduckgo.com/?q=test", "ddg-onion": "https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/?q=t…", startpage: "https://www.startpage.com/sp/search?q=test", @@ -50,3 +53,11 @@ add_task(function test_checkSearchURLs() { Assert.equal(foundUrl, url, `The URL of ${engine.name} is not altered.`); } }); + +add_task(async function test_iconsDoesNotFail() { + for (const id of Object.keys(expectedURLs)) { + const engine = Services.search.getEngineById(id); + // No need to assert anything, as in case of error this method should throw. + await engine.getIconURL(); + } +}); ===================================== toolkit/mozapps/update/updater/updater.cpp ===================================== @@ -3474,6 +3474,10 @@ int NS_main(int argc, NS_tchar** argv) { putenv(const_cast<char*>("MOZ_USING_SERVICE=")); #endif +#if defined(XP_UNIX) && !defined(XP_MACOSX) + unsetenv("FONTCONFIG_PATH"); +#endif + if (argc == 2 && NS_tstrcmp(argv[1], NS_T("--channels-allowed")) == 0) { #ifdef MOZ_VERIFY_MAR_SIGNATURE int rv = PopulategMARStrings(); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4e3381… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4e3381… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-140.5.0esr-15.0-1] fixup! BB 43525: Skip Remote Settings for search engine customization.
by Pier Angelo Vendrame (@pierov) 24 Nov '25

24 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Tor Browser Commits: f3db5fb9 by Pier Angelo Vendrame at 2025-11-24T10:57:39+01:00 fixup! BB 43525: Skip Remote Settings for search engine customization. Fix linting. - - - - - 1 changed file: - toolkit/components/search/content/base-browser-search-engines.json Changes: ===================================== toolkit/components/search/content/base-browser-search-engines.json ===================================== @@ -63,11 +63,7 @@ "orders": [ { "environment": { "allRegionsAndLocales": true }, - "order": [ - "ddg", - "ddg-noai", - "startpage" - ] + "order": ["ddg", "ddg-noai", "startpage"] } ] } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f3db5fb… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f3db5fb… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-140.5.0esr-15.0-1] 2 commits: fixup! BB 43615: Add Gitlab Issue and Merge Request templates
by Pier Angelo Vendrame (@pierov) 24 Nov '25

24 Nov '25
Pier Angelo Vendrame pushed to branch mullvad-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Mullvad Browser Commits: 3b7ce9ff by Pier Angelo Vendrame at 2025-11-24T10:34:54+01:00 fixup! BB 43615: Add Gitlab Issue and Merge Request templates Update GitLab templates. Avoid mentioning existing issues/MRs, and update the channels. - - - - - 9f32928c by Tom Ritter at 2025-11-24T10:34:55+01:00 Bug 1999126: Hide the value of the pdfjs pref from being disabled when RFP is enabled r=timhuang Differential Revision: https://phabricator.services.mozilla.com/D272930 - - - - - 8 changed files: - .gitlab/issue_templates/040 Feature.md - .gitlab/issue_templates/050 Backport.md - .gitlab/merge_request_templates/Default.md - browser/components/resistfingerprinting/test/browser/browser_navigator_iframes.js - dom/base/Navigator.cpp - dom/base/nsMimeTypeArray.cpp - dom/base/nsPluginArray.cpp - toolkit/components/resistfingerprinting/RFPTargets.inc Changes: ===================================== .gitlab/issue_templates/040 Feature.md ===================================== @@ -18,11 +18,11 @@ Provide an overview of the technical/implementation aspects of this feature ### Proposal <!-- Add links to associated proposal issues (or delete block) --> -- mullvad-browser#123 +- mullvad-browser#xyz ### Design <!-- Add links to associated design issues (or delete block) --> -- tpo/UX/Design#123 +- tpo/UX/Design#xyz <!-- Do not edit beneath this line <3 --> ===================================== .gitlab/issue_templates/050 Backport.md ===================================== @@ -13,12 +13,12 @@ please ensure the title has the following format: ## Bookkeeping ### Issue(s) -- tor-browser#12345 -- mullvad-browser#123 -- https://bugzilla.mozilla.org/show_bug.cgi?id=1234567 +- tor-browser#xxxxx +- mullvad-browser#xyz +- https://bugzilla.mozilla.org/show_bug.cgi?id=xxxxxxx ### Merge Request(s) -- tor-browser!123 +- tor-browser!xxxx ### Target Channels ===================================== .gitlab/merge_request_templates/Default.md ===================================== @@ -27,8 +27,8 @@ #### Target Channels -- [ ] **Alpha**: esr140-15.0 -- [ ] **Stable**: esr128-14.5 +- [ ] **Alpha**: rapid release, 16.0 +- [ ] **Stable**: esr140-15.0 ### Backporting ===================================== browser/components/resistfingerprinting/test/browser/browser_navigator_iframes.js ===================================== @@ -331,6 +331,13 @@ add_task(async () => { await simpleRFPTest(uri, testNavigator, expectedResults); }); +add_task(async () => { + expectedResults = structuredClone(allSpoofed); + await simpleRFPTest(uri, testNavigator, expectedResults, {}, [ + ["pdfjs.disabled", true], + ]); +}); + // In the below tests, we use the cross-origin domain as the base URI of a resource we fetch (on both the framer and framee) // so we can check that the HTTP header is as expected. ===================================== dom/base/Navigator.cpp ===================================== @@ -510,7 +510,11 @@ nsPluginArray* Navigator::GetPlugins(ErrorResult& aRv) { return mPlugins; } -bool Navigator::PdfViewerEnabled() { return !StaticPrefs::pdfjs_disabled(); } +bool Navigator::PdfViewerEnabled() { + return !StaticPrefs::pdfjs_disabled() || + nsContentUtils::ShouldResistFingerprinting(GetDocShell(), + RFPTarget::PdfjsSpoof); +} Permissions* Navigator::GetPermissions(ErrorResult& aRv) { if (!mWindow) { ===================================== dom/base/nsMimeTypeArray.cpp ===================================== @@ -79,7 +79,11 @@ void nsMimeTypeArray::GetSupportedNames(nsTArray<nsString>& retval) { } } -bool nsMimeTypeArray::ForceNoPlugins() { return StaticPrefs::pdfjs_disabled(); } +bool nsMimeTypeArray::ForceNoPlugins() { + return StaticPrefs::pdfjs_disabled() && + !nsContentUtils::ShouldResistFingerprinting( + mWindow ? mWindow->GetDocShell() : nullptr, RFPTarget::PdfjsSpoof); +} NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsMimeType, mPluginElement) ===================================== dom/base/nsPluginArray.cpp ===================================== @@ -97,7 +97,11 @@ void nsPluginArray::GetSupportedNames(nsTArray<nsString>& aRetval) { } } -bool nsPluginArray::ForceNoPlugins() { return StaticPrefs::pdfjs_disabled(); } +bool nsPluginArray::ForceNoPlugins() { + return StaticPrefs::pdfjs_disabled() && + !nsContentUtils::ShouldResistFingerprinting( + mWindow ? mWindow->GetDocShell() : nullptr, RFPTarget::PdfjsSpoof); +} NS_IMPL_CYCLE_COLLECTING_ADDREF(nsPluginArray) NS_IMPL_CYCLE_COLLECTING_RELEASE(nsPluginArray) ===================================== toolkit/components/resistfingerprinting/RFPTargets.inc ===================================== @@ -34,7 +34,8 @@ ITEM_VALUE(NavigatorHWConcurrency, 16) ITEM_VALUE(NavigatorOscpu, 17) ITEM_VALUE(NavigatorPlatform, 18) ITEM_VALUE(NavigatorUserAgent, 19) -// We no longer use PointerId, it can renamed and reused +// If the user disables PDFJS via a pref, we do not expose that to the web +ITEM_VALUE(PdfjsSpoof, 20) ITEM_VALUE(StreamVideoFacingMode, 21) ITEM_VALUE(JSDateTimeUTC, 22) ITEM_VALUE(JSMathFdlibm, 23) View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/c8… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/c8… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-140.5.0esr-15.0-1] 2 commits: fixup! BB 43615: Add Gitlab Issue and Merge Request templates
by Pier Angelo Vendrame (@pierov) 24 Nov '25

24 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Tor Browser Commits: aefedb35 by Pier Angelo Vendrame at 2025-11-24T10:31:55+01:00 fixup! BB 43615: Add Gitlab Issue and Merge Request templates Update GitLab templates. Avoid mentioning existing issues/MRs, and update the channels. - - - - - 6c7f3377 by Tom Ritter at 2025-11-24T10:31:58+01:00 Bug 1999126: Hide the value of the pdfjs pref from being disabled when RFP is enabled r=timhuang Differential Revision: https://phabricator.services.mozilla.com/D272930 - - - - - 8 changed files: - .gitlab/issue_templates/040 Feature.md - .gitlab/issue_templates/050 Backport.md - .gitlab/merge_request_templates/Default.md - browser/components/resistfingerprinting/test/browser/browser_navigator_iframes.js - dom/base/Navigator.cpp - dom/base/nsMimeTypeArray.cpp - dom/base/nsPluginArray.cpp - toolkit/components/resistfingerprinting/RFPTargets.inc Changes: ===================================== .gitlab/issue_templates/040 Feature.md ===================================== @@ -18,11 +18,11 @@ Provide an overview of the technical/implementation aspects of this feature ### Proposal <!-- Add links to associated proposal issues (or delete block) --> -- tor-browser#12345 +- tor-browser#xxxxx ### Design <!-- Add links to associated design issues (or delete block) --> -- tpo/UX/Design#123 +- tpo/UX/Design#xyz <!-- Do not edit beneath this line <3 --> ===================================== .gitlab/issue_templates/050 Backport.md ===================================== @@ -13,12 +13,12 @@ please ensure the title has the following format: ## Bookkeeping ### Issue(s) -- tor-browser#12345 -- mullvad-browser#123 -- https://bugzilla.mozilla.org/show_bug.cgi?id=1234567 +- tor-browser#xxxxx +- mullvad-browser#xyz +- https://bugzilla.mozilla.org/show_bug.cgi?id=xxxxxxx ### Merge Request(s) -- tor-browser!123 +- tor-browser!xxxx ### Target Channels ===================================== .gitlab/merge_request_templates/Default.md ===================================== @@ -27,8 +27,8 @@ #### Target Channels -- [ ] **Alpha**: esr140-15.0 -- [ ] **Stable**: esr128-14.5 +- [ ] **Alpha**: rapid release, 16.0 +- [ ] **Stable**: esr140-15.0 - [ ] **Legacy**: esr115-13.5 ### Backporting ===================================== browser/components/resistfingerprinting/test/browser/browser_navigator_iframes.js ===================================== @@ -331,6 +331,13 @@ add_task(async () => { await simpleRFPTest(uri, testNavigator, expectedResults); }); +add_task(async () => { + expectedResults = structuredClone(allSpoofed); + await simpleRFPTest(uri, testNavigator, expectedResults, {}, [ + ["pdfjs.disabled", true], + ]); +}); + // In the below tests, we use the cross-origin domain as the base URI of a resource we fetch (on both the framer and framee) // so we can check that the HTTP header is as expected. ===================================== dom/base/Navigator.cpp ===================================== @@ -510,7 +510,11 @@ nsPluginArray* Navigator::GetPlugins(ErrorResult& aRv) { return mPlugins; } -bool Navigator::PdfViewerEnabled() { return !StaticPrefs::pdfjs_disabled(); } +bool Navigator::PdfViewerEnabled() { + return !StaticPrefs::pdfjs_disabled() || + nsContentUtils::ShouldResistFingerprinting(GetDocShell(), + RFPTarget::PdfjsSpoof); +} Permissions* Navigator::GetPermissions(ErrorResult& aRv) { if (!mWindow) { ===================================== dom/base/nsMimeTypeArray.cpp ===================================== @@ -79,7 +79,11 @@ void nsMimeTypeArray::GetSupportedNames(nsTArray<nsString>& retval) { } } -bool nsMimeTypeArray::ForceNoPlugins() { return StaticPrefs::pdfjs_disabled(); } +bool nsMimeTypeArray::ForceNoPlugins() { + return StaticPrefs::pdfjs_disabled() && + !nsContentUtils::ShouldResistFingerprinting( + mWindow ? mWindow->GetDocShell() : nullptr, RFPTarget::PdfjsSpoof); +} NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsMimeType, mPluginElement) ===================================== dom/base/nsPluginArray.cpp ===================================== @@ -97,7 +97,11 @@ void nsPluginArray::GetSupportedNames(nsTArray<nsString>& aRetval) { } } -bool nsPluginArray::ForceNoPlugins() { return StaticPrefs::pdfjs_disabled(); } +bool nsPluginArray::ForceNoPlugins() { + return StaticPrefs::pdfjs_disabled() && + !nsContentUtils::ShouldResistFingerprinting( + mWindow ? mWindow->GetDocShell() : nullptr, RFPTarget::PdfjsSpoof); +} NS_IMPL_CYCLE_COLLECTING_ADDREF(nsPluginArray) NS_IMPL_CYCLE_COLLECTING_RELEASE(nsPluginArray) ===================================== toolkit/components/resistfingerprinting/RFPTargets.inc ===================================== @@ -34,7 +34,8 @@ ITEM_VALUE(NavigatorHWConcurrency, 16) ITEM_VALUE(NavigatorOscpu, 17) ITEM_VALUE(NavigatorPlatform, 18) ITEM_VALUE(NavigatorUserAgent, 19) -// We no longer use PointerId, it can renamed and reused +// If the user disables PDFJS via a pref, we do not expose that to the web +ITEM_VALUE(PdfjsSpoof, 20) ITEM_VALUE(StreamVideoFacingMode, 21) ITEM_VALUE(JSDateTimeUTC, 22) ITEM_VALUE(JSMathFdlibm, 23) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/0dd468… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/0dd468… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-140.5.0esr-15.0-1] Bug 1999126: Hide the value of the pdfjs pref from being disabled when RFP is enabled r=timhuang
by Pier Angelo Vendrame (@pierov) 24 Nov '25

24 Nov '25
Pier Angelo Vendrame pushed to branch tor-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Tor Browser Commits: d2aece5a by Tom Ritter at 2025-11-24T09:42:57+01:00 Bug 1999126: Hide the value of the pdfjs pref from being disabled when RFP is enabled r=timhuang Differential Revision: https://phabricator.services.mozilla.com/D272930 - - - - - 5 changed files: - browser/components/resistfingerprinting/test/browser/browser_navigator_iframes.js - dom/base/Navigator.cpp - dom/base/nsMimeTypeArray.cpp - dom/base/nsPluginArray.cpp - toolkit/components/resistfingerprinting/RFPTargets.inc Changes: ===================================== browser/components/resistfingerprinting/test/browser/browser_navigator_iframes.js ===================================== @@ -331,6 +331,13 @@ add_task(async () => { await simpleRFPTest(uri, testNavigator, expectedResults); }); +add_task(async () => { + expectedResults = structuredClone(allSpoofed); + await simpleRFPTest(uri, testNavigator, expectedResults, {}, [ + ["pdfjs.disabled", true], + ]); +}); + // In the below tests, we use the cross-origin domain as the base URI of a resource we fetch (on both the framer and framee) // so we can check that the HTTP header is as expected. ===================================== dom/base/Navigator.cpp ===================================== @@ -510,7 +510,11 @@ nsPluginArray* Navigator::GetPlugins(ErrorResult& aRv) { return mPlugins; } -bool Navigator::PdfViewerEnabled() { return !StaticPrefs::pdfjs_disabled(); } +bool Navigator::PdfViewerEnabled() { + return !StaticPrefs::pdfjs_disabled() || + nsContentUtils::ShouldResistFingerprinting(GetDocShell(), + RFPTarget::PdfjsSpoof); +} Permissions* Navigator::GetPermissions(ErrorResult& aRv) { if (!mWindow) { ===================================== dom/base/nsMimeTypeArray.cpp ===================================== @@ -79,7 +79,11 @@ void nsMimeTypeArray::GetSupportedNames(nsTArray<nsString>& retval) { } } -bool nsMimeTypeArray::ForceNoPlugins() { return StaticPrefs::pdfjs_disabled(); } +bool nsMimeTypeArray::ForceNoPlugins() { + return StaticPrefs::pdfjs_disabled() && + !nsContentUtils::ShouldResistFingerprinting( + mWindow ? mWindow->GetDocShell() : nullptr, RFPTarget::PdfjsSpoof); +} NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsMimeType, mPluginElement) ===================================== dom/base/nsPluginArray.cpp ===================================== @@ -97,7 +97,11 @@ void nsPluginArray::GetSupportedNames(nsTArray<nsString>& aRetval) { } } -bool nsPluginArray::ForceNoPlugins() { return StaticPrefs::pdfjs_disabled(); } +bool nsPluginArray::ForceNoPlugins() { + return StaticPrefs::pdfjs_disabled() && + !nsContentUtils::ShouldResistFingerprinting( + mWindow ? mWindow->GetDocShell() : nullptr, RFPTarget::PdfjsSpoof); +} NS_IMPL_CYCLE_COLLECTING_ADDREF(nsPluginArray) NS_IMPL_CYCLE_COLLECTING_RELEASE(nsPluginArray) ===================================== toolkit/components/resistfingerprinting/RFPTargets.inc ===================================== @@ -34,7 +34,8 @@ ITEM_VALUE(NavigatorHWConcurrency, 16) ITEM_VALUE(NavigatorOscpu, 17) ITEM_VALUE(NavigatorPlatform, 18) ITEM_VALUE(NavigatorUserAgent, 19) -// We no longer use PointerId, it can renamed and reused +// If the user disables PDFJS via a pref, we do not expose that to the web +ITEM_VALUE(PdfjsSpoof, 20) ITEM_VALUE(StreamVideoFacingMode, 21) ITEM_VALUE(JSDateTimeUTC, 22) ITEM_VALUE(JSMathFdlibm, 23) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d2aece5… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d2aece5… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-140.5.0esr-15.0-1] fixup! BB 43615: Add Gitlab Issue and Merge Request templates
by Pier Angelo Vendrame (@pierov) 24 Nov '25

24 Nov '25
Pier Angelo Vendrame pushed to branch tor-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Tor Browser Commits: 83df098d by Pier Angelo Vendrame at 2025-11-24T09:42:56+01:00 fixup! BB 43615: Add Gitlab Issue and Merge Request templates Update GitLab templates. Avoid mentioning existing issues/MRs, and update the channels. - - - - - 4 changed files: - .gitlab/issue_templates/040 Feature.md - .gitlab/issue_templates/050 Backport.md - .gitlab/issue_templates/070 Uplift.md - .gitlab/merge_request_templates/Default.md Changes: ===================================== .gitlab/issue_templates/040 Feature.md ===================================== @@ -18,11 +18,11 @@ Provide an overview of the technical/implementation aspects of this feature ### Proposal <!-- Add links to associated proposal issues (or delete block) --> -- tor-browser#12345 +- tor-browser#xxxxx ### Design <!-- Add links to associated design issues (or delete block) --> -- tpo/UX/Design#123 +- tpo/UX/Design#xyz <!-- Do not edit beneath this line <3 --> ===================================== .gitlab/issue_templates/050 Backport.md ===================================== @@ -13,12 +13,12 @@ please ensure the title has the following format: ## Bookkeeping ### Issue(s) -- tor-browser#12345 -- mullvad-browser#123 -- https://bugzilla.mozilla.org/show_bug.cgi?id=1234567 +- tor-browser#xxxxx +- mullvad-browser#xyz +- https://bugzilla.mozilla.org/show_bug.cgi?id=xxxxxxx ### Merge Request(s) -- tor-browser!123 +- tor-browser!xxxx ### Target Channels ===================================== .gitlab/issue_templates/070 Uplift.md ===================================== @@ -9,11 +9,11 @@ This is an issue for tracking uplift of a patch-set to Firefox ## Book-keeping ### Gitlab Issue(s) -- tor-browser#12345 -- mullvad-browser#123 +- tor-browser#xxxxx +- mullvad-browser#xyz ### Merge Request(s) -- tor-browser!123 +- tor-browser!xyz ### Upstream Mozilla Issue(s): - https://bugzilla.mozilla.org/show_bug.cgi?id=12345 ===================================== .gitlab/merge_request_templates/Default.md ===================================== @@ -27,8 +27,8 @@ #### Target Channels -- [ ] **Alpha**: esr140-15.0 -- [ ] **Stable**: esr128-14.5 +- [ ] **Alpha**: rapid release, 16.0 +- [ ] **Stable**: esr140-15.0 - [ ] **Legacy**: esr115-13.5 ### Backporting View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/83df098… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/83df098… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • ...
  • 15
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.