summaryrefslogtreecommitdiff
path: root/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
diff options
context:
space:
mode:
authorgrizzlyuser <grizzlyuser@protonmail.com>2023-01-17 16:49:02 +0100
committerbill-auger <mr.j.spam.me@gmail.com>2023-02-08 15:55:59 -0500
commit4b5218aa766c653c039a50330ea0040ecb7ba27a (patch)
tree65b9c6a985a08e4fb3d9a379646eeda6f88ac863 /libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
parentac2d276682d34084e6c0445ab217cb1c85e6c326 (diff)
libre/iceweasel: 109.0
* Update version and patches according to upstream changes * Remote Settings patching: fix modification of response headers after local fetching of JSON file from bundled resources, because response headers became immutable in this version. * FSDG: Remove some values of preferences containing URLs to AMO (see commit messages from 9002-FSDG-preference-defaults.patch) and add a corresponding validation to PKGBUILD. Also remove some related property overrides from vendor.js.in and patch them in the code, please find the reasoning in the same patch. Also remove extensions.htmlaboutaddons.discover.enabled preference override from vendor.js.in, because it was removed upstream in [1]. * Remove technical patch for python-zstandard 0.19, fixed upstream * Remove RENAME_PROFILE logic from PKGBUILD, as the comment from that code suggests to remove it in 2023 [1] https://hg.mozilla.org/mozilla-central/rev/e542391fb8c5
Diffstat (limited to 'libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch')
-rw-r--r--libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch208
1 files changed, 112 insertions, 96 deletions
diff --git a/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch b/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
index 2cc30dd70..5e64a7f02 100644
--- a/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
+++ b/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
@@ -1,4 +1,4 @@
-From 07801d1961effd9182c80a990a23f338e3972efb Mon Sep 17 00:00:00 2001
+From 7d313f93cebc14b7eb6fc1654b60a143b5cd7f52 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:20:39 +0200
Subject: [PATCH 01/13] Point to local omni.ja files, not remote server
@@ -26,19 +26,19 @@ If necessary, missing files can be added later.
.../newtab/data/content/activity-stream.bundle.js | 2 +-
services/settings/Utils.jsm | 2 +-
.../periodic-updates/scripts/periodic_file_updates.sh | 2 +-
- .../components/backgroundtasks/BackgroundTask_message.sys.mjs | 4 ++--
+ .../backgroundtasks/BackgroundTask_message.sys.mjs | 4 ++--
toolkit/components/search/SearchUtils.sys.mjs | 8 ++++----
toolkit/components/search/docs/DefaultSearchEngines.rst | 2 +-
.../components/search/docs/SearchEngineConfiguration.rst | 2 +-
- toolkit/modules/AppConstants.sys.mjs | 4 ++--
+ toolkit/modules/AppConstants.sys.mjs | 4 ++--
toolkit/mozapps/defaultagent/RemoteSettings.cpp | 2 +-
10 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
-index e663fbd32b..a7b7a1994f 100644
+index 17155bb4ba..859560e25b 100644
--- a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
+++ b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
-@@ -1116,7 +1116,7 @@ export class ASRouterAdminInner extends React.PureComponent {
+@@ -1237,7 +1237,7 @@ export class ASRouterAdminInner extends React.PureComponent {
<a
className="providerUrl"
target="_blank"
@@ -48,10 +48,10 @@ index e663fbd32b..a7b7a1994f 100644
>
nimbus-desktop-experiments
diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js b/browser/components/newtab/data/content/activity-stream.bundle.js
-index 938b44f87b..cdfd5b8589 100644
+index 159e948352..5cbe5ac2c2 100644
--- a/browser/components/newtab/data/content/activity-stream.bundle.js
+++ b/browser/components/newtab/data/content/activity-stream.bundle.js
-@@ -1487,7 +1487,7 @@ class ASRouterAdminInner extends (external_React_default()).PureComponent {
+@@ -1593,7 +1593,7 @@ class ASRouterAdminInner extends (external_React_default()).PureComponent {
label = /*#__PURE__*/external_React_default().createElement("span", null, "remote settings (", /*#__PURE__*/external_React_default().createElement("a", {
className: "providerUrl",
target: "_blank",
@@ -61,10 +61,10 @@ index 938b44f87b..cdfd5b8589 100644
}, "nimbus-desktop-experiments"), ")");
}
diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm
-index a8b0c67ce1..9761486718 100644
+index 50114dfbbc..9d957283da 100644
--- a/services/settings/Utils.jsm
+++ b/services/settings/Utils.jsm
-@@ -107,7 +107,7 @@ var Utils = {
+@@ -101,7 +101,7 @@ var Utils = {
: AppConstants.REMOTE_SETTINGS_SERVER_URL;
},
@@ -74,10 +74,10 @@ index a8b0c67ce1..9761486718 100644
/**
* Logger instance.
diff --git a/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh b/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh
-index f177a1440c..c41b0beece 100755
+index b88ee476da..440615e4e1 100755
--- a/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh
+++ b/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh
-@@ -285,7 +285,7 @@ function compare_suffix_lists {
+@@ -286,7 +286,7 @@ function compare_suffix_lists {
}
function compare_remote_settings_files {
@@ -87,7 +87,7 @@ index f177a1440c..c41b0beece 100755
# 1. List remote settings collections from server.
echo "INFO: fetch remote settings list from server"
diff --git a/toolkit/components/backgroundtasks/BackgroundTask_message.sys.mjs b/toolkit/components/backgroundtasks/BackgroundTask_message.sys.mjs
-index 55e8f70e77..2b5167b36b 100644
+index dbbfa53d39..11b93b07f2 100644
--- a/toolkit/components/backgroundtasks/BackgroundTask_message.sys.mjs
+++ b/toolkit/components/backgroundtasks/BackgroundTask_message.sys.mjs
@@ -19,8 +19,8 @@
@@ -102,10 +102,10 @@ index 55e8f70e77..2b5167b36b 100644
// --preview: enable Remote Settings and Experiment previews.
//
diff --git a/toolkit/components/search/SearchUtils.sys.mjs b/toolkit/components/search/SearchUtils.sys.mjs
-index a3072d19b3..d24df38913 100644
+index 65581754e8..4e7ccf48e4 100644
--- a/toolkit/components/search/SearchUtils.sys.mjs
+++ b/toolkit/components/search/SearchUtils.sys.mjs
-@@ -154,13 +154,13 @@ export var SearchUtils = {
+@@ -150,13 +150,13 @@ export var SearchUtils = {
ENGINES_URLS: {
"prod-main":
@@ -145,10 +145,10 @@ index c782f9f7c3..4d773d27c5 100644
+.. _viewed live: resource://app/defaults/settings/main/search-config.json
.. _Normandy: /toolkit/components/normandy/normandy/services.html
diff --git a/toolkit/modules/AppConstants.sys.mjs b/toolkit/modules/AppConstants.sys.mjs
-index 15125bcca0..1b3e502730 100644
+index 59ba540c6d..2b9ff5796b 100644
--- a/toolkit/modules/AppConstants.sys.mjs
+++ b/toolkit/modules/AppConstants.sys.mjs
-@@ -420,9 +420,9 @@ var AppConstants = Object.freeze({
+@@ -416,9 +416,9 @@ export var AppConstants = Object.freeze({
REMOTE_SETTINGS_SERVER_URL:
#ifdef MOZ_THUNDERBIRD
@@ -174,10 +174,10 @@ index 667d9fc628..b2bf628f29 100644
#define PROD_CID "windows-default-browser-agent"
#define PROD_ID "state"
--
-2.37.2
+2.39.0
-From 70b74406d004aa6a4da38d179495f767ec583e58 Mon Sep 17 00:00:00 2001
+From 233227d0f2da317fe71a643b1c54d623f56f5d84 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:34:08 +0200
Subject: [PATCH 02/13] Remove polling triggered by push broadcasts
@@ -189,15 +189,15 @@ setup. Remove the record from broadcast-listeners.json file stored in
the user profile, so that it doesn't get picked up by push broadcast
service.
---
- dom/push/PushBroadcastService.sys.mjs | 13 +++++++++++++
- services/settings/remote-settings.js | 11 ++---------
+ dom/push/PushBroadcastService.sys.mjs | 13 +++++++++++++
+ services/settings/remote-settings.js | 11 ++---------
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/dom/push/PushBroadcastService.sys.mjs b/dom/push/PushBroadcastService.sys.mjs
-index 80df53ee49..109d602d4a 100644
+index cca80fee6c..c83b0f77d7 100644
--- a/dom/push/PushBroadcastService.sys.mjs
+++ b/dom/push/PushBroadcastService.sys.mjs
-@@ -179,6 +179,19 @@ var BroadcastService = class {
+@@ -170,6 +170,19 @@ export var BroadcastService = class {
}
}
@@ -218,7 +218,7 @@ index 80df53ee49..109d602d4a 100644
* Call the listeners of the specified broadcasts.
*
diff --git a/services/settings/remote-settings.js b/services/settings/remote-settings.js
-index 44727dfc0e..ece21d09bc 100644
+index c479de2a17..f797df533a 100644
--- a/services/settings/remote-settings.js
+++ b/services/settings/remote-settings.js
@@ -582,11 +582,7 @@ function remoteSettingsFunction() {
@@ -246,10 +246,10 @@ index 44727dfc0e..ece21d09bc 100644
},
};
--
-2.37.2
+2.39.0
-From 9f91207a91cb895a67f90f5e2e4e3968e8bd7b0e Mon Sep 17 00:00:00 2001
+From c4bd08fa8614bcf212975f4c0b3555437e8a8d59 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:41:54 +0200
Subject: [PATCH 03/13] Remove timer that triggers polling for changes
@@ -290,10 +290,10 @@ index 3bfed26ea4..807eb220ec 100644
-# see syntax https://searchfox.org/mozilla-central/rev/cc280c4be94ff8cf64a27cc9b3d6831ffa49fa45/toolkit/components/timermanager/UpdateTimerManager.jsm#155
-category update-timer RemoteSettingsComponents @mozilla.org/services/settings;1,getService,services-settings-poll-changes,services.settings.poll_interval,86400,259200
--
-2.37.2
+2.39.0
-From 8f0541899626807c4cb11996b5763463f3b9dc6f Mon Sep 17 00:00:00 2001
+From b106c8b4e919e1d6c42f66bb07461c63848ebb2b Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:47:41 +0200
Subject: [PATCH 04/13] Utils: fetch timestamps of each collection locally
@@ -305,17 +305,17 @@ timestamps from that file and mock response headers to not confuse any
code that expects them.
---
browser/installer/package-manifest.in | 1 +
- services/settings/Utils.jsm | 18 +++++++++++++++---
- services/settings/dumps/monitor/moz.build | 8 ++++++++
+ services/settings/Utils.jsm | 28 ++++++++++++++++++++---
+ services/settings/dumps/monitor/moz.build | 8 +++++++
services/settings/dumps/moz.build | 1 +
- 4 files changed, 25 insertions(+), 3 deletions(-)
+ 4 files changed, 35 insertions(+), 3 deletions(-)
create mode 100644 services/settings/dumps/monitor/moz.build
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
-index 14e582fc61..821b1e2167 100644
+index 9229a0bd0e..565a7b7508 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
-@@ -259,6 +259,7 @@
+@@ -263,6 +263,7 @@
@RESPATH@/browser/defaults/settings/last_modified.json
@RESPATH@/browser/defaults/settings/blocklists
@RESPATH@/browser/defaults/settings/main
@@ -324,10 +324,10 @@ index 14e582fc61..821b1e2167 100644
; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm
-index 9761486718..da55d60201 100644
+index 9d957283da..abdd0a53fa 100644
--- a/services/settings/Utils.jsm
+++ b/services/settings/Utils.jsm
-@@ -379,7 +379,7 @@ var Utils = {
+@@ -370,7 +370,7 @@ var Utils = {
async fetchLatestChanges(serverUrl, options = {}) {
const { expectedTimestamp, lastEtag = "", filters = {} } = options;
@@ -336,20 +336,30 @@ index 9761486718..da55d60201 100644
const params = {
...filters,
_expected: expectedTimestamp ?? 0,
-@@ -394,7 +394,11 @@ var Utils = {
+@@ -385,7 +385,21 @@ var Utils = {
.map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
.join("&");
}
- const response = await Utils.fetch(url);
-+ const response = await fetch(url);
-+ const responseDate = new Date().toUTCString()
-+ response.headers.set("Date", responseDate);
-+ response.headers.set("Last-Modified", responseDate);
-+ response.headers.set("Content-Type", "application/json");
++ const rawResponse = await fetch(url);
++ const responseDate = new Date().toUTCString();
++
++ const headers = new Headers();
++ headers.set("Date", responseDate);
++ headers.set("Last-Modified", responseDate);
++ headers.set("Content-Type", "application/json");
++
++ const responseAttributes = {
++ status: rawResponse.status,
++ statusText: rawResponse.statusText,
++ headers,
++ };
++
++ const response = new Response(rawResponse.body, responseAttributes);
if (response.status >= 500) {
throw new Error(`Server error ${response.status} ${response.statusText}`);
-@@ -429,7 +433,15 @@ var Utils = {
+@@ -420,7 +434,15 @@ var Utils = {
}
}
@@ -368,7 +378,7 @@ index 9761486718..da55d60201 100644
// Since the response is served via a CDN, the Date header value could have been cached.
diff --git a/services/settings/dumps/monitor/moz.build b/services/settings/dumps/monitor/moz.build
new file mode 100644
-index 0000000000..25c53a2eeb
+index 0000000000..d3d017fda5
--- /dev/null
+++ b/services/settings/dumps/monitor/moz.build
@@ -0,0 +1,8 @@
@@ -393,10 +403,10 @@ index f407580bfa..53e9d8b45e 100644
]
--
-2.37.2
+2.39.0
-From dca0c5d7c983a24d742c45705a899430afed41bd Mon Sep 17 00:00:00 2001
+From bd6216d755e4d1c1c8ebba4123732b0b2358101c Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:52:10 +0200
Subject: [PATCH 05/13] Utils: disable offline checking
@@ -408,10 +418,10 @@ current and any future code that relies on it.
1 file changed, 10 deletions(-)
diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm
-index da55d60201..ff45380ff8 100644
+index abdd0a53fa..2cc3ba917b 100644
--- a/services/settings/Utils.jsm
+++ b/services/settings/Utils.jsm
-@@ -193,16 +193,6 @@ var Utils = {
+@@ -184,16 +184,6 @@ var Utils = {
* @return {bool} Whether network is down or not.
*/
get isOffline() {
@@ -429,10 +439,10 @@ index da55d60201..ff45380ff8 100644
},
--
-2.37.2
+2.39.0
-From 1e29854983d5fcc360a6b407b4cd11f6af8d993e Mon Sep 17 00:00:00 2001
+From 237ecd7acdd299b2f89787e4f5f50bb5cc4d970c Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 17:56:02 +0200
Subject: [PATCH 06/13] Refactor hashing logic to a separate function
@@ -445,7 +455,7 @@ integrity checking of the locally cached data.
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/services/settings/RemoteSettingsWorker.jsm b/services/settings/RemoteSettingsWorker.jsm
-index 2e8073271b..24b4ce2af8 100644
+index 57754f0a2b..0ae0c8762a 100644
--- a/services/settings/RemoteSettingsWorker.jsm
+++ b/services/settings/RemoteSettingsWorker.jsm
@@ -191,6 +191,10 @@ class Worker {
@@ -483,10 +493,10 @@ index 9804e80c91..de67b0fb6f 100644
/**
--
-2.37.2
+2.39.0
-From 49543366ee33ad44a5577d082e51a11a2e7b4b7f Mon Sep 17 00:00:00 2001
+From afc7c3a747931dbd1ed02b5bc2af2fd29b607875 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 18:05:02 +0200
Subject: [PATCH 07/13] Client: Fetch and hash records from local dump
@@ -517,14 +527,14 @@ the upgrade to local-only setup.
[1] https://firefox-source-docs.mozilla.org/services/common/services/RemoteSettings.html#initial-data
---
- services/settings/RemoteSettingsClient.jsm | 63 ++++++++++------------
- 1 file changed, 27 insertions(+), 36 deletions(-)
+ services/settings/RemoteSettingsClient.jsm | 66 +++++++++-------------
+ 1 file changed, 28 insertions(+), 38 deletions(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index ae94f272d8..75589ff02e 100644
+index 1d42fc98ff..c8a0898367 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
-@@ -678,11 +678,9 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -692,11 +692,9 @@ class RemoteSettingsClient extends EventEmitter {
// If the data is up-to-date but don't have metadata (records loaded from dump),
// we fetch them and validate the signature immediately.
@@ -538,7 +548,7 @@ index ae94f272d8..75589ff02e 100644
await this.db.importChanges(metadata);
// We don't bother validating the signature if the dump was just loaded. We do
// if the dump was loaded at some other point (eg. from .get()).
-@@ -945,33 +943,23 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -959,38 +957,28 @@ class RemoteSettingsClient extends EventEmitter {
* @returns {Promise}
*/
async _validateCollectionSignature(records, timestamp, metadata) {
@@ -564,6 +574,9 @@ index ae94f272d8..75589ff02e 100644
records,
timestamp
);
+
+- lazy.console.debug(`${this.identifier} verify signature using ${x5u}`);
++ lazy.console.debug(`${this.identifier} verify signature using size ${size} and hash ${hash}`);
if (
- !(await this._verifier.asyncVerifyContentSignature(
- serialized,
@@ -577,8 +590,12 @@ index ae94f272d8..75589ff02e 100644
+ hash
))
) {
- throw new InvalidSignatureError(this.identifier);
-@@ -1144,24 +1132,27 @@ class RemoteSettingsClient extends EventEmitter {
+- throw new InvalidSignatureError(this.identifier, x5u);
++ throw new InvalidSignatureError(this.identifier);
+ }
+ }
+
+@@ -1160,24 +1148,26 @@ class RemoteSettingsClient extends EventEmitter {
* @param since timestamp of last sync (optional)
*/
async _fetchChangeset(expectedTimestamp, since) {
@@ -600,13 +617,13 @@ index ae94f272d8..75589ff02e 100644
+ const { data } = await lazy.SharedUtils.loadJSONDump(
+ this.bucketName,
+ this.collectionName
-+ );
+ );
+ const remoteRecords = data ?? [];
+
+ const serialized = await lazy.RemoteSettingsWorker.canonicalStringify(
+ remoteRecords,
+ expectedTimestamp
- );
++ );
+ const bytes = new TextEncoder().encode(serialized);
+ const metadata = {
+ app_build_id: Services.appinfo.appBuildID,
@@ -615,7 +632,6 @@ index ae94f272d8..75589ff02e 100644
+ size: bytes.length,
+ },
+ }
-+
return {
- remoteTimestamp,
+ remoteTimestamp: expectedTimestamp,
@@ -623,10 +639,10 @@ index ae94f272d8..75589ff02e 100644
remoteRecords,
};
--
-2.37.2
+2.39.0
-From b6ce5faacf9bdf97066c7182399b58d5ef91a445 Mon Sep 17 00:00:00 2001
+From 3f0d975225fb9d786eb8b4ae303f49f96f8d91e1 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 18:42:56 +0200
Subject: [PATCH 08/13] Client: start deferred sync on get() or on()
@@ -648,7 +664,7 @@ occurs during the session.
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index 75589ff02e..90280fc848 100644
+index c8a0898367..4b35ad0eef 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
@@ -22,6 +22,7 @@ XPCOMUtils.defineLazyModuleGetters(lazy, {
@@ -667,7 +683,7 @@ index 75589ff02e..90280fc848 100644
XPCOMUtils.defineLazyGetter(lazy, "console", () => lazy.Utils.log);
-@@ -319,6 +321,11 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -324,6 +326,11 @@ class RemoteSettingsClient extends EventEmitter {
this._lastCheckTimePref = lastCheckTimePref;
this._verifier = null;
this._syncRunning = false;
@@ -679,7 +695,7 @@ index 75589ff02e..90280fc848 100644
// This attribute allows signature verification to be disabled, when running tests
// or when pulling data from a dev server.
-@@ -348,6 +355,11 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -353,6 +360,11 @@ class RemoteSettingsClient extends EventEmitter {
this.db.identifier = this.identifier;
}
@@ -691,7 +707,7 @@ index 75589ff02e..90280fc848 100644
get identifier() {
return `${this.bucketName}/${this.collectionName}`;
}
-@@ -419,6 +431,10 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -426,6 +438,10 @@ class RemoteSettingsClient extends EventEmitter {
let lastModified = forceSync ? null : await this.db.getLastModified();
let hasLocalData = lastModified !== null;
@@ -702,7 +718,7 @@ index 75589ff02e..90280fc848 100644
if (forceSync) {
if (!this._importingPromise) {
this._importingPromise = (async () => {
-@@ -527,7 +543,10 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -541,7 +557,10 @@ class RemoteSettingsClient extends EventEmitter {
// No need to verify signature on JSON dumps.
// If local DB cannot be read, then we don't even try to do anything,
// we return results early.
@@ -714,7 +730,7 @@ index 75589ff02e..90280fc848 100644
}
lazy.console.debug(
-@@ -567,6 +586,12 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -581,6 +600,12 @@ class RemoteSettingsClient extends EventEmitter {
return final;
}
@@ -728,10 +744,10 @@ index 75589ff02e..90280fc848 100644
* Synchronize the local database with the remote server.
*
--
-2.37.2
+2.39.0
-From 617d90b265e5d82aa964247f3bd68eb92ebd2cf0 Mon Sep 17 00:00:00 2001
+From 137f0c81f37356fb97e7037ee64c2fa65ed242ea Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 18:53:51 +0200
Subject: [PATCH 09/13] Client: deep compare records if timestamps match
@@ -753,7 +769,7 @@ noticeable performance issues.
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index 90280fc848..3d9f04696f 100644
+index 4b35ad0eef..a8ce913d8e 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
@@ -19,6 +19,7 @@ const { Downloader } = ChromeUtils.import(
@@ -764,7 +780,7 @@ index 90280fc848..3d9f04696f 100644
ClientEnvironmentBase:
"resource://gre/modules/components-utils/ClientEnvironment.jsm",
Database: "resource://services-settings/Database.jsm",
-@@ -1132,7 +1133,10 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1148,7 +1149,10 @@ class RemoteSettingsClient extends EventEmitter {
const old = oldById.get(r.id);
if (old) {
oldById.delete(r.id);
@@ -777,10 +793,10 @@ index 90280fc848..3d9f04696f 100644
}
} else {
--
-2.37.2
+2.39.0
-From 66122f118e859c33f1d972b658340dfc43b4b875 Mon Sep 17 00:00:00 2001
+From 3e1e4c19780fd84fd0fdeaaa222239b4572fb251 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 19:01:39 +0200
Subject: [PATCH 10/13] Client: delete more data on cleanup
@@ -798,10 +814,10 @@ logic gets the data about the attachments from those records.
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index 3d9f04696f..e102c8b89d 100644
+index a8ce913d8e..19883607f2 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
-@@ -256,7 +256,7 @@ class AttachmentDownloader extends Downloader {
+@@ -261,7 +261,7 @@ class AttachmentDownloader extends Downloader {
allRecords
.filter(r => !!r.attachment)
.map(r =>
@@ -810,7 +826,7 @@ index 3d9f04696f..e102c8b89d 100644
)
);
}
-@@ -1092,7 +1092,7 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1108,7 +1108,7 @@ class RemoteSettingsClient extends EventEmitter {
// Signature failed, clear local DB because it contains
// bad data (local + remote changes).
lazy.console.debug(`${this.identifier} clear local data`);
@@ -819,7 +835,7 @@ index 3d9f04696f..e102c8b89d 100644
// Local data was tampered, throw and it will retry from empty DB.
lazy.console.error(`${this.identifier} local data was corrupted`);
throw new CorruptedDataError(this.identifier);
-@@ -1114,7 +1114,7 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1130,7 +1130,7 @@ class RemoteSettingsClient extends EventEmitter {
// _importJSONDump() only clears DB if dump is available,
// therefore do it here!
if (imported < 0) {
@@ -828,7 +844,7 @@ index 3d9f04696f..e102c8b89d 100644
}
}
}
-@@ -1154,6 +1154,12 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1170,6 +1170,12 @@ class RemoteSettingsClient extends EventEmitter {
return syncResult;
}
@@ -842,10 +858,10 @@ index 3d9f04696f..e102c8b89d 100644
* Fetch information from changeset endpoint.
*
--
-2.37.2
+2.39.0
-From 3ef189a633dfbe5a95cf5b290808b0003e8ba5c1 Mon Sep 17 00:00:00 2001
+From 8da7335ac9baa4f524293ec810af7b360009ec19 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 19:07:56 +0200
Subject: [PATCH 11/13] Client: remove comparison of collection timestamps
@@ -860,10 +876,10 @@ necessary cleanup. So remove the checks.
1 file changed, 5 deletions(-)
diff --git a/services/settings/RemoteSettingsClient.jsm b/services/settings/RemoteSettingsClient.jsm
-index e102c8b89d..9cb3455aaf 100644
+index 19883607f2..8b4420943f 100644
--- a/services/settings/RemoteSettingsClient.jsm
+++ b/services/settings/RemoteSettingsClient.jsm
-@@ -1034,14 +1034,9 @@ class RemoteSettingsClient extends EventEmitter {
+@@ -1050,14 +1050,9 @@ class RemoteSettingsClient extends EventEmitter {
updated: [],
deleted: [],
};
@@ -879,10 +895,10 @@ index e102c8b89d..9cb3455aaf 100644
await this.db.importChanges(metadata, remoteTimestamp, remoteRecords, {
clear: retry,
--
-2.37.2
+2.39.0
-From 3d8d5ef12ab1c06cff841a9cca15a575750fc48d Mon Sep 17 00:00:00 2001
+From 5b40750eb05b0eb230ec44f0f5640ecc8d5e3b47 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 19:15:44 +0200
Subject: [PATCH 12/13] Attachments: load only from dump and drop cached
@@ -892,7 +908,7 @@ Subject: [PATCH 12/13] Attachments: load only from dump and drop cached
1 file changed, 8 insertions(+), 29 deletions(-)
diff --git a/services/settings/Attachments.jsm b/services/settings/Attachments.jsm
-index 00bf059d55..979e22c06a 100644
+index 67a1f32261..6ff0a3b7c6 100644
--- a/services/settings/Attachments.jsm
+++ b/services/settings/Attachments.jsm
@@ -151,9 +151,10 @@ class Downloader {
@@ -903,7 +919,7 @@ index 00bf059d55..979e22c06a 100644
fallbackToDump = false,
} = options || {};
+ const fallbackToCache = false;
-+
++
if (!attachmentId) {
// Check for pre-condition. This should not happen, but it is explicitly
// checked to avoid mixing up attachments, which could be dangerous.
@@ -923,7 +939,7 @@ index 00bf059d55..979e22c06a 100644
+ await this.cacheImpl.delete(attachmentId);
} catch (e) {
// Failed to read from cache, e.g. IndexedDB unusable.
- Cu.reportError(e);
+ console.error(e);
@@ -300,7 +302,7 @@ class Downloader {
* @returns {String} the absolute file path to the downloaded attachment.
*/
@@ -971,10 +987,10 @@ index 00bf059d55..979e22c06a 100644
/**
--
-2.37.2
+2.39.0
-From 0ba5c3f95dd3c8a468d49c73b5067bd78deb1442 Mon Sep 17 00:00:00 2001
+From cac0e35f9b818570f37681ee7cd12071e8e5d747 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Wed, 30 Dec 2020 19:22:20 +0200
Subject: [PATCH 13/13] Disable CRLite entirely for now
@@ -999,10 +1015,10 @@ certificate revocations.
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
-index 192915c16f..307f983896 100644
+index fca74af174..d05d118e58 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
-@@ -12540,7 +12540,7 @@
+@@ -13250,7 +13250,7 @@
# 3: Consult CRLite and enforce "Not Revoked" results, but defer to OCSP for "Revoked".
- name: security.pki.crlite_mode
type: RelaxedAtomicUint32
@@ -1012,10 +1028,10 @@ index 192915c16f..307f983896 100644
- name: security.tls.version.min
diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp
-index aab4319651..f21432a7e3 100644
+index 5844ffecfd..6084ffc93c 100644
--- a/security/manager/ssl/nsNSSComponent.cpp
+++ b/security/manager/ssl/nsNSSComponent.cpp
-@@ -1434,6 +1434,7 @@ void nsNSSComponent::setValidationOptions(
+@@ -1430,6 +1430,7 @@ void nsNSSComponent::setValidationOptions(
CRLiteMode defaultCRLiteMode = CRLiteMode::Disabled;
CRLiteMode crliteMode =
static_cast<CRLiteMode>(StaticPrefs::security_pki_crlite_mode());
@@ -1024,5 +1040,5 @@ index aab4319651..f21432a7e3 100644
case CRLiteMode::Disabled:
case CRLiteMode::TelemetryOnly:
--
-2.37.2
+2.39.0