aboutsummaryrefslogtreecommitdiff
path: root/modules/firefox.home/chrome/extensionsManager.uc.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/firefox.home/chrome/extensionsManager.uc.js')
-rw-r--r--modules/firefox.home/chrome/extensionsManager.uc.js73
1 files changed, 0 insertions, 73 deletions
diff --git a/modules/firefox.home/chrome/extensionsManager.uc.js b/modules/firefox.home/chrome/extensionsManager.uc.js
deleted file mode 100644
index f5f3ed2..0000000
--- a/modules/firefox.home/chrome/extensionsManager.uc.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// ==UserScript==
-// @name Custom New Tab
-// @version 1.0
-// @description Load a custom link or local file, instead of the default new tab page
-// @startup UC.extensionsManager.init(win)
-// @shutdown UC.extensionsManager.destroy();
-// ==/UserScript==
-
-(() => {
- const ENABLE = false;
-
- // Managed in about:config
- const EXTENSION_SETTINGS_PREF = 'extensions.uc.userExtensionSettings'
-
- const getSettings = () => {
- try {
- return JSON.parse(xPref.get(EXTENSION_SETTINGS_PREF) || 'null') ?? {};
- } catch (e) {
- return {};
- }
- }
-
- const saveSettings = (settings) =>
- xPref.set(EXTENSION_SETTINGS_PREF, JSON.stringify(settings));
-
- const updateExtensionSetting = (id, update) => {
- const settings = getSettings();
- settings.extensions[id] ??= {};
- settings.extensions[id] = update(settings.extensions[id] ?? {}) ?? {};
- saveSettings(settings);
- }
-
- const getCurrentTabHost = () => gBrowser.selectedTab.linkedBrowser.currentURI.host.trim() || null;
-
- const module = {
- disableForHost(id, host = getCurrentTabHost()) {
- updateExtensionSetting(id, s => {
- const urls = new Set(s.disabledHosts || []);
- urls.add(host);
- s.disabledHosts = [...urls];
- return s;
- });
- },
-
- async onTabChange() {
- const currentHost = getCurrentTabHost();
- if (!currentHost) return;
-
- const settings = getSettings();
- const addons = await AddonManager.getAllAddons();
- addons.forEach(addon => {
- const disabledHosts = settings?.extensions[addon.id].disabledHosts ?? [];
- const shouldDisable = disabledHosts.includes(currentHost)
-
- if (addon.isActive && shouldDisable)
- return addon.disable();
- if (!addon.isActive && !shouldDisable)
- return addon.enable();
- })
- },
-
- init(_win) {
- if (!ENABLE) return;
-
- Services.obs.addObserver(module.onTabChange, 'TabSelect');
- },
- destroy() {
- Services.obs.removeObserver(module.onTabChange, 'TabSelect');
- },
- };
-
- UC.extensionsManager = module;
-})();