summaryrefslogtreecommitdiff
path: root/legacy.base.js
diff options
context:
space:
mode:
Diffstat (limited to 'legacy.base.js')
-rw-r--r--legacy.base.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/legacy.base.js b/legacy.base.js
new file mode 100644
index 0000000..0531c16
--- /dev/null
+++ b/legacy.base.js
@@ -0,0 +1,28 @@
+this.legacy = class extends ExtensionAPI {
+ getAPI() {
+ return {
+ legacy: {
+ register() {
+ let {XPIDatabase} = ChromeUtils.importESModule('resource://gre/modules/addons/XPIDatabase.sys.mjs');
+ XPIDatabase.isDisabledLegacy = (addon) => false;
+ XPIDatabase.mustSign = (aType) => false;
+
+ const {AddonManager} = ChromeUtils.importESModule('resource://gre/modules/AddonManager.sys.mjs');
+ AddonManager.addExternalExtensionLoader(BootstrapLoader);
+ },
+ finalize() {
+ // from xiaoxiaoflood's bootstrapLoader.xpi
+ const {AddonManager} = ChromeUtils.importESModule('resource://gre/modules/AddonManager.sys.mjs');
+ AddonManager.getAllAddons().then(addons => {
+ addons.forEach(addon => {
+ if (addon.type == 'extension' && !addon.isWebExtension && !addon.userDisabled) {
+ addon.disable();
+ addon.enable();
+ }
+ })
+ })
+ }
+ }
+ }
+ }
+}