From 0fb44c47d55de7303610da700481aed138043948 Mon Sep 17 00:00:00 2001 From: ohfp <1813007-ohfp@users.noreply.gitlab.com> Date: Sun, 6 Oct 2024 12:30:56 +0200 Subject: [PATCH] attempt to fix fullpage-translations.patch for 131.0 --- patches/fullpage-translations.patch | 104 ++++++++++++++++------------ 1 file changed, 60 insertions(+), 44 deletions(-) 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 }} */