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

September 2024

  • 1 participants
  • 250 discussions
[Git][tpo/applications/tor-browser][tor-browser-128.2.0esr-14.0-1] Bug 42220: Allow for more file types to be forced-inline.
by Pier Angelo Vendrame (@pierov) 18 Sep '24

18 Sep '24
Pier Angelo Vendrame pushed to branch tor-browser-128.2.0esr-14.0-1 at The Tor Project / Applications / Tor Browser Commits: 06801c8d by Pier Angelo Vendrame at 2024-09-18T15:21:28+02:00 Bug 42220: Allow for more file types to be forced-inline. Firefox allows to open some files in the browser without any confirmation, but this will result in a disk leak, because the file will be downloaded to the temporary directory first (and not deleted, in some cases). A preference allows PDFs to be opened without being downloaded to disk. So, we introduce a similar one to do the same for all the files that are set to be opened automatically in the browser. - - - - - 2 changed files: - modules/libpref/init/StaticPrefList.yaml - uriloader/base/nsURILoader.cpp Changes: ===================================== modules/libpref/init/StaticPrefList.yaml ===================================== @@ -1446,6 +1446,12 @@ value: false mirror: always +# tor-browser#42220 +- name: browser.download.ignore_content_disposition + type: bool + value: true + mirror: always + # See bug 1811830 - name: browser.download.force_save_internally_handled_attachments type: bool ===================================== uriloader/base/nsURILoader.cpp ===================================== @@ -292,34 +292,42 @@ nsresult nsDocumentOpenInfo::DispatchContent(nsIRequest* request) { LOG((" forceExternalHandling: %s", forceExternalHandling ? "yes" : "no")); if (forceExternalHandling && - mozilla::StaticPrefs::browser_download_open_pdf_attachments_inline()) { + (mozilla::StaticPrefs::browser_download_open_pdf_attachments_inline() || + mozilla::StaticPrefs::browser_download_ignore_content_disposition())) { // Check if this is a PDF which should be opened internally. We also handle // octet-streams that look like they might be PDFs based on their extension. bool isPDF = mContentType.LowerCaseEqualsASCII(APPLICATION_PDF); - if (!isPDF && - (mContentType.LowerCaseEqualsASCII(APPLICATION_OCTET_STREAM) || - mContentType.IsEmpty())) { + nsAutoCString ext; + if (mContentType.LowerCaseEqualsASCII(APPLICATION_OCTET_STREAM) || + mContentType.IsEmpty()) { nsAutoString flname; aChannel->GetContentDispositionFilename(flname); - isPDF = StringEndsWith(flname, u".pdf"_ns); - if (!isPDF) { + if (!flname.IsEmpty()) { + int32_t extStart = flname.RFindChar(u'.'); + if (extStart != kNotFound) { + CopyUTF16toUTF8(Substring(flname, extStart + 1), ext); + } + } + if (ext.IsEmpty() || (!mozilla::StaticPrefs:: + browser_download_ignore_content_disposition() && + !ext.EqualsLiteral("pdf"))) { nsCOMPtr<nsIURI> uri; aChannel->GetURI(getter_AddRefs(uri)); nsCOMPtr<nsIURL> url(do_QueryInterface(uri)); if (url) { - nsAutoCString ext; url->GetFileExtension(ext); - isPDF = ext.EqualsLiteral("pdf"); } } + isPDF = ext.EqualsLiteral("pdf"); } - // For a PDF, check if the preference is set that forces attachments to be - // opened inline. If so, treat it as a non-attachment by clearing - // 'forceExternalHandling' again. This allows it open a PDF directly - // instead of downloading it first. It may still end up being handled by - // a helper app depending anyway on the later checks. - if (isPDF) { + // One of the preferences to forces attachments to be opened inline is set. + // If so, treat it as a non-attachment by clearing 'forceExternalHandling' + // again. This allows it open a file directly instead of downloading it + // first. It may still end up being handled by a helper app depending anyway + // on the later checks. + if (mozilla::StaticPrefs::browser_download_ignore_content_disposition() || + isPDF) { nsCOMPtr<nsILoadInfo> loadInfo; aChannel->GetLoadInfo(getter_AddRefs(loadInfo)); @@ -328,8 +336,13 @@ nsresult nsDocumentOpenInfo::DispatchContent(nsIRequest* request) { nsCOMPtr<nsIMIMEService> mimeSvc( do_GetService(NS_MIMESERVICE_CONTRACTID)); NS_ENSURE_TRUE(mimeSvc, NS_ERROR_FAILURE); - mimeSvc->GetFromTypeAndExtension(nsLiteralCString(APPLICATION_PDF), ""_ns, - getter_AddRefs(mimeInfo)); + if (isPDF) { + mimeSvc->GetFromTypeAndExtension(nsLiteralCString(APPLICATION_PDF), + ""_ns, getter_AddRefs(mimeInfo)); + } else { + mimeSvc->GetFromTypeAndExtension(mContentType, ext, + getter_AddRefs(mimeInfo)); + } if (mimeInfo) { int32_t action = nsIMIMEInfo::saveToDisk; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/06801c8… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/06801c8… 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.2.0esr-14.0-1] Bug 1436462 - Use "Open in new private window" for bookmarks when in PBM. r=places-reviewers, mak
by morgan (@morgan) 17 Sep '24

17 Sep '24
morgan pushed to branch mullvad-browser-128.2.0esr-14.0-1 at The Tor Project / Applications / Mullvad Browser Commits: ffc25ae2 by Henry Wilkes at 2024-09-17T18:40:23+00:00 Bug 1436462 - Use &quot;Open in new private window&quot; for bookmarks when in PBM. r=places-reviewers,mak This makes the bookmark menu consistent with the &quot;File&quot; and context menu when using private browsing mode. We also share the same hide item logic for these &quot;open&quot; items in one place in PlacesUIUtils so that they can be shared between the two consumers (regular bookmarks and managed bookmarks). This ensures that the &quot;Open in container&quot; item if hidden for managed bookmarks in a private window. Differential Revision: https://phabricator.services.mozilla.com/D220120 - - - - - 5 changed files: - browser/components/places/PlacesUIUtils.sys.mjs - browser/components/places/content/controller.js - browser/components/places/content/placesContextMenu.inc.xhtml - browser/components/places/tests/browser/browser_bookmark_context_menu_contents.js - browser/components/places/tests/browser/head.js Changes: ===================================== browser/components/places/PlacesUIUtils.sys.mjs ===================================== @@ -1514,6 +1514,40 @@ export var PlacesUIUtils = { } }, + /** + * Determines whether the given "placesContext" menu item would open a link + * under some special conditions, but those special conditions cannot be met. + * + * @param {Element} item The menu or menu item to decide for. + * + * @returns {boolean} Whether the item is an "open" item that should be + * hidden. + */ + shouldHideOpenMenuItem(item) { + if ( + item.hasAttribute("hide-if-disabled-private-browsing") && + !lazy.PrivateBrowsingUtils.enabled + ) { + return true; + } + + if ( + item.hasAttribute("hide-if-private-browsing") && + lazy.PrivateBrowsingUtils.isWindowPrivate(item.ownerGlobal) + ) { + return true; + } + + if ( + item.hasAttribute("hide-if-usercontext-disabled") && + !Services.prefs.getBoolPref("privacy.userContext.enabled", false) + ) { + return true; + } + + return false; + }, + async managedPlacesContextShowing(event) { let menupopup = event.target; let document = menupopup.ownerDocument; @@ -1528,12 +1562,6 @@ export var PlacesUIUtils = { menupopup.triggerNode.menupopup ); } - let linkItems = [ - "placesContext_open:newtab", - "placesContext_open:newwindow", - "placesContext_openSeparator", - "placesContext_copy", - ]; // Hide everything. We'll unhide the things we need. Array.from(menupopup.children).forEach(function (child) { child.hidden = true; @@ -1555,12 +1583,18 @@ export var PlacesUIUtils = { openContainerInTabs_menuitem.disabled = !openContainerInTabs; openContainerInTabs_menuitem.hidden = false; } else { - linkItems.forEach(id => (document.getElementById(id).hidden = false)); - document.getElementById("placesContext_open:newprivatewindow").hidden = - lazy.PrivateBrowsingUtils.isWindowPrivate(window) || - !lazy.PrivateBrowsingUtils.enabled; - document.getElementById("placesContext_open:newcontainertab").hidden = - !Services.prefs.getBoolPref("privacy.userContext.enabled", false); + for (let id of [ + "placesContext_open:newtab", + "placesContext_open:newcontainertab", + "placesContext_open:newwindow", + "placesContext_open:newprivatewindow", + ]) { + let item = document.getElementById(id); + item.hidden = this.shouldHideOpenMenuItem(item); + } + for (let id of ["placesContext_openSeparator", "placesContext_copy"]) { + document.getElementById(id).hidden = false; + } } event.target.ownerGlobal.updateCommands("places"); ===================================== browser/components/places/content/controller.js ===================================== @@ -465,17 +465,7 @@ PlacesController.prototype = { * and the item can be displayed, false otherwise. */ _shouldShowMenuItem(aMenuItem, aMetaData) { - if ( - aMenuItem.hasAttribute("hide-if-private-browsing") && - !PrivateBrowsingUtils.enabled - ) { - return false; - } - - if ( - aMenuItem.hasAttribute("hide-if-usercontext-disabled") && - !Services.prefs.getBoolPref("privacy.userContext.enabled", false) - ) { + if (PlacesUIUtils.shouldHideOpenMenuItem(aMenuItem)) { return false; } @@ -566,8 +556,12 @@ PlacesController.prototype = { * menuitem when there's no insertion point. An insertion point represents * a point in the view where a new item can be inserted. * 9) The boolean `hide-if-private-browsing` attribute may be set to hide a - * menuitem in private browsing mode - * 10) The boolean `hide-if-single-click-opens` attribute may be set to hide a + * menuitem in private browsing mode. + * 10) The boolean `hide-if-disabled-private-browsing` attribute may be set to + * hide a menuitem if private browsing is not enabled. + * 11) The boolean `hide-if-usercontext-disabled` attribute may be set to + * hide a menuitem if containers are disabled. + * 12) The boolean `hide-if-single-click-opens` attribute may be set to hide a * menuitem in views opening entries with a single click. * * @param {object} aPopup @@ -593,9 +587,6 @@ PlacesController.prototype = { item.getAttribute("hide-if-no-insertion-point") == "true" && noIp && !(ip && ip.isTag && item.id == "placesContext_paste"); - let hideIfPrivate = - item.getAttribute("hide-if-private-browsing") == "true" && - PrivateBrowsingUtils.isWindowPrivate(window); // Hide `Open` if the primary action on click is opening. let hideIfSingleClickOpens = item.getAttribute("hide-if-single-click-opens") == "true" && @@ -610,7 +601,6 @@ PlacesController.prototype = { let shouldHideItem = hideIfNoIP || - hideIfPrivate || hideIfSingleClickOpens || hideIfNotSearch || !this._shouldShowMenuItem(item, metadata); ===================================== browser/components/places/content/placesContextMenu.inc.xhtml ===================================== @@ -52,13 +52,14 @@ command="placesCmd_open:window" data-l10n-id="places-open-in-window" selection-type="single" - node-type="link"/> + node-type="link" + hide-if-private-browsing="true"/> <menuitem id="placesContext_open:newprivatewindow" command="placesCmd_open:privatewindow" data-l10n-id="places-open-in-private-window" selection-type="single" node-type="link" - hide-if-private-browsing="true"/> + hide-if-disabled-private-browsing="true"/> <menuitem id="placesContext_showInFolder" data-l10n-id="places-show-in-folder" command="placesCmd_showInFolder" ===================================== browser/components/places/tests/browser/browser_bookmark_context_menu_contents.js ===================================== @@ -814,3 +814,118 @@ add_task(async function test_library_noselection_contextmenu_contents() { ); }); }); + +add_task(async function test_private_browsing_window() { + // Test the context menu when in a private browsing window. + + let win = await BrowserTestUtils.openNewBrowserWindow({ + private: true, + }); + + let optionItems = [ + "placesContext_open:newtab", + // Hidden in private window "placesContext_open:newcontainertab" + // Hidden in private window "placesContext_open:newwindow" + "placesContext_open:newprivatewindow", + "placesContext_show_bookmark:info", + "placesContext_deleteBookmark", + "placesContext_cut", + "placesContext_copy", + "placesContext_paste_group", + "placesContext_new:bookmark", + "placesContext_new:folder", + "placesContext_new:separator", + ]; + + // Test toolbar. + await checkContextMenu( + async function () { + let toolbarBookmark = await PlacesUtils.bookmarks.insert({ + parentGuid: PlacesUtils.bookmarks.toolbarGuid, + title: "Bookmark Title", + url: TEST_URL, + }); + + let toolbarNode = getToolbarNodeForItemGuid(toolbarBookmark.guid, win); + + let contextMenu = win.document.getElementById("placesContext"); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + + EventUtils.synthesizeMouseAtCenter( + toolbarNode, + { button: 2, type: "contextmenu" }, + win + ); + await popupShownPromise; + return contextMenu; + }, + [ + ...optionItems, + "placesContext_showAllBookmarks", + "toggle_PersonalToolbar", + "show-other-bookmarks_PersonalToolbar", + ], + win.document + ); + + // Test side bar. + await withSidebarTree( + "bookmarks", + async tree => { + await checkContextMenu( + async bookmark => { + tree.selectItems([bookmark.guid]); + + let contextMenu = + win.SidebarController.browser.contentDocument.getElementById( + "placesContext" + ); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + synthesizeClickOnSelectedTreeCell(tree, { type: "contextmenu" }, win); + await popupShownPromise; + return contextMenu; + }, + optionItems, + win.SidebarController.browser.contentDocument + ); + }, + win + ); + + // Test library window opened when using private browsing window. + optionItems.splice( + optionItems.indexOf("placesContext_show_bookmark:info"), + 1 + ); + optionItems.splice(0, 0, "placesContext_open"); + + await withLibraryWindow( + "BookmarksToolbar", + async ({ right }) => { + await checkContextMenu( + async bookmark => { + let contextMenu = right.ownerDocument.getElementById("placesContext"); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + right.selectItems([bookmark.guid]); + synthesizeClickOnSelectedTreeCell(right, { type: "contextmenu" }); + await popupShownPromise; + return contextMenu; + }, + optionItems, + right.ownerDocument + ); + }, + win + ); + + await BrowserTestUtils.closeWindow(win); +}); ===================================== browser/components/places/tests/browser/head.js ===================================== @@ -6,8 +6,8 @@ ChromeUtils.defineLazyGetter(this, "gFluentStrings", function () { return new Localization(["branding/brand.ftl", "browser/browser.ftl"], true); }); -function openLibrary(callback, aLeftPaneRoot) { - let library = window.openDialog( +function openLibrary(callback, aLeftPaneRoot, win = window) { + let library = win.openDialog( "chrome://browser/content/places/places.xhtml", "", "chrome,toolbar=yes,dialog=no,resizable", @@ -27,10 +27,12 @@ function openLibrary(callback, aLeftPaneRoot) { * * @param {object} aLeftPaneRoot * Hierarchy to open and select in the left pane. + * @param {Window} [win] + * The window to use to open the library. * @returns {Promise} * Resolves to the handle to the library window. */ -function promiseLibrary(aLeftPaneRoot) { +function promiseLibrary(aLeftPaneRoot, win = window) { return new Promise(resolve => { let library = Services.wm.getMostRecentWindow("Places:Organizer"); if (library && !library.closed) { @@ -42,7 +44,7 @@ function promiseLibrary(aLeftPaneRoot) { checkLibraryPaneVisibility(library, aLeftPaneRoot); resolve(library); } else { - openLibrary(resolve, aLeftPaneRoot); + openLibrary(resolve, aLeftPaneRoot, win); } }); } @@ -380,9 +382,11 @@ function fillBookmarkTextField(id, text, win, blur = true) { * @param {Function} taskFn * The task to execute once the sidebar is ready. Will get the Places * tree view as input. + * @param {Window} [win] + * The window to open the sidebar in, else uses the default window. */ -var withSidebarTree = async function (type, taskFn) { - let sidebar = document.getElementById("sidebar"); +var withSidebarTree = async function (type, taskFn, win = window) { + let sidebar = win.document.getElementById("sidebar"); info("withSidebarTree: waiting sidebar load"); let sidebarLoadedPromise = new Promise(resolve => { sidebar.addEventListener( @@ -395,7 +399,7 @@ var withSidebarTree = async function (type, taskFn) { }); let sidebarId = type == "bookmarks" ? "viewBookmarksSidebar" : "viewHistorySidebar"; - SidebarController.show(sidebarId); + win.SidebarController.show(sidebarId); await sidebarLoadedPromise; let treeId = type == "bookmarks" ? "bookmarks-view" : "historyTree"; @@ -406,7 +410,7 @@ var withSidebarTree = async function (type, taskFn) { try { await taskFn(tree); } finally { - SidebarController.hide(); + win.SidebarController.hide(); } }; @@ -419,9 +423,11 @@ var withSidebarTree = async function (type, taskFn) { * @param {Function} taskFn * The task to execute once the Library is ready. * Will get { left, right } trees as argument. + * @param {Window} [win] + * The window to use to open the library. */ -var withLibraryWindow = async function (hierarchy, taskFn) { - let library = await promiseLibrary(hierarchy); +var withLibraryWindow = async function (hierarchy, taskFn, win = window) { + let library = await promiseLibrary(hierarchy, win); let left = library.document.getElementById("placesList"); let right = library.document.getElementById("placeContent"); info("withLibrary: executing the task"); @@ -477,8 +483,8 @@ function promisePopupHidden(popup) { } // Identify a bookmark node in the Bookmarks Toolbar by its guid. -function getToolbarNodeForItemGuid(itemGuid) { - let children = document.getElementById("PlacesToolbarItems").childNodes; +function getToolbarNodeForItemGuid(itemGuid, win = window) { + let children = win.document.getElementById("PlacesToolbarItems").childNodes; for (let child of children) { if (itemGuid === child._placesNode.bookmarkGuid) { return child; View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/ffc… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/ffc… 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.2.0esr-14.0-1] Bug 1436462 - Use "Open in new private window" for bookmarks when in PBM. r=places-reviewers, mak
by morgan (@morgan) 17 Sep '24

17 Sep '24
morgan pushed to branch base-browser-128.2.0esr-14.0-1 at The Tor Project / Applications / Tor Browser Commits: 9cd3c30f by Henry Wilkes at 2024-09-17T18:39:47+00:00 Bug 1436462 - Use &quot;Open in new private window&quot; for bookmarks when in PBM. r=places-reviewers,mak This makes the bookmark menu consistent with the &quot;File&quot; and context menu when using private browsing mode. We also share the same hide item logic for these &quot;open&quot; items in one place in PlacesUIUtils so that they can be shared between the two consumers (regular bookmarks and managed bookmarks). This ensures that the &quot;Open in container&quot; item if hidden for managed bookmarks in a private window. Differential Revision: https://phabricator.services.mozilla.com/D220120 - - - - - 5 changed files: - browser/components/places/PlacesUIUtils.sys.mjs - browser/components/places/content/controller.js - browser/components/places/content/placesContextMenu.inc.xhtml - browser/components/places/tests/browser/browser_bookmark_context_menu_contents.js - browser/components/places/tests/browser/head.js Changes: ===================================== browser/components/places/PlacesUIUtils.sys.mjs ===================================== @@ -1514,6 +1514,40 @@ export var PlacesUIUtils = { } }, + /** + * Determines whether the given "placesContext" menu item would open a link + * under some special conditions, but those special conditions cannot be met. + * + * @param {Element} item The menu or menu item to decide for. + * + * @returns {boolean} Whether the item is an "open" item that should be + * hidden. + */ + shouldHideOpenMenuItem(item) { + if ( + item.hasAttribute("hide-if-disabled-private-browsing") && + !lazy.PrivateBrowsingUtils.enabled + ) { + return true; + } + + if ( + item.hasAttribute("hide-if-private-browsing") && + lazy.PrivateBrowsingUtils.isWindowPrivate(item.ownerGlobal) + ) { + return true; + } + + if ( + item.hasAttribute("hide-if-usercontext-disabled") && + !Services.prefs.getBoolPref("privacy.userContext.enabled", false) + ) { + return true; + } + + return false; + }, + async managedPlacesContextShowing(event) { let menupopup = event.target; let document = menupopup.ownerDocument; @@ -1528,12 +1562,6 @@ export var PlacesUIUtils = { menupopup.triggerNode.menupopup ); } - let linkItems = [ - "placesContext_open:newtab", - "placesContext_open:newwindow", - "placesContext_openSeparator", - "placesContext_copy", - ]; // Hide everything. We'll unhide the things we need. Array.from(menupopup.children).forEach(function (child) { child.hidden = true; @@ -1555,12 +1583,18 @@ export var PlacesUIUtils = { openContainerInTabs_menuitem.disabled = !openContainerInTabs; openContainerInTabs_menuitem.hidden = false; } else { - linkItems.forEach(id => (document.getElementById(id).hidden = false)); - document.getElementById("placesContext_open:newprivatewindow").hidden = - lazy.PrivateBrowsingUtils.isWindowPrivate(window) || - !lazy.PrivateBrowsingUtils.enabled; - document.getElementById("placesContext_open:newcontainertab").hidden = - !Services.prefs.getBoolPref("privacy.userContext.enabled", false); + for (let id of [ + "placesContext_open:newtab", + "placesContext_open:newcontainertab", + "placesContext_open:newwindow", + "placesContext_open:newprivatewindow", + ]) { + let item = document.getElementById(id); + item.hidden = this.shouldHideOpenMenuItem(item); + } + for (let id of ["placesContext_openSeparator", "placesContext_copy"]) { + document.getElementById(id).hidden = false; + } } event.target.ownerGlobal.updateCommands("places"); ===================================== browser/components/places/content/controller.js ===================================== @@ -465,17 +465,7 @@ PlacesController.prototype = { * and the item can be displayed, false otherwise. */ _shouldShowMenuItem(aMenuItem, aMetaData) { - if ( - aMenuItem.hasAttribute("hide-if-private-browsing") && - !PrivateBrowsingUtils.enabled - ) { - return false; - } - - if ( - aMenuItem.hasAttribute("hide-if-usercontext-disabled") && - !Services.prefs.getBoolPref("privacy.userContext.enabled", false) - ) { + if (PlacesUIUtils.shouldHideOpenMenuItem(aMenuItem)) { return false; } @@ -566,8 +556,12 @@ PlacesController.prototype = { * menuitem when there's no insertion point. An insertion point represents * a point in the view where a new item can be inserted. * 9) The boolean `hide-if-private-browsing` attribute may be set to hide a - * menuitem in private browsing mode - * 10) The boolean `hide-if-single-click-opens` attribute may be set to hide a + * menuitem in private browsing mode. + * 10) The boolean `hide-if-disabled-private-browsing` attribute may be set to + * hide a menuitem if private browsing is not enabled. + * 11) The boolean `hide-if-usercontext-disabled` attribute may be set to + * hide a menuitem if containers are disabled. + * 12) The boolean `hide-if-single-click-opens` attribute may be set to hide a * menuitem in views opening entries with a single click. * * @param {object} aPopup @@ -593,9 +587,6 @@ PlacesController.prototype = { item.getAttribute("hide-if-no-insertion-point") == "true" && noIp && !(ip && ip.isTag && item.id == "placesContext_paste"); - let hideIfPrivate = - item.getAttribute("hide-if-private-browsing") == "true" && - PrivateBrowsingUtils.isWindowPrivate(window); // Hide `Open` if the primary action on click is opening. let hideIfSingleClickOpens = item.getAttribute("hide-if-single-click-opens") == "true" && @@ -610,7 +601,6 @@ PlacesController.prototype = { let shouldHideItem = hideIfNoIP || - hideIfPrivate || hideIfSingleClickOpens || hideIfNotSearch || !this._shouldShowMenuItem(item, metadata); ===================================== browser/components/places/content/placesContextMenu.inc.xhtml ===================================== @@ -52,13 +52,14 @@ command="placesCmd_open:window" data-l10n-id="places-open-in-window" selection-type="single" - node-type="link"/> + node-type="link" + hide-if-private-browsing="true"/> <menuitem id="placesContext_open:newprivatewindow" command="placesCmd_open:privatewindow" data-l10n-id="places-open-in-private-window" selection-type="single" node-type="link" - hide-if-private-browsing="true"/> + hide-if-disabled-private-browsing="true"/> <menuitem id="placesContext_showInFolder" data-l10n-id="places-show-in-folder" command="placesCmd_showInFolder" ===================================== browser/components/places/tests/browser/browser_bookmark_context_menu_contents.js ===================================== @@ -814,3 +814,118 @@ add_task(async function test_library_noselection_contextmenu_contents() { ); }); }); + +add_task(async function test_private_browsing_window() { + // Test the context menu when in a private browsing window. + + let win = await BrowserTestUtils.openNewBrowserWindow({ + private: true, + }); + + let optionItems = [ + "placesContext_open:newtab", + // Hidden in private window "placesContext_open:newcontainertab" + // Hidden in private window "placesContext_open:newwindow" + "placesContext_open:newprivatewindow", + "placesContext_show_bookmark:info", + "placesContext_deleteBookmark", + "placesContext_cut", + "placesContext_copy", + "placesContext_paste_group", + "placesContext_new:bookmark", + "placesContext_new:folder", + "placesContext_new:separator", + ]; + + // Test toolbar. + await checkContextMenu( + async function () { + let toolbarBookmark = await PlacesUtils.bookmarks.insert({ + parentGuid: PlacesUtils.bookmarks.toolbarGuid, + title: "Bookmark Title", + url: TEST_URL, + }); + + let toolbarNode = getToolbarNodeForItemGuid(toolbarBookmark.guid, win); + + let contextMenu = win.document.getElementById("placesContext"); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + + EventUtils.synthesizeMouseAtCenter( + toolbarNode, + { button: 2, type: "contextmenu" }, + win + ); + await popupShownPromise; + return contextMenu; + }, + [ + ...optionItems, + "placesContext_showAllBookmarks", + "toggle_PersonalToolbar", + "show-other-bookmarks_PersonalToolbar", + ], + win.document + ); + + // Test side bar. + await withSidebarTree( + "bookmarks", + async tree => { + await checkContextMenu( + async bookmark => { + tree.selectItems([bookmark.guid]); + + let contextMenu = + win.SidebarController.browser.contentDocument.getElementById( + "placesContext" + ); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + synthesizeClickOnSelectedTreeCell(tree, { type: "contextmenu" }, win); + await popupShownPromise; + return contextMenu; + }, + optionItems, + win.SidebarController.browser.contentDocument + ); + }, + win + ); + + // Test library window opened when using private browsing window. + optionItems.splice( + optionItems.indexOf("placesContext_show_bookmark:info"), + 1 + ); + optionItems.splice(0, 0, "placesContext_open"); + + await withLibraryWindow( + "BookmarksToolbar", + async ({ right }) => { + await checkContextMenu( + async bookmark => { + let contextMenu = right.ownerDocument.getElementById("placesContext"); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + right.selectItems([bookmark.guid]); + synthesizeClickOnSelectedTreeCell(right, { type: "contextmenu" }); + await popupShownPromise; + return contextMenu; + }, + optionItems, + right.ownerDocument + ); + }, + win + ); + + await BrowserTestUtils.closeWindow(win); +}); ===================================== browser/components/places/tests/browser/head.js ===================================== @@ -6,8 +6,8 @@ ChromeUtils.defineLazyGetter(this, "gFluentStrings", function () { return new Localization(["branding/brand.ftl", "browser/browser.ftl"], true); }); -function openLibrary(callback, aLeftPaneRoot) { - let library = window.openDialog( +function openLibrary(callback, aLeftPaneRoot, win = window) { + let library = win.openDialog( "chrome://browser/content/places/places.xhtml", "", "chrome,toolbar=yes,dialog=no,resizable", @@ -27,10 +27,12 @@ function openLibrary(callback, aLeftPaneRoot) { * * @param {object} aLeftPaneRoot * Hierarchy to open and select in the left pane. + * @param {Window} [win] + * The window to use to open the library. * @returns {Promise} * Resolves to the handle to the library window. */ -function promiseLibrary(aLeftPaneRoot) { +function promiseLibrary(aLeftPaneRoot, win = window) { return new Promise(resolve => { let library = Services.wm.getMostRecentWindow("Places:Organizer"); if (library && !library.closed) { @@ -42,7 +44,7 @@ function promiseLibrary(aLeftPaneRoot) { checkLibraryPaneVisibility(library, aLeftPaneRoot); resolve(library); } else { - openLibrary(resolve, aLeftPaneRoot); + openLibrary(resolve, aLeftPaneRoot, win); } }); } @@ -380,9 +382,11 @@ function fillBookmarkTextField(id, text, win, blur = true) { * @param {Function} taskFn * The task to execute once the sidebar is ready. Will get the Places * tree view as input. + * @param {Window} [win] + * The window to open the sidebar in, else uses the default window. */ -var withSidebarTree = async function (type, taskFn) { - let sidebar = document.getElementById("sidebar"); +var withSidebarTree = async function (type, taskFn, win = window) { + let sidebar = win.document.getElementById("sidebar"); info("withSidebarTree: waiting sidebar load"); let sidebarLoadedPromise = new Promise(resolve => { sidebar.addEventListener( @@ -395,7 +399,7 @@ var withSidebarTree = async function (type, taskFn) { }); let sidebarId = type == "bookmarks" ? "viewBookmarksSidebar" : "viewHistorySidebar"; - SidebarController.show(sidebarId); + win.SidebarController.show(sidebarId); await sidebarLoadedPromise; let treeId = type == "bookmarks" ? "bookmarks-view" : "historyTree"; @@ -406,7 +410,7 @@ var withSidebarTree = async function (type, taskFn) { try { await taskFn(tree); } finally { - SidebarController.hide(); + win.SidebarController.hide(); } }; @@ -419,9 +423,11 @@ var withSidebarTree = async function (type, taskFn) { * @param {Function} taskFn * The task to execute once the Library is ready. * Will get { left, right } trees as argument. + * @param {Window} [win] + * The window to use to open the library. */ -var withLibraryWindow = async function (hierarchy, taskFn) { - let library = await promiseLibrary(hierarchy); +var withLibraryWindow = async function (hierarchy, taskFn, win = window) { + let library = await promiseLibrary(hierarchy, win); let left = library.document.getElementById("placesList"); let right = library.document.getElementById("placeContent"); info("withLibrary: executing the task"); @@ -477,8 +483,8 @@ function promisePopupHidden(popup) { } // Identify a bookmark node in the Bookmarks Toolbar by its guid. -function getToolbarNodeForItemGuid(itemGuid) { - let children = document.getElementById("PlacesToolbarItems").childNodes; +function getToolbarNodeForItemGuid(itemGuid, win = window) { + let children = win.document.getElementById("PlacesToolbarItems").childNodes; for (let child of children) { if (itemGuid === child._placesNode.bookmarkGuid) { return child; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9cd3c30… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9cd3c30… 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.2.0esr-14.0-1] Bug 1436462 - Use "Open in new private window" for bookmarks when in PBM. r=places-reviewers, mak
by morgan (@morgan) 17 Sep '24

17 Sep '24
morgan pushed to branch tor-browser-128.2.0esr-14.0-1 at The Tor Project / Applications / Tor Browser Commits: 1d54c76d by Henry Wilkes at 2024-09-16T21:45:38+00:00 Bug 1436462 - Use &quot;Open in new private window&quot; for bookmarks when in PBM. r=places-reviewers,mak This makes the bookmark menu consistent with the &quot;File&quot; and context menu when using private browsing mode. We also share the same hide item logic for these &quot;open&quot; items in one place in PlacesUIUtils so that they can be shared between the two consumers (regular bookmarks and managed bookmarks). This ensures that the &quot;Open in container&quot; item if hidden for managed bookmarks in a private window. Differential Revision: https://phabricator.services.mozilla.com/D220120 - - - - - 5 changed files: - browser/components/places/PlacesUIUtils.sys.mjs - browser/components/places/content/controller.js - browser/components/places/content/placesContextMenu.inc.xhtml - browser/components/places/tests/browser/browser_bookmark_context_menu_contents.js - browser/components/places/tests/browser/head.js Changes: ===================================== browser/components/places/PlacesUIUtils.sys.mjs ===================================== @@ -1514,6 +1514,40 @@ export var PlacesUIUtils = { } }, + /** + * Determines whether the given "placesContext" menu item would open a link + * under some special conditions, but those special conditions cannot be met. + * + * @param {Element} item The menu or menu item to decide for. + * + * @returns {boolean} Whether the item is an "open" item that should be + * hidden. + */ + shouldHideOpenMenuItem(item) { + if ( + item.hasAttribute("hide-if-disabled-private-browsing") && + !lazy.PrivateBrowsingUtils.enabled + ) { + return true; + } + + if ( + item.hasAttribute("hide-if-private-browsing") && + lazy.PrivateBrowsingUtils.isWindowPrivate(item.ownerGlobal) + ) { + return true; + } + + if ( + item.hasAttribute("hide-if-usercontext-disabled") && + !Services.prefs.getBoolPref("privacy.userContext.enabled", false) + ) { + return true; + } + + return false; + }, + async managedPlacesContextShowing(event) { let menupopup = event.target; let document = menupopup.ownerDocument; @@ -1528,12 +1562,6 @@ export var PlacesUIUtils = { menupopup.triggerNode.menupopup ); } - let linkItems = [ - "placesContext_open:newtab", - "placesContext_open:newwindow", - "placesContext_openSeparator", - "placesContext_copy", - ]; // Hide everything. We'll unhide the things we need. Array.from(menupopup.children).forEach(function (child) { child.hidden = true; @@ -1555,12 +1583,18 @@ export var PlacesUIUtils = { openContainerInTabs_menuitem.disabled = !openContainerInTabs; openContainerInTabs_menuitem.hidden = false; } else { - linkItems.forEach(id => (document.getElementById(id).hidden = false)); - document.getElementById("placesContext_open:newprivatewindow").hidden = - lazy.PrivateBrowsingUtils.isWindowPrivate(window) || - !lazy.PrivateBrowsingUtils.enabled; - document.getElementById("placesContext_open:newcontainertab").hidden = - !Services.prefs.getBoolPref("privacy.userContext.enabled", false); + for (let id of [ + "placesContext_open:newtab", + "placesContext_open:newcontainertab", + "placesContext_open:newwindow", + "placesContext_open:newprivatewindow", + ]) { + let item = document.getElementById(id); + item.hidden = this.shouldHideOpenMenuItem(item); + } + for (let id of ["placesContext_openSeparator", "placesContext_copy"]) { + document.getElementById(id).hidden = false; + } } event.target.ownerGlobal.updateCommands("places"); ===================================== browser/components/places/content/controller.js ===================================== @@ -465,17 +465,7 @@ PlacesController.prototype = { * and the item can be displayed, false otherwise. */ _shouldShowMenuItem(aMenuItem, aMetaData) { - if ( - aMenuItem.hasAttribute("hide-if-private-browsing") && - !PrivateBrowsingUtils.enabled - ) { - return false; - } - - if ( - aMenuItem.hasAttribute("hide-if-usercontext-disabled") && - !Services.prefs.getBoolPref("privacy.userContext.enabled", false) - ) { + if (PlacesUIUtils.shouldHideOpenMenuItem(aMenuItem)) { return false; } @@ -566,8 +556,12 @@ PlacesController.prototype = { * menuitem when there's no insertion point. An insertion point represents * a point in the view where a new item can be inserted. * 9) The boolean `hide-if-private-browsing` attribute may be set to hide a - * menuitem in private browsing mode - * 10) The boolean `hide-if-single-click-opens` attribute may be set to hide a + * menuitem in private browsing mode. + * 10) The boolean `hide-if-disabled-private-browsing` attribute may be set to + * hide a menuitem if private browsing is not enabled. + * 11) The boolean `hide-if-usercontext-disabled` attribute may be set to + * hide a menuitem if containers are disabled. + * 12) The boolean `hide-if-single-click-opens` attribute may be set to hide a * menuitem in views opening entries with a single click. * * @param {object} aPopup @@ -593,9 +587,6 @@ PlacesController.prototype = { item.getAttribute("hide-if-no-insertion-point") == "true" && noIp && !(ip && ip.isTag && item.id == "placesContext_paste"); - let hideIfPrivate = - item.getAttribute("hide-if-private-browsing") == "true" && - PrivateBrowsingUtils.isWindowPrivate(window); // Hide `Open` if the primary action on click is opening. let hideIfSingleClickOpens = item.getAttribute("hide-if-single-click-opens") == "true" && @@ -610,7 +601,6 @@ PlacesController.prototype = { let shouldHideItem = hideIfNoIP || - hideIfPrivate || hideIfSingleClickOpens || hideIfNotSearch || !this._shouldShowMenuItem(item, metadata); ===================================== browser/components/places/content/placesContextMenu.inc.xhtml ===================================== @@ -52,13 +52,14 @@ command="placesCmd_open:window" data-l10n-id="places-open-in-window" selection-type="single" - node-type="link"/> + node-type="link" + hide-if-private-browsing="true"/> <menuitem id="placesContext_open:newprivatewindow" command="placesCmd_open:privatewindow" data-l10n-id="places-open-in-private-window" selection-type="single" node-type="link" - hide-if-private-browsing="true"/> + hide-if-disabled-private-browsing="true"/> <menuitem id="placesContext_showInFolder" data-l10n-id="places-show-in-folder" command="placesCmd_showInFolder" ===================================== browser/components/places/tests/browser/browser_bookmark_context_menu_contents.js ===================================== @@ -814,3 +814,118 @@ add_task(async function test_library_noselection_contextmenu_contents() { ); }); }); + +add_task(async function test_private_browsing_window() { + // Test the context menu when in a private browsing window. + + let win = await BrowserTestUtils.openNewBrowserWindow({ + private: true, + }); + + let optionItems = [ + "placesContext_open:newtab", + // Hidden in private window "placesContext_open:newcontainertab" + // Hidden in private window "placesContext_open:newwindow" + "placesContext_open:newprivatewindow", + "placesContext_show_bookmark:info", + "placesContext_deleteBookmark", + "placesContext_cut", + "placesContext_copy", + "placesContext_paste_group", + "placesContext_new:bookmark", + "placesContext_new:folder", + "placesContext_new:separator", + ]; + + // Test toolbar. + await checkContextMenu( + async function () { + let toolbarBookmark = await PlacesUtils.bookmarks.insert({ + parentGuid: PlacesUtils.bookmarks.toolbarGuid, + title: "Bookmark Title", + url: TEST_URL, + }); + + let toolbarNode = getToolbarNodeForItemGuid(toolbarBookmark.guid, win); + + let contextMenu = win.document.getElementById("placesContext"); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + + EventUtils.synthesizeMouseAtCenter( + toolbarNode, + { button: 2, type: "contextmenu" }, + win + ); + await popupShownPromise; + return contextMenu; + }, + [ + ...optionItems, + "placesContext_showAllBookmarks", + "toggle_PersonalToolbar", + "show-other-bookmarks_PersonalToolbar", + ], + win.document + ); + + // Test side bar. + await withSidebarTree( + "bookmarks", + async tree => { + await checkContextMenu( + async bookmark => { + tree.selectItems([bookmark.guid]); + + let contextMenu = + win.SidebarController.browser.contentDocument.getElementById( + "placesContext" + ); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + synthesizeClickOnSelectedTreeCell(tree, { type: "contextmenu" }, win); + await popupShownPromise; + return contextMenu; + }, + optionItems, + win.SidebarController.browser.contentDocument + ); + }, + win + ); + + // Test library window opened when using private browsing window. + optionItems.splice( + optionItems.indexOf("placesContext_show_bookmark:info"), + 1 + ); + optionItems.splice(0, 0, "placesContext_open"); + + await withLibraryWindow( + "BookmarksToolbar", + async ({ right }) => { + await checkContextMenu( + async bookmark => { + let contextMenu = right.ownerDocument.getElementById("placesContext"); + let popupShownPromise = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + right.selectItems([bookmark.guid]); + synthesizeClickOnSelectedTreeCell(right, { type: "contextmenu" }); + await popupShownPromise; + return contextMenu; + }, + optionItems, + right.ownerDocument + ); + }, + win + ); + + await BrowserTestUtils.closeWindow(win); +}); ===================================== browser/components/places/tests/browser/head.js ===================================== @@ -6,8 +6,8 @@ ChromeUtils.defineLazyGetter(this, "gFluentStrings", function () { return new Localization(["branding/brand.ftl", "browser/browser.ftl"], true); }); -function openLibrary(callback, aLeftPaneRoot) { - let library = window.openDialog( +function openLibrary(callback, aLeftPaneRoot, win = window) { + let library = win.openDialog( "chrome://browser/content/places/places.xhtml", "", "chrome,toolbar=yes,dialog=no,resizable", @@ -27,10 +27,12 @@ function openLibrary(callback, aLeftPaneRoot) { * * @param {object} aLeftPaneRoot * Hierarchy to open and select in the left pane. + * @param {Window} [win] + * The window to use to open the library. * @returns {Promise} * Resolves to the handle to the library window. */ -function promiseLibrary(aLeftPaneRoot) { +function promiseLibrary(aLeftPaneRoot, win = window) { return new Promise(resolve => { let library = Services.wm.getMostRecentWindow("Places:Organizer"); if (library && !library.closed) { @@ -42,7 +44,7 @@ function promiseLibrary(aLeftPaneRoot) { checkLibraryPaneVisibility(library, aLeftPaneRoot); resolve(library); } else { - openLibrary(resolve, aLeftPaneRoot); + openLibrary(resolve, aLeftPaneRoot, win); } }); } @@ -380,9 +382,11 @@ function fillBookmarkTextField(id, text, win, blur = true) { * @param {Function} taskFn * The task to execute once the sidebar is ready. Will get the Places * tree view as input. + * @param {Window} [win] + * The window to open the sidebar in, else uses the default window. */ -var withSidebarTree = async function (type, taskFn) { - let sidebar = document.getElementById("sidebar"); +var withSidebarTree = async function (type, taskFn, win = window) { + let sidebar = win.document.getElementById("sidebar"); info("withSidebarTree: waiting sidebar load"); let sidebarLoadedPromise = new Promise(resolve => { sidebar.addEventListener( @@ -395,7 +399,7 @@ var withSidebarTree = async function (type, taskFn) { }); let sidebarId = type == "bookmarks" ? "viewBookmarksSidebar" : "viewHistorySidebar"; - SidebarController.show(sidebarId); + win.SidebarController.show(sidebarId); await sidebarLoadedPromise; let treeId = type == "bookmarks" ? "bookmarks-view" : "historyTree"; @@ -406,7 +410,7 @@ var withSidebarTree = async function (type, taskFn) { try { await taskFn(tree); } finally { - SidebarController.hide(); + win.SidebarController.hide(); } }; @@ -419,9 +423,11 @@ var withSidebarTree = async function (type, taskFn) { * @param {Function} taskFn * The task to execute once the Library is ready. * Will get { left, right } trees as argument. + * @param {Window} [win] + * The window to use to open the library. */ -var withLibraryWindow = async function (hierarchy, taskFn) { - let library = await promiseLibrary(hierarchy); +var withLibraryWindow = async function (hierarchy, taskFn, win = window) { + let library = await promiseLibrary(hierarchy, win); let left = library.document.getElementById("placesList"); let right = library.document.getElementById("placeContent"); info("withLibrary: executing the task"); @@ -477,8 +483,8 @@ function promisePopupHidden(popup) { } // Identify a bookmark node in the Bookmarks Toolbar by its guid. -function getToolbarNodeForItemGuid(itemGuid) { - let children = document.getElementById("PlacesToolbarItems").childNodes; +function getToolbarNodeForItemGuid(itemGuid, win = window) { + let children = win.document.getElementById("PlacesToolbarItems").childNodes; for (let child of children) { if (itemGuid === child._placesNode.bookmarkGuid) { return child; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1d54c76… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1d54c76… 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] MB 334: Fix .desktop file for opening external links
by morgan (@morgan) 17 Sep '24

17 Sep '24
morgan pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build Commits: 6027863e by Nicolas Vigier at 2024-09-17T18:36:17+00:00 MB 334: Fix .desktop file for opening external links The `Exec` entry from the .desktop file included in the rpm and deb packages was missing the `%u` parameter. - - - - - 1 changed file: - projects/linux-packages/browser.desktop.in Changes: ===================================== projects/linux-packages/browser.desktop.in ===================================== @@ -5,7 +5,7 @@ Name=[% c("var/Project_Name") %] GenericName=Web Browser Comment=[% c("var/system_pkg/pkg_description") %] Categories=Network;WebBrowser; -Exec=/[% c("var/system_pkg/install_path") %]/start-[% c("var/project-name") %] --detach +Exec=/[% c("var/system_pkg/install_path") %]/start-[% c("var/project-name") %] --detach %u Icon=[% c("var/system_pkg/pkg_name") %] StartupWMClass=[% c("var/display_name") %] [% IF ! c("var/tor-browser") -%] View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/6… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/6… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-update-responses][main] release: new version, 13.5.4
by morgan (@morgan) 17 Sep '24

17 Sep '24
morgan pushed to branch main at The Tor Project / Applications / Tor Browser update responses Commits: c3a2e496 by Morgan at 2024-09-17T16:29:47+00:00 release: new version, 13.5.4 - - - - - 30 changed files: - update_3/release/.htaccess - − update_3/release/13.5-13.5.3-linux-i686-ALL.xml - − update_3/release/13.5-13.5.3-linux-x86_64-ALL.xml - − update_3/release/13.5-13.5.3-macos-ALL.xml - − update_3/release/13.5-13.5.3-windows-i686-ALL.xml - − update_3/release/13.5-13.5.3-windows-x86_64-ALL.xml - − update_3/release/13.5.1-13.5.3-linux-i686-ALL.xml - − update_3/release/13.5.1-13.5.3-linux-x86_64-ALL.xml - − update_3/release/13.5.1-13.5.3-macos-ALL.xml - − update_3/release/13.5.1-13.5.3-windows-i686-ALL.xml - − update_3/release/13.5.1-13.5.3-windows-x86_64-ALL.xml - + update_3/release/13.5.1-13.5.4-linux-i686-ALL.xml - + update_3/release/13.5.1-13.5.4-linux-x86_64-ALL.xml - + update_3/release/13.5.1-13.5.4-macos-ALL.xml - + update_3/release/13.5.1-13.5.4-windows-i686-ALL.xml - + update_3/release/13.5.1-13.5.4-windows-x86_64-ALL.xml - − update_3/release/13.5.2-13.5.3-linux-i686-ALL.xml - − update_3/release/13.5.2-13.5.3-linux-x86_64-ALL.xml - − update_3/release/13.5.2-13.5.3-macos-ALL.xml - − update_3/release/13.5.2-13.5.3-windows-i686-ALL.xml - − update_3/release/13.5.2-13.5.3-windows-x86_64-ALL.xml - + update_3/release/13.5.2-13.5.4-linux-i686-ALL.xml - + update_3/release/13.5.2-13.5.4-linux-x86_64-ALL.xml - + update_3/release/13.5.2-13.5.4-macos-ALL.xml - + update_3/release/13.5.2-13.5.4-windows-i686-ALL.xml - + update_3/release/13.5.2-13.5.4-windows-x86_64-ALL.xml - + update_3/release/13.5.3-13.5.4-linux-i686-ALL.xml - + update_3/release/13.5.3-13.5.4-linux-x86_64-ALL.xml - + update_3/release/13.5.3-13.5.4-macos-ALL.xml - + update_3/release/13.5.3-13.5.4-windows-i686-ALL.xml The diff was not included because it is too large. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build] Pushed new tag tbb-13.5.4-build1
by morgan (@morgan) 16 Sep '24

16 Sep '24
morgan pushed new tag tbb-13.5.4-build1 at The Tor Project / Applications / tor-browser-build -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/tree/tbb… 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 41320: Prepare Tor Browser 13.5.4
by morgan (@morgan) 16 Sep '24

16 Sep '24
morgan pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build Commits: f8a2d807 by Morgan at 2024-09-16T21:17:01+00:00 Bug 41320: Prepare Tor Browser 13.5.4 - - - - - 9 changed files: - projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt - projects/browser/allowed_addons.json - projects/browser/config - projects/firefox-android/config - projects/firefox/config - projects/geckoview/config - projects/openssl/config - projects/translation/config - rbm.conf Changes: ===================================== projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt ===================================== @@ -1,3 +1,111 @@ +Tor Browser 13.5.4 - September 16 2024 + * All Platforms + * Updated NoScript to 11.4.37 + * Updated OpenSSL to 3.0.15 + * Windows + macOS + Linux + * Bug 41835: Review default search engine options [tor-browser] + * Android + * Bug 43124: Implement a migration procedure for Android [tor-browser] + * Bug 43145: Backport Android security fix from 130.0.1 [tor-browser] + * Build System + * All Platforms + * Bug 41229: Migrate OpenSSL download location to github releases [tor-browser-build] + * macOS + * Bug 41231: Use var/browser_release_date in tools/signing/gatekeeper-bundling.sh [tor-browser-build] + +Tor Browser 14.0a5 - September 12 2024 + * All Platforms + * Updated NoScript to 11.4.37 + * Bug 42255: pdfjs.disabled used to be part of RFP until Bug 1838415; lock pref to false in stable [tor-browser] + * Bug 42746: Extend prefers-contrast rules to include forced-colors [tor-browser] + * Bug 43046: Review Mozilla 1866927: Adds ability to enable email tracker blocking protection in private mode [tor-browser] + * Bug 43054: check bounceTrackingProtection in PB mode does not persist to disk [tor-browser] + * Windows + macOS + Linux + * Bug 42647: "Switching to a new device" regressed on 128 [tor-browser] + * Bug 42653: The Neterror page has a checkbox to report iframe origin errors to TPO [tor-browser] + * Bug 42777: Remove 'Website Privacy Preferences' and ensure sensible default prefs [tor-browser] + * Bug 43087: Onion pattern on about:torconnect needs a dark theme asset [tor-browser] + * Bug 43109: Remove mention of Firefox Relay from settings [tor-browser] + * Bug 43115: Height of search bar has collapsed on about:tor [tor-browser] + * Bug 43117: Hide 'Always underline links' option [tor-browser] + * Bug 43118: hide CFR [tor-browser] + * Bug 43131: Reduce layout jank when loading about:tor [tor-browser] + * Linux + * Bug 42702: Cannot access the clipboard for the crypto address check (wayland) [tor-browser] + * Bug 334: When set as default browser on Linux in standard mode, links don't open correctly [mullvad-browser] + * Android + * Bug 42954: Remove product recommendation API integration (Review Mozilla 1857215) [tor-browser] + * Bug 43097: NoScript fails to install on Android [tor-browser] + * Bug 43108: Backport Android fullscreen notifications refactoring on ESR128 [tor-browser] + * Bug 43128: Use DuckDuckGo HTML on the Safest security level for Android [tor-browser] + * Build System + * All Platforms + * Updated Go to 1.23.1 + * macOS + * Bug 41231: Use var/browser_release_date in tools/signing/gatekeeper-bundling.sh [tor-browser-build] + * Android + * Bug 41106: Non matching builds after application-services not being rebuilt in a long time [tor-browser-build] + * Bug 41232: Re-implement single-arch builds after the monorepo migration [tor-browser-build] + * Bug 41234: More dependencies are needed when building Android as a release [tor-browser-build] + +Tor Browser 14.0a4 - September 06 2024 + * All Platforms + * Updated NoScript to 11.4.35 + * Updated OpenSSL to 3.0.15 + * Bug 30862: 10ms time precision via EXSLT date-time function [tor-browser] + * Bug 42601: Check Bug 1894779: Allow font-face urls to be resource:// urls and relax CORS for resource:// URLs [tor-browser] + * Bug 42684: Disable network prefetch [tor-browser] + * Bug 42685: compat: ESR128: enable textmetrics [tor-browser] + * Bug 42686: Backport Mozilla 1885101 [tor-browser] + * Bug 42730: Make RemoteSettings use only local dumps [tor-browser] + * Bug 42867: Disable contentRelevancy component [tor-browser] + * Bug 43100: Backport security fixes from Firefox 130 [tor-browser] + * Windows + macOS + Linux + * Bug 40147: Re-enable Picture-in-Picture mode [tor-browser] + * Bug 41309: Re-enable screenshots component [tor-browser] + * Bug 41835: Review default search engine options [tor-browser] + * Bug 42617: Restore the HTML form on DDG when using safest in 128 [tor-browser] + * Bug 42630: Review LaterRun in 128 [tor-browser] + * Bug 42640: Disable Firefox Flame button due to unknown interactions with New Identity [tor-browser] + * Bug 42735: Disable recent search suggestions [tor-browser] + * Bug 42737: Drop the hash check on updates [tor-browser] + * Bug 42743: Invalid onion sites are shown as secure in the page info window [tor-browser] + * Bug 42744: Light theme override for "about:tor" is inherited by chrome error pages. [tor-browser] + * Bug 42745: Remove some residuals from update scripts [tor-browser] + * Bug 42764: Unconditionally disable find-bar transition animation [tor-browser] + * Bug 42803: Lost focus styling for built-in bridges radio options [tor-browser] + * Bug 42891: Review Mozilla 1854965: Define new search engine configuration schema [tor-browser] + * Bug 43015: Missing region-name-skr fluent entry when fetching TorConnect country names [tor-browser] + * Bug 43075: Should we drop link spacing in about:tor [tor-browser] + * Bug 43082: Search engine icon is not shown while typing in the address bar [tor-browser] + * Bug 43103: Verify whether an update is unsupported before choosing one [tor-browser] + * Bug 43105: Migrating Disconnect is not needed anymore [tor-browser] + * macOS + Linux + * Bug 42467: Make OS HTTP User-Agent OS spoofing configurable by pref [tor-browser] + * macOS + * Bug 42494: mac: add Arial Black and Arial Narrow to allowlist [tor-browser] + * Linux + * Bug 42773: Replace ~ with the original HOME [tor-browser] + * Bug 43092: Disable Wayland by default in 14.0 [tor-browser] + * Android + * Bug 42655: Implement "New circuit for this site" on Android [tor-browser] + * Bug 42731: Verify `privacy.spoof_english` still works once we have Android builds [tor-browser] + * Bug 43016: Re-disable Nimbus [tor-browser] + * Bug 43023: Review Mozilla 1872510: Use SamsungColorEmoji by default for Samsung devices [tor-browser] + * Bug 43043: Remove credit card autofill UI elements from menu [tor-browser] + * Bug 43088: Query stripping is disabled on Android [tor-browser] + * Bug 43094: Remove "Open in regular tab" button [tor-browser] + * Bug 43114: Reader view uses the catch-all circuit on Android [tor-browser] + * Bug 43116: The lack of GeoIP databases produces a lot of spam in the console on Android [tor-browser] + * Build System + * All Platforms + * Bug 41096: Set SOURCE_DATE_EPOCH in the default env variables [tor-browser-build] + * Bug 41180: Some files do not need to be copied when building tor-expert-bundle [tor-browser-build] + * Bug 41188: Upgrade binutils to 2.41 [tor-browser-build] + * Bug 41229: Migrate OpenSSL download location to github releases [tor-browser-build] + * Android + * Bug 41224: Do not ship Conjure and GeoIP databases on Android x86, x86-64 to save some space [tor-browser-build] + Tor Browser 13.5.3 - September 03 2024 * All Platforms * Updated NoScript to 11.4.35 ===================================== projects/browser/allowed_addons.json ===================================== @@ -17,7 +17,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/34/9734/13299734/13299734.pn…" } ], - "average_daily_users": 1140698, + "average_daily_users": 1193962, "categories": { "firefox": [ "web-development", @@ -28,7 +28,7 @@ "contributions_url": "https://opencollective.com/darkreader?utm_content=product-page-contribute&u…", "created": "2017-09-19T07:03:00Z", "current_version": { - "id": 5796944, + "id": 5807097, "compatibility": { "firefox": { "min": "78.0", @@ -39,7 +39,7 @@ "max": "*" } }, - "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/57969…", + "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/58070…", "is_strict_compatibility_enabled": false, "license": { "id": 22, @@ -50,22 +50,22 @@ "url": "http://www.opensource.org/license/mit" }, "release_notes": { - "en-US": "- Removed www part from website URLs.\n- Fixed colors for static site fixes.\n- Apply ignored image selectors for gradients.\n- Users' fixes for websites." + "en-US": "- Detect website's dark theme by default.\n- Use Filter mode for particular websites by default (Google Docs, Microsoft Office).\n- Fixed breaking on default selection color.\n- Users' fixes for websites." }, - "reviewed": "2024-08-27T12:16:01Z", - "version": "4.9.89", + "reviewed": "2024-09-16T12:10:25Z", + "version": "4.9.92", "files": [ { - "id": 4341235, - "created": "2024-08-23T02:07:01Z", - "hash": "sha256:f4a5b4d5966d99cc68b31a9d2072cdb6388efefa9d45746f03d76e3c897c49be", + "id": 4351387, + "created": "2024-09-11T16:04:34Z", + "hash": "sha256:be55b3ea5bab95743d43823d9290fa820035b89c4d07943b568111d837a98226", "is_restart_required": false, "is_webextension": true, "is_mozilla_signed_extension": false, "platform": "all", - "size": 764773, + "size": 768509, "status": "public", - "url": "https://addons.mozilla.org/firefox/downloads/file/4341235/darkreader-4.9.89…", + "url": "https://addons.mozilla.org/firefox/downloads/file/4351387/darkreader-4.9.92…", "permissions": [ "alarms", "contextMenus", @@ -143,7 +143,7 @@ }, "is_disabled": false, "is_experimental": false, - "last_updated": "2024-08-27T12:16:01Z", + "last_updated": "2024-09-16T12:10:25Z", "name": { "ar": "Dark Reader", "bn": "Dark Reader", @@ -218,10 +218,10 @@ "category": "recommended" }, "ratings": { - "average": 4.5268, - "bayesian_average": 4.5257181938569415, - "count": 5794, - "text_count": 1817 + "average": 4.5273, + "bayesian_average": 4.526224812542353, + "count": 5845, + "text_count": 1836 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/reviews/", "requires_payment": false, @@ -318,7 +318,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/versions/", - "weekly_downloads": 28794 + "weekly_downloads": 28283 }, "notes": null }, @@ -334,7 +334,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/56/7656/6937656/6937656.png?…" } ], - "average_daily_users": 244616, + "average_daily_users": 256725, "categories": { "firefox": [ "privacy-security" @@ -547,10 +547,10 @@ "category": "recommended" }, "ratings": { - "average": 4.7952, - "bayesian_average": 4.790572428009504, - "count": 1450, - "text_count": 262 + "average": 4.7945, + "bayesian_average": 4.789878349264025, + "count": 1455, + "text_count": 263 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/reviews/", "requires_payment": false, @@ -635,7 +635,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/versions/", - "weekly_downloads": 3185 + "weekly_downloads": 3102 }, "notes": null }, @@ -651,7 +651,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/73/4073/5474073/5474073.png?…" } ], - "average_daily_users": 1207093, + "average_daily_users": 1263479, "categories": { "firefox": [ "privacy-security" @@ -1171,9 +1171,9 @@ }, "ratings": { "average": 4.803, - "bayesian_average": 4.800307318873676, - "count": 2498, - "text_count": 472 + "bayesian_average": 4.800311779877251, + "count": 2508, + "text_count": 473 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/reviews/", "requires_payment": false, @@ -1197,7 +1197,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/versions/", - "weekly_downloads": 25580 + "weekly_downloads": 23724 }, "notes": null }, @@ -1213,7 +1213,7 @@ "picture_url": null } ], - "average_daily_users": 7837121, + "average_daily_users": 8309629, "categories": { "firefox": [ "privacy-security" @@ -1378,7 +1378,7 @@ }, "is_disabled": false, "is_experimental": false, - "last_updated": "2024-09-02T23:55:23Z", + "last_updated": "2024-09-15T13:50:37Z", "name": { "ar": "uBlock Origin", "bg": "uBlock Origin", @@ -1523,10 +1523,10 @@ "category": "recommended" }, "ratings": { - "average": 4.7904, - "bayesian_average": 4.7900338967513205, - "count": 18333, - "text_count": 4783 + "average": 4.7905, + "bayesian_average": 4.790134246767273, + "count": 18397, + "text_count": 4805 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/reviews/", "requires_payment": false, @@ -1589,7 +1589,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/versions/", - "weekly_downloads": 193211 + "weekly_downloads": 193086 }, "notes": null }, @@ -1605,7 +1605,7 @@ "picture_url": null } ], - "average_daily_users": 167408, + "average_daily_users": 184356, "categories": { "firefox": [ "photos-music-videos", @@ -1701,10 +1701,10 @@ "category": "recommended" }, "ratings": { - "average": 4.4543, - "bayesian_average": 4.449467320720743, - "count": 1270, - "text_count": 492 + "average": 4.4561, + "bayesian_average": 4.451276485748058, + "count": 1276, + "text_count": 494 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/re…", "requires_payment": false, @@ -1726,7 +1726,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/ve…", - "weekly_downloads": 384 + "weekly_downloads": 348 }, "notes": null }, @@ -1742,7 +1742,7 @@ "picture_url": null } ], - "average_daily_users": 61260, + "average_daily_users": 63521, "categories": { "firefox": [ "privacy-security", @@ -1877,7 +1877,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/versions/", - "weekly_downloads": 347 + "weekly_downloads": 303 }, "notes": null }, @@ -1893,7 +1893,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/64/9064/12929064/12929064.pn…" } ], - "average_daily_users": 347042, + "average_daily_users": 361067, "categories": { "firefox": [ "search-tools", @@ -2110,10 +2110,10 @@ "category": "recommended" }, "ratings": { - "average": 4.6212, - "bayesian_average": 4.617005841441428, - "count": 1531, - "text_count": 306 + "average": 4.6204, + "bayesian_average": 4.616225871818597, + "count": 1541, + "text_count": 308 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/reviews/", "requires_payment": false, @@ -2136,7 +2136,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/versions/", - "weekly_downloads": 6345 + "weekly_downloads": 5811 }, "notes": null }, @@ -2159,7 +2159,7 @@ "picture_url": null } ], - "average_daily_users": 112925, + "average_daily_users": 121865, "categories": { "firefox": [ "search-tools", @@ -2440,10 +2440,10 @@ "category": "recommended" }, "ratings": { - "average": 4.3856, - "bayesian_average": 4.381265145234359, - "count": 1390, - "text_count": 391 + "average": 4.3853, + "bayesian_average": 4.3809603183078645, + "count": 1391, + "text_count": 392 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/reviews/", "requires_payment": false, @@ -2463,7 +2463,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/versions/", - "weekly_downloads": 28 + "weekly_downloads": 17 }, "notes": null }, @@ -2479,7 +2479,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/43/0143/143/143.png?modified…" } ], - "average_daily_users": 278811, + "average_daily_users": 290230, "categories": { "firefox": [ "privacy-security", @@ -2489,7 +2489,7 @@ "contributions_url": "https://www.paypal.com/donate/?hosted_button_id=9ERKTU5MBH4EW&utm_content=p…", "created": "2005-05-13T10:51:32Z", "current_version": { - "id": 5799020, + "id": 5805224, "compatibility": { "firefox": { "min": "59.0", @@ -2500,7 +2500,7 @@ "max": "*" } }, - "edit_url": "https://addons.mozilla.org/en-US/developers/addon/noscript/versions/5799020", + "edit_url": "https://addons.mozilla.org/en-US/developers/addon/noscript/versions/5805224", "is_strict_compatibility_enabled": false, "license": { "id": 13, @@ -2511,22 +2511,22 @@ "url": "http://www.gnu.org/licenses/gpl-2.0.html" }, "release_notes": { - "en-US": "v 11.4.35\n============================================================\nx Improved lazy_load capability (optimization and\n notification)\nx [nscl] Slight optimization of NOSCRIPT element emulation\n loop\nx Automatically add extra capabilities to policyTypesMap\nx Gracefully handle new capabilities still unknown to the\n settings host (e.g. Tor/Mullvad browser), if any\nx Configurable \"lazy_load\" capability (see\n <a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/b3e6aa3e27d1f746591f0a…" rel=\"nofollow\">https://github.com/whatwg/html/issues/5250</a>)\nx Prefetch all CSS subresources (1st party included) in\n private contexts where both unchecked_css and scripting\n capabilities are disabled\nx Forcibly neutralize lazy loading attributes when scripting\n is disabled\nx [nscl] Restored SyncMessage compatibility with Firefox 78\n and below\nx Lock nscl version on stable releases\nx [L10n] Updated de, fr, tr, ru, uk, zh_CN" + "en-US": "v 11.4.37\n============================================================\nx [nscl] Do not patch windows with WebGLHook if webgl is\n globally disabled\nx [nscl] Do not patch workers if webgl is globally disabled\nx [L10n] Updated uk\nx [nscl] Workers-aware WebGL Hook" }, - "reviewed": "2024-08-28T15:03:34Z", - "version": "11.4.35", + "reviewed": "2024-09-10T14:37:13Z", + "version": "11.4.37", "files": [ { - "id": 4343311, - "created": "2024-08-26T22:32:41Z", - "hash": "sha256:a448e4c2e0eb7ca5fb1b6d3189bc586b91a7ee6facecdd0424f1bfbf2b3016fb", + "id": 4349514, + "created": "2024-09-08T16:36:27Z", + "hash": "sha256:5e9921599c63e0b357851ea7ca1354554b3af2c676bbbfff5687cafce4396c18", "is_restart_required": false, "is_webextension": true, "is_mozilla_signed_extension": false, "platform": "all", - "size": 956549, + "size": 964305, "status": "public", - "url": "https://addons.mozilla.org/firefox/downloads/file/4343311/noscript-11.4.35.…", + "url": "https://addons.mozilla.org/firefox/downloads/file/4349514/noscript-11.4.37.…", "permissions": [ "contextMenus", "storage", @@ -2593,7 +2593,7 @@ }, "is_disabled": false, "is_experimental": false, - "last_updated": "2024-08-28T15:03:34Z", + "last_updated": "2024-09-11T21:25:21Z", "name": { "de": "NoScript", "el": "NoScript", @@ -2665,10 +2665,10 @@ "category": "recommended" }, "ratings": { - "average": 4.4063, - "bayesian_average": 4.4036255442284284, - "count": 2267, - "text_count": 865 + "average": 4.4081, + "bayesian_average": 4.405428009528521, + "count": 2274, + "text_count": 866 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/reviews/", "requires_payment": false, @@ -2712,7 +2712,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/versions/", - "weekly_downloads": 8229 + "weekly_downloads": 7945 }, "notes": null }, @@ -2728,7 +2728,7 @@ "picture_url": null } ], - "average_daily_users": 151659, + "average_daily_users": 162749, "categories": { "firefox": [ "photos-music-videos", @@ -2838,10 +2838,10 @@ "category": "recommended" }, "ratings": { - "average": 3.8397, - "bayesian_average": 3.835705118967834, - "count": 1279, - "text_count": 462 + "average": 3.8384, + "bayesian_average": 3.834405527869751, + "count": 1281, + "text_count": 463 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/revi…", "requires_payment": false, @@ -2860,7 +2860,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/vers…", - "weekly_downloads": 2616 + "weekly_downloads": 1750 }, "notes": null } ===================================== projects/browser/config ===================================== @@ -104,9 +104,9 @@ input_files: enable: '[% ! c("var/android") %]' - filename: Bundle-Data enable: '[% ! c("var/android") %]' - - URL: https://addons.mozilla.org/firefox/downloads/file/4343311/noscript-11.4.35.… + - URL: https://addons.mozilla.org/firefox/downloads/file/4349514/noscript-11.4.37.… name: noscript - sha256sum: a448e4c2e0eb7ca5fb1b6d3189bc586b91a7ee6facecdd0424f1bfbf2b3016fb + sha256sum: 5e9921599c63e0b357851ea7ca1354554b3af2c676bbbfff5687cafce4396c18 - URL: https://addons.mozilla.org/firefox/downloads/file/4328681/ublock_origin-1.5… name: ublock-origin sha256sum: 1db9c676a07d141f8d36dbbc24f9e3d64a6cc2340dbfc6c848bc4395f96cfb14 ===================================== projects/firefox-android/config ===================================== @@ -16,7 +16,7 @@ container: var: fenix_version: 115.2.1 browser_branch: 13.5-1 - browser_build: 14 + browser_build: 15 variant: Beta # This should be updated when the list of gradle dependencies is changed. gradle_dependencies_version: 1 ===================================== projects/firefox/config ===================================== @@ -19,7 +19,7 @@ var: browser_series: '13.5' browser_rebase: 1 browser_branch: '[% c("var/browser_series") %]-[% c("var/browser_rebase") %]' - browser_build: 3 + browser_build: 4 branding_directory_prefix: 'tb' copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]' nightly_updates_publish_dir: '[% c("var/nightly_updates_publish_dir_prefix") %]nightly-[% c("var/osname") %]' ===================================== projects/geckoview/config ===================================== @@ -16,7 +16,7 @@ container: var: geckoview_version: 115.15.0esr browser_branch: 13.5-1 - browser_build: 3 + browser_build: 4 copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]' gitlab_project: https://gitlab.torproject.org/tpo/applications/tor-browser git_commit: '[% exec("git rev-parse HEAD") %]' ===================================== projects/openssl/config ===================================== @@ -1,5 +1,5 @@ # vim: filetype=yaml sw=2 -version: 3.0.14 +version: 3.0.15 filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' container: use_container: 1 @@ -36,5 +36,5 @@ input_files: - name: '[% c("var/compiler") %]' project: '[% c("var/compiler") %]' - URL: 'https://github.com/openssl/openssl/releases/download/openssl-[% c("version") %]/openssl-[% c("version") %].tar.gz' - sha256sum: eeca035d4dd4e84fc25846d952da6297484afa0650a6f84c682e39df3a4123ca + sha256sum: 23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533 name: openssl ===================================== projects/translation/config ===================================== @@ -12,13 +12,13 @@ compress_tar: 'gz' steps: base-browser: base-browser: '[% INCLUDE build %]' - git_hash: daed2afc487d1b20efc17feb153156524c6f714b + git_hash: d69ac083437e60d681fdefce6aa1fde96e2f1eaf targets: nightly: git_hash: 'base-browser' tor-browser: tor-browser: '[% INCLUDE build %]' - git_hash: 6374e3b09c0894b8452fa1ba0b99c807722fc805 + git_hash: 022b7eea73017cd3a1fae66b8c4bd8d7b867107f targets: nightly: git_hash: 'tor-browser' @@ -32,7 +32,7 @@ steps: fenix: '[% INCLUDE build %]' # We need to bump the commit before releasing but just pointing to a branch # might cause too much rebuidling of the Firefox part. - git_hash: f1585565f1635f18ab20a2fbdea4fdd72aa6c533 + git_hash: 2a9884fadf15e57f6a661f12ede1312cc71602c1 compress_tar: 'zst' targets: nightly: ===================================== rbm.conf ===================================== @@ -73,18 +73,18 @@ buildconf: git_signtag_opt: '-s' var: - torbrowser_version: '13.5.3' + torbrowser_version: '13.5.4' torbrowser_build: 'build1' # This should be the date of when the build is started. For the build # to be reproducible, browser_release_date should always be in the past. - browser_release_date: '2024/09/03 07:30:00' + browser_release_date: '2024/09/16 20:57:05' browser_release_date_timestamp: '[% USE date; date.format(c("var/browser_release_date"), "%s") %]' updater_enabled: 1 build_mar: 1 torbrowser_incremental_from: + - 13.5.3 - 13.5.2 - 13.5.1 - - '13.5' mar_channel_id: '[% c("var/projectname") %]-torproject-[% c("var/channel") %]' # By default, we sort the list of installed packages. This allows sharing View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/f… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/f… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android] Pushed new tag firefox-android-115.2.1-13.5-1-build15
by ma1 (@ma1) 16 Sep '24

16 Sep '24
ma1 pushed new tag firefox-android-115.2.1-13.5-1-build15 at The Tor Project / Applications / firefox-android -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/tree/firef… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser] Pushed new tag tor-browser-115.15.0esr-13.5-1-build4
by morgan (@morgan) 16 Sep '24

16 Sep '24
morgan pushed new tag tor-browser-115.15.0esr-13.5-1-build4 at The Tor Project / Applications / Tor Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • ...
  • 25
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.