Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update fullpage-translation patch from librewolf #10

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 60 additions & 44 deletions patches/librewolf/fullpage-translations.patch
Original file line number Diff line number Diff line change
@@ -1,96 +1,80 @@
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`)
+ * @param {string} options.serverUrl
* @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,
+ serverUrl,
} = 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,
+ serverUrl,
});
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`)
+ * @param {String} options.serverUrl
* @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,
+ serverUrl,
} = {}
) {
// 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;
+ this._serverUrl = serverUrl;

// 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() {
Expand All @@ -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(
Expand All @@ -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} */
Expand All @@ -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(
Expand All @@ -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);
Expand All @@ -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);
},
Expand All @@ -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 }} */
Expand Down