diff --git a/patches/fullpage-translations.patch b/patches/fullpage-translations.patch index caca03c..b7ab62a 100644 --- a/patches/fullpage-translations.patch +++ b/patches/fullpage-translations.patch @@ -1,6 +1,8 @@ +diff --git a/services/settings/Attachments.sys.mjs b/services/settings/Attachments.sys.mjs +index d6d1182083c8..03fddd13b7ec 100644 --- a/services/settings/Attachments.sys.mjs +++ b/services/settings/Attachments.sys.mjs -@@ -144,6 +144,7 @@ export class Downloader { +@@ -158,6 +158,7 @@ export class Downloader { * @param {Boolean} [options.fallbackToDump] Use the remote settings dump as a * potential source of the attachment. * (default: `false`) @@ -8,7 +10,7 @@ * @throws {Downloader.DownloadError} if the file could not be fetched. * @throws {Downloader.BadContentError} if the downloaded content integrity is not valid. * @throws {Downloader.ServerInfoError} if the server response is not valid. -@@ -203,6 +204,7 @@ export class Downloader { +@@ -318,6 +319,7 @@ export class Downloader { fallbackToCache = false, fallbackToDump = false, avoidDownload = false, @@ -16,7 +18,7 @@ } = options || {}; if (!attachmentId) { // Check for pre-condition. This should not happen, but it is explicitly -@@ -254,6 +256,7 @@ export class Downloader { +@@ -378,6 +380,7 @@ export class Downloader { const newBuffer = await this.downloadAsBytes(record, { retries, checkHash, @@ -24,7 +26,7 @@ }); const blob = new Blob([newBuffer]); // Store in cache but don't wait for it before returning. -@@ -424,6 +427,7 @@ export class Downloader { +@@ -548,6 +551,7 @@ export class Downloader { * @param {Object} options Some download options. * @param {Number} options.retries Number of times download should be retried (default: `3`) * @param {Boolean} options.checkHash Check content integrity (default: `true`) @@ -32,49 +34,31 @@ * @throws {Downloader.DownloadError} if the file could not be fetched. * @throws {Downloader.BadContentError} if the downloaded content integrity is not valid. * @returns {ArrayBuffer} the file content. -@@ -432,10 +436,11 @@ export class Downloader { +@@ -556,17 +560,17 @@ export class Downloader { const { attachment: { location, hash, size }, } = record; + const { retries = 3, checkHash = true, serverUrl } = options; -- const remoteFileUrl = (await this._baseAttachmentsURL()) + location; -+ const remoteFileUrl = -+ (await this._baseAttachmentsURL(serverUrl)) + location; + let baseURL; + try { +- baseURL = await lazy.Utils.baseAttachmentsURL(); ++ baseURL = await lazy.Utils.baseAttachmentsURL(serverUrl); + } catch (error) { + throw new Downloader.ServerInfoError(error); + } + + const remoteFileUrl = baseURL + location; - const { retries = 3, checkHash = true } = options; let retried = 0; while (true) { try { -@@ -484,9 +489,9 @@ export class Downloader { - await this._rmDirs(); - } - -- async _baseAttachmentsURL() { -- if (!this._cdnURLs[lazy.Utils.SERVER_URL]) { -- const resp = await lazy.Utils.fetch(`${lazy.Utils.SERVER_URL}/`); -+ async _baseAttachmentsURL(serverUrl = lazy.Utils.SERVER_URL) { -+ if (!this._cdnURLs[serverUrl]) { -+ const resp = await lazy.Utils.fetch(`${serverUrl}/`); - let serverInfo; - try { - serverInfo = await resp.json(); -@@ -500,10 +505,9 @@ export class Downloader { - }, - } = serverInfo; - // Make sure the URL always has a trailing slash. -- this._cdnURLs[lazy.Utils.SERVER_URL] = -- base_url + (base_url.endsWith("/") ? "" : "/"); -+ this._cdnURLs[serverUrl] = base_url + (base_url.endsWith("/") ? "" : "/"); - } -- return this._cdnURLs[lazy.Utils.SERVER_URL]; -+ return this._cdnURLs[serverUrl]; - } - - async _fetchAttachment(url) { +diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs +index 6b7c441c8d91..8ce70fe11dca 100644 --- a/services/settings/RemoteSettingsClient.sys.mjs +++ b/services/settings/RemoteSettingsClient.sys.mjs -@@ -305,6 +305,7 @@ export class RemoteSettingsClient extends EventEmitter { +@@ -309,6 +309,7 @@ export class RemoteSettingsClient extends EventEmitter { localFields = [], keepAttachmentsIds = [], lastCheckTimePref, @@ -82,7 +66,7 @@ } = {} ) { // Remote Settings cannot be used in child processes (no access to disk, -@@ -334,6 +335,7 @@ export class RemoteSettingsClient extends EventEmitter { +@@ -338,6 +339,7 @@ export class RemoteSettingsClient extends EventEmitter { this._lastCheckTimePref = lastCheckTimePref; this._verifier = null; this._syncRunning = false; @@ -90,7 +74,7 @@ // This attribute allows signature verification to be disabled, when running tests // or when pulling data from a dev server. -@@ -375,9 +377,12 @@ export class RemoteSettingsClient extends EventEmitter { +@@ -379,9 +381,12 @@ export class RemoteSettingsClient extends EventEmitter { } httpClient() { @@ -106,7 +90,7 @@ return api.bucket(this.bucketName).collection(this.collectionName); } -@@ -604,7 +609,7 @@ export class RemoteSettingsClient extends EventEmitter { +@@ -609,7 +614,7 @@ export class RemoteSettingsClient extends EventEmitter { // We want to know which timestamp we are expected to obtain in order to leverage // cache busting. We don't provide ETag because we don't want a 304. const { changes } = await lazy.Utils.fetchLatestChanges( @@ -115,9 +99,41 @@ { filters: { collection: this.collectionName, +diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs +index 12fef6cde815..3be4356a4060 100644 +--- a/services/settings/Utils.sys.mjs ++++ b/services/settings/Utils.sys.mjs +@@ -295,9 +295,9 @@ export var Utils = { + * const attachmentsURL = await Downloader.baseAttachmentsURL(); + * console.log(attachmentsURL); + */ +- async baseAttachmentsURL() { +- if (!_cdnURLs[Utils.SERVER_URL]) { +- const resp = await Utils.fetch(`${Utils.SERVER_URL}/`); ++ async baseAttachmentsURL(serverUrl = Utils.SERVER_URL) { ++ if (!_cdnURLs[serverUrl]) { ++ const resp = await Utils.fetch(`${serverUrl}/`); + const serverInfo = await resp.json(); + // Server capabilities expose attachments configuration. + const { +@@ -306,10 +306,9 @@ export var Utils = { + }, + } = serverInfo; + // Make sure the URL always has a trailing slash. +- _cdnURLs[Utils.SERVER_URL] = +- base_url + (base_url.endsWith("/") ? "" : "/"); ++ _cdnURLs[serverUrl] = base_url + (base_url.endsWith("/") ? "" : "/"); + } +- return _cdnURLs[Utils.SERVER_URL]; ++ return _cdnURLs[serverUrl]; + }, + + /** +diff --git a/toolkit/components/translations/actors/TranslationsParent.sys.mjs b/toolkit/components/translations/actors/TranslationsParent.sys.mjs +index de242af9add4..631faa77fa00 100644 --- a/toolkit/components/translations/actors/TranslationsParent.sys.mjs +++ b/toolkit/components/translations/actors/TranslationsParent.sys.mjs -@@ -1034,7 +1034,9 @@ export class TranslationsParent extends JSWindowActorParent { +@@ -1545,7 +1545,9 @@ export class TranslationsParent extends JSWindowActorParent { } /** @type {RemoteSettingsClient} */ @@ -127,8 +143,8 @@ + }); TranslationsParent.#translationModelsRemoteClient = client; client.on("sync", TranslationsParent.#handleTranslationsModelsSync); - return client; -@@ -1420,7 +1422,10 @@ export class TranslationsParent extends JSWindowActorParent { + +@@ -1911,7 +1913,10 @@ export class TranslationsParent extends JSWindowActorParent { /** @type {{buffer: ArrayBuffer}} */ const { buffer } = await client.attachments.download( @@ -140,7 +156,7 @@ ); const duration = Date.now() - start; -@@ -1471,7 +1476,9 @@ export class TranslationsParent extends JSWindowActorParent { +@@ -1988,7 +1993,9 @@ export class TranslationsParent extends JSWindowActorParent { )) { const download = () => { lazy.console.log("Downloading record", record.name, record.id); @@ -151,7 +167,7 @@ }; queue.push({ download }); } -@@ -1495,7 +1502,10 @@ export class TranslationsParent extends JSWindowActorParent { +@@ -2012,7 +2019,10 @@ export class TranslationsParent extends JSWindowActorParent { onFailure: () => { console.error("Failed to download", record.name); }, @@ -163,7 +179,7 @@ }); } -@@ -1659,7 +1669,9 @@ export class TranslationsParent extends JSWindowActorParent { +@@ -2304,7 +2314,9 @@ export class TranslationsParent extends JSWindowActorParent { await chaosMode(1 / 3); /** @type {{buffer: ArrayBuffer }} */ diff --git a/patches/unified-extensions-dont-show-recommendations.patch b/patches/unified-extensions-dont-show-recommendations.patch deleted file mode 100644 index e931174..0000000 --- a/patches/unified-extensions-dont-show-recommendations.patch +++ /dev/null @@ -1,25 +0,0 @@ -# Backport of https://phabricator.services.mozilla.com/D169570 -# Should land in 112.0 ---- a/browser/base/content/browser-addons.js -+++ b/browser/base/content/browser-addons.js -@@ -1472,11 +1472,19 @@ - } - - // The button should directly open `about:addons` when the user does not - // have any active extensions listed in the unified extensions panel. - if (!this.hasExtensionsInPanel()) { -- await BrowserOpenAddonsMgr("addons://discover/"); -+ let viewID; -+ if ( -+ Services.prefs.getBoolPref("extensions.getAddons.showPane", true) -+ ) { -+ viewID = "addons://discover/"; -+ } else { -+ viewID = "addons://list/extension"; -+ } -+ await BrowserOpenAddonsMgr(viewID); - return; - } - } - - let panel = this.panel; diff --git a/release b/release index 00750ed..d00491f 100644 --- a/release +++ b/release @@ -1 +1 @@ -3 +1 diff --git a/settings b/settings index 4387a0c..575d6a1 160000 --- a/settings +++ b/settings @@ -1 +1 @@ -Subproject commit 4387a0cbba18832d143bc1f5cc53e9b26f770841 +Subproject commit 575d6a19d18113c9eaecd2fc770e42ad05adf362 diff --git a/version b/version index 1cfb1a5..5fdb1e2 100644 --- a/version +++ b/version @@ -1 +1 @@ -130.0 +131.0