... |
... |
@@ -8,19 +8,19 @@ const { XPCOMUtils } = ChromeUtils.import( |
8
|
8
|
);
|
9
|
9
|
|
10
|
10
|
XPCOMUtils.defineLazyModuleGetters(this, {
|
11
|
|
- RemoteSettings: "resource://services-settings/remote-settings.js",
|
12
|
11
|
RemoteSettingsClient: "resource://services-settings/RemoteSettingsClient.jsm",
|
13
|
12
|
});
|
14
|
13
|
|
15
|
|
-var EXPORTED_SYMBOLS = ["IgnoreLists"];
|
|
14
|
+Cu.importGlobalProperties(["fetch"]);
|
16
|
15
|
|
17
|
|
-const SETTINGS_IGNORELIST_KEY = "hijack-blocklists";
|
|
16
|
+var EXPORTED_SYMBOLS = ["IgnoreLists"];
|
18
|
17
|
|
19
|
18
|
class IgnoreListsManager {
|
|
19
|
+ _ignoreListSettings = null;
|
|
20
|
+
|
20
|
21
|
async init() {
|
21
|
|
- if (!this._ignoreListSettings) {
|
22
|
|
- this._ignoreListSettings = RemoteSettings(SETTINGS_IGNORELIST_KEY);
|
23
|
|
- }
|
|
22
|
+ // TODO: Restore the initialization, once we use only the local dumps for
|
|
23
|
+ // the remote settings.
|
24
|
24
|
}
|
25
|
25
|
|
26
|
26
|
async getAndSubscribe(listener) {
|
... |
... |
@@ -30,7 +30,7 @@ class IgnoreListsManager { |
30
|
30
|
const settings = await this._getIgnoreList();
|
31
|
31
|
|
32
|
32
|
// Listen for future updates after we first get the values.
|
33
|
|
- this._ignoreListSettings.on("sync", listener);
|
|
33
|
+ this._ignoreListSettings?.on("sync", listener);
|
34
|
34
|
|
35
|
35
|
return settings;
|
36
|
36
|
}
|
... |
... |
@@ -70,6 +70,14 @@ class IgnoreListsManager { |
70
|
70
|
* could be obtained.
|
71
|
71
|
*/
|
72
|
72
|
async _getIgnoreListSettings(firstTime = true) {
|
|
73
|
+ if (!this._ignoreListSettings) {
|
|
74
|
+ const dump = await fetch(
|
|
75
|
+ "resource:///defaults/settings/main/hijack-blocklists.json"
|
|
76
|
+ );
|
|
77
|
+ const { data } = await dump.json();
|
|
78
|
+ return data;
|
|
79
|
+ }
|
|
80
|
+
|
73
|
81
|
let result = [];
|
74
|
82
|
try {
|
75
|
83
|
result = await this._ignoreListSettings.get({
|