summaryrefslogtreecommitdiff
path: root/legacy.base.js
blob: 0531c160cd5517b858bd45e46dfa738cf93e561c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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();
              }
            })
          })
        }
      }
    }
  }
}