From a7eceabf2f1f43909b8cd6918e01032d8383db9d Mon Sep 17 00:00:00 2001 From: onemen Date: Wed, 12 Feb 2025 13:26:54 +0200 Subject: [PATCH] refactor: remove obsolete code --- addon/chrome/content/click/click.js | 8 +- addon/chrome/content/click/listeners.js | 8 - addon/chrome/content/dialogs/promptservice.js | 285 -- .../content/dialogs/promptservice.xhtml | 46 - addon/chrome/content/extensions/extensions.js | 59 +- addon/chrome/content/links/setup.js | 69 +- addon/chrome/content/links/userInterface.js | 4 +- addon/chrome/content/minit/minit.js | 62 +- addon/chrome/content/minit/tabView.js | 581 --- addon/chrome/content/minit/tablib.js | 227 +- addon/chrome/content/overlay/tsconfig.json | 2 +- .../content/preferences/appearance.xhtml | 6 - .../content/preferences/incompatible.xhtml | 2 +- addon/chrome/content/preferences/menu.js | 21 - addon/chrome/content/preferences/menu.xhtml | 11 - .../chrome/content/preferences/preferences.js | 46 +- addon/chrome/content/preferences/session.js | 85 - .../chrome/content/preferences/session.xhtml | 208 +- .../subdialogs/pref-appearance.css | 1 + addon/chrome/content/scripts/content.js | 9 - addon/chrome/content/session/session.js | 3720 ----------------- addon/chrome/content/session/sessionStore.js | 137 +- addon/chrome/content/tab/tab.js | 57 - addon/chrome/content/tabmix.js | 54 +- addon/chrome/content/tabmix.xhtml | 10 - addon/chrome/content/utils.js | 50 +- addon/chrome/locale/bg-BG/misc.dtd | 3 - addon/chrome/locale/bg-BG/pref-tabmix.dtd | 28 - .../locale/bg-BG/session-manager.properties | 110 - addon/chrome/locale/bg-BG/tabmix.dtd | 2 - addon/chrome/locale/ca/misc.dtd | 3 - addon/chrome/locale/ca/pref-tabmix.dtd | 28 - .../locale/ca/session-manager.properties | 110 - addon/chrome/locale/ca/tabmix.dtd | 2 - addon/chrome/locale/cs-CZ/misc.dtd | 3 - addon/chrome/locale/cs-CZ/pref-tabmix.dtd | 28 - .../locale/cs-CZ/session-manager.properties | 110 - addon/chrome/locale/cs-CZ/tabmix.dtd | 2 - addon/chrome/locale/da/misc.dtd | 3 - addon/chrome/locale/da/pref-tabmix.dtd | 28 - .../locale/da/session-manager.properties | 110 - addon/chrome/locale/da/tabmix.dtd | 2 - addon/chrome/locale/de/misc.dtd | 3 - addon/chrome/locale/de/pref-tabmix.dtd | 28 - .../locale/de/session-manager.properties | 110 - addon/chrome/locale/de/tabmix.dtd | 2 - addon/chrome/locale/el/misc.dtd | 3 - addon/chrome/locale/el/pref-tabmix.dtd | 28 - .../locale/el/session-manager.properties | 110 - addon/chrome/locale/el/tabmix.dtd | 2 - addon/chrome/locale/en-US/misc.dtd | 3 - addon/chrome/locale/en-US/pref-tabmix.dtd | 28 - .../locale/en-US/session-manager.properties | 110 - addon/chrome/locale/en-US/tabmix.dtd | 2 - addon/chrome/locale/es-ES/misc.dtd | 3 - addon/chrome/locale/es-ES/pref-tabmix.dtd | 28 - .../locale/es-ES/session-manager.properties | 110 - addon/chrome/locale/es-ES/tabmix.dtd | 2 - addon/chrome/locale/et-EE/misc.dtd | 3 - addon/chrome/locale/et-EE/pref-tabmix.dtd | 28 - .../locale/et-EE/session-manager.properties | 110 - addon/chrome/locale/et-EE/tabmix.dtd | 2 - addon/chrome/locale/fa-IR/misc.dtd | 3 - addon/chrome/locale/fa-IR/pref-tabmix.dtd | 28 - .../locale/fa-IR/session-manager.properties | 110 - addon/chrome/locale/fa-IR/tabmix.dtd | 2 - addon/chrome/locale/fr/misc.dtd | 3 - addon/chrome/locale/fr/pref-tabmix.dtd | 28 - .../locale/fr/session-manager.properties | 110 - addon/chrome/locale/fr/tabmix.dtd | 2 - addon/chrome/locale/he-IL/misc.dtd | 3 - addon/chrome/locale/he-IL/pref-tabmix.dtd | 28 - .../locale/he-IL/session-manager.properties | 110 - addon/chrome/locale/he-IL/tabmix.dtd | 2 - addon/chrome/locale/hr-HR/misc.dtd | 3 - addon/chrome/locale/hr-HR/pref-tabmix.dtd | 28 - .../locale/hr-HR/session-manager.properties | 110 - addon/chrome/locale/hr-HR/tabmix.dtd | 2 - addon/chrome/locale/hu-HU/misc.dtd | 3 - addon/chrome/locale/hu-HU/pref-tabmix.dtd | 28 - .../locale/hu-HU/session-manager.properties | 110 - addon/chrome/locale/hu-HU/tabmix.dtd | 2 - addon/chrome/locale/it/misc.dtd | 3 - addon/chrome/locale/it/pref-tabmix.dtd | 28 - .../locale/it/session-manager.properties | 110 - addon/chrome/locale/it/tabmix.dtd | 2 - addon/chrome/locale/ja/misc.dtd | 3 - addon/chrome/locale/ja/pref-tabmix.dtd | 28 - .../locale/ja/session-manager.properties | 110 - addon/chrome/locale/ja/tabmix.dtd | 2 - addon/chrome/locale/ko-KR/misc.dtd | 3 - addon/chrome/locale/ko-KR/pref-tabmix.dtd | 28 - .../locale/ko-KR/session-manager.properties | 110 - addon/chrome/locale/ko-KR/tabmix.dtd | 2 - addon/chrome/locale/nl/misc.dtd | 3 - addon/chrome/locale/nl/pref-tabmix.dtd | 28 - .../locale/nl/session-manager.properties | 110 - addon/chrome/locale/nl/tabmix.dtd | 2 - addon/chrome/locale/pl/misc.dtd | 3 - addon/chrome/locale/pl/pref-tabmix.dtd | 28 - .../locale/pl/session-manager.properties | 110 - addon/chrome/locale/pl/tabmix.dtd | 2 - addon/chrome/locale/pt-BR/misc.dtd | 3 - addon/chrome/locale/pt-BR/pref-tabmix.dtd | 28 - .../locale/pt-BR/session-manager.properties | 110 - addon/chrome/locale/pt-BR/tabmix.dtd | 2 - addon/chrome/locale/pt-PT/misc.dtd | 3 - addon/chrome/locale/pt-PT/pref-tabmix.dtd | 28 - .../locale/pt-PT/session-manager.properties | 110 - addon/chrome/locale/pt-PT/tabmix.dtd | 2 - addon/chrome/locale/ro/misc.dtd | 3 - addon/chrome/locale/ro/pref-tabmix.dtd | 28 - .../locale/ro/session-manager.properties | 110 - addon/chrome/locale/ro/tabmix.dtd | 2 - addon/chrome/locale/ru-RU/misc.dtd | 3 - addon/chrome/locale/ru-RU/pref-tabmix.dtd | 28 - .../locale/ru-RU/session-manager.properties | 110 - addon/chrome/locale/ru-RU/tabmix.dtd | 2 - addon/chrome/locale/sk-SK/misc.dtd | 3 - addon/chrome/locale/sk-SK/pref-tabmix.dtd | 28 - .../locale/sk-SK/session-manager.properties | 110 - addon/chrome/locale/sk-SK/tabmix.dtd | 2 - addon/chrome/locale/sr/misc.dtd | 3 - addon/chrome/locale/sr/pref-tabmix.dtd | 28 - .../locale/sr/session-manager.properties | 110 - addon/chrome/locale/sr/tabmix.dtd | 2 - addon/chrome/locale/sv-SE/misc.dtd | 3 - addon/chrome/locale/sv-SE/pref-tabmix.dtd | 28 - .../locale/sv-SE/session-manager.properties | 110 - addon/chrome/locale/sv-SE/tabmix.dtd | 2 - addon/chrome/locale/tr/misc.dtd | 3 - addon/chrome/locale/tr/pref-tabmix.dtd | 28 - .../locale/tr/session-manager.properties | 110 - addon/chrome/locale/tr/tabmix.dtd | 2 - addon/chrome/locale/uk-UA/misc.dtd | 3 - addon/chrome/locale/uk-UA/pref-tabmix.dtd | 28 - .../locale/uk-UA/session-manager.properties | 110 - addon/chrome/locale/uk-UA/tabmix.dtd | 2 - addon/chrome/locale/vi/misc.dtd | 3 - addon/chrome/locale/vi/pref-tabmix.dtd | 28 - .../locale/vi/session-manager.properties | 110 - addon/chrome/locale/vi/tabmix.dtd | 2 - addon/chrome/locale/zh-CN/misc.dtd | 3 - addon/chrome/locale/zh-CN/pref-tabmix.dtd | 28 - .../locale/zh-CN/session-manager.properties | 110 - addon/chrome/locale/zh-CN/tabmix.dtd | 2 - addon/chrome/locale/zh-TW/misc.dtd | 3 - addon/chrome/locale/zh-TW/pref-tabmix.dtd | 28 - .../locale/zh-TW/session-manager.properties | 110 - addon/chrome/locale/zh-TW/tabmix.dtd | 2 - .../app_version/all/preferences-proton.css | 4 - addon/chrome/skin/tabmix-preferences.css | 21 +- addon/defaults/preferences/tabmix.js | 34 +- addon/modules/AutoReload.sys.mjs | 2 - addon/modules/Decode.sys.mjs | 58 - addon/modules/RenameTab.sys.mjs | 1 - addon/modules/Shortcuts.sys.mjs | 39 +- addon/modules/TabmixSvc.sys.mjs | 33 +- addon/modules/Utils.sys.mjs | 6 - addon/modules/bootstrap/ScriptsLoader.sys.mjs | 1 - addon/modules/extensions/AddonManager.sys.mjs | 52 +- .../extensions/CompatibilityCheck.sys.mjs | 87 +- .../extensions/TabGroupsManager.sys.mjs | 148 - config/eslint-plugin-tabmix/index.js | 9 - eslint.config.js | 6 - types/addon.d.ts | 46 +- types/autoReload.d.ts | 6 + types/custom.gecko.dom.d.ts | 4 - types/customDialog.d.ts | 31 - types/extraTabmixUtils.d.ts | 10 +- types/gecko/tools/index.d.ts | 5 + types/gecko/tools/lib.gecko.dom.d.ts | 108 +- types/gecko/tools/lib.gecko.nsresult.d.ts | 6 + types/gecko/tools/lib.gecko.tweaks.d.ts | 19 +- types/gecko/tools/lib.gecko.xpcom.d.ts | 73 +- types/general.d.ts | 5 +- types/override.d.ts | 4 +- types/preferences.d.ts | 25 +- types/tabmix.d.ts | 16 +- 179 files changed, 400 insertions(+), 10660 deletions(-) delete mode 100644 addon/chrome/content/dialogs/promptservice.js delete mode 100644 addon/chrome/content/dialogs/promptservice.xhtml delete mode 100644 addon/chrome/content/minit/tabView.js delete mode 100644 addon/chrome/content/session/session.js delete mode 100644 addon/chrome/locale/bg-BG/session-manager.properties delete mode 100644 addon/chrome/locale/ca/session-manager.properties delete mode 100644 addon/chrome/locale/cs-CZ/session-manager.properties delete mode 100644 addon/chrome/locale/da/session-manager.properties delete mode 100644 addon/chrome/locale/de/session-manager.properties delete mode 100644 addon/chrome/locale/el/session-manager.properties delete mode 100644 addon/chrome/locale/en-US/session-manager.properties delete mode 100644 addon/chrome/locale/es-ES/session-manager.properties delete mode 100644 addon/chrome/locale/et-EE/session-manager.properties delete mode 100644 addon/chrome/locale/fa-IR/session-manager.properties delete mode 100644 addon/chrome/locale/fr/session-manager.properties delete mode 100644 addon/chrome/locale/he-IL/session-manager.properties delete mode 100644 addon/chrome/locale/hr-HR/session-manager.properties delete mode 100644 addon/chrome/locale/hu-HU/session-manager.properties delete mode 100644 addon/chrome/locale/it/session-manager.properties delete mode 100644 addon/chrome/locale/ja/session-manager.properties delete mode 100644 addon/chrome/locale/ko-KR/session-manager.properties delete mode 100644 addon/chrome/locale/nl/session-manager.properties delete mode 100644 addon/chrome/locale/pl/session-manager.properties delete mode 100644 addon/chrome/locale/pt-BR/session-manager.properties delete mode 100644 addon/chrome/locale/pt-PT/session-manager.properties delete mode 100644 addon/chrome/locale/ro/session-manager.properties delete mode 100644 addon/chrome/locale/ru-RU/session-manager.properties delete mode 100644 addon/chrome/locale/sk-SK/session-manager.properties delete mode 100644 addon/chrome/locale/sr/session-manager.properties delete mode 100644 addon/chrome/locale/sv-SE/session-manager.properties delete mode 100644 addon/chrome/locale/tr/session-manager.properties delete mode 100644 addon/chrome/locale/uk-UA/session-manager.properties delete mode 100644 addon/chrome/locale/vi/session-manager.properties delete mode 100644 addon/chrome/locale/zh-CN/session-manager.properties delete mode 100644 addon/chrome/locale/zh-TW/session-manager.properties delete mode 100644 addon/modules/Decode.sys.mjs delete mode 100644 addon/modules/extensions/TabGroupsManager.sys.mjs delete mode 100644 types/customDialog.d.ts diff --git a/addon/chrome/content/click/click.js b/addon/chrome/content/click/click.js index be71c70ef..a219d4492 100644 --- a/addon/chrome/content/click/click.js +++ b/addon/chrome/content/click/click.js @@ -546,12 +546,6 @@ var TabmixContext = { Tabmix.showItem("context_unpinTab", !multiselectionContext && show && aTab.pinned); Tabmix.showItem("context_pinSelectedTabs", multiselectionContext && show && !aTab.pinned); Tabmix.showItem("context_unpinSelectedTabs", multiselectionContext && show && aTab.pinned); - setTimeout(() => { - // we need to set our show/hide after tabGroups extension - let tabViewMenu = document.getElementById("context_tabViewMenu") || - document.getElementById("tabGroups-context_tabViewMenu"); - Tabmix.showItem(tabViewMenu, Tabmix.prefs.getBoolPref("moveToGroup") && !aTab.pinned); - }); Tabmix.showItem("context_moveTabOptions", Tabmix.prefs.getBoolPref("moveTabOptions")); // make sure not to show menu items that are hidden by Firefox @@ -1267,7 +1261,7 @@ var TabmixAllTabs = { if (typeof window.colorfulTabs == "object") { let rule = "none"; if (window.colorfulTabs.clrAllTabsPopPref) { - let tabClr = TabmixSessionData.getTabValue(tab, "tabClr"); + let tabClr = SessionStore.getCustomTabValue(tab, "tabClr"); if (tabClr) rule = "linear-gradient(rgba(255,255,255,.7),rgba(#1,.5),rgb(#1)),linear-gradient(rgb(#1),rgb(#1))" .replace(/#1/g, tabClr); diff --git a/addon/chrome/content/click/listeners.js b/addon/chrome/content/click/listeners.js index 3250554e0..38e666f3d 100644 --- a/addon/chrome/content/click/listeners.js +++ b/addon/chrome/content/click/listeners.js @@ -23,14 +23,6 @@ const mainCommandSet = document.getElementById("mainCommandSet"); mainCommandSet?.addEventListener("command", (/** @type {PopupEvent} */ event) => { switch (event.target.id) { - case "TabmixSessionUtils:SaveThisWindow": - TabmixSessionManager.sessionUtil("save", "thiswindow"); - event.stopPropagation(); - break; - case "TabmixSessionUtils:SaveAllWindow": - TabmixSessionManager.sessionUtil("save", "allwindows"); - event.stopPropagation(); - break; case "History:UndoCloseTab": event.stopPropagation(); undoCloseTab(); diff --git a/addon/chrome/content/dialogs/promptservice.js b/addon/chrome/content/dialogs/promptservice.js deleted file mode 100644 index 4fd57c60e..000000000 --- a/addon/chrome/content/dialogs/promptservice.js +++ /dev/null @@ -1,285 +0,0 @@ -/// - -/* exported TMP_BUTTON_OK, TMP_BUTTON_CANCEL, TMP_BUTTON_EXTRA1, TMP_SHOW_MENULIST, - TMP_SHOW_TEXTBOX, TMP_HIDE_MENUANDTEXT, TMP_CHECKBOX_UNCHECKED, - TMP_CHECKBOX_CHECKED, TMP_HIDE_CHECKBOX, TMP_SELECT_DEFAULT, - TMP_SELECT_LASTSESSION, TMP_SELECT_CRASH, TMP_SHOW_CLOSED_WINDOW_LIST, - TMP_DLG_SAVE, TMP_DLG_RENAME, - prompt_init, prompt_extra1 */ -"use strict"; - -var TMP_BUTTON_OK = 0; -var TMP_BUTTON_CANCEL = 1; -var TMP_BUTTON_EXTRA1 = 2; -var TMP_SHOW_MENULIST = 1; -var TMP_SHOW_TEXTBOX = 0; -var TMP_HIDE_MENUANDTEXT = 2; -var TMP_CHECKBOX_UNCHECKED = 0; -var TMP_CHECKBOX_CHECKED = 1; -var TMP_HIDE_CHECKBOX = 2; -var TMP_SELECT_DEFAULT = 0; -var TMP_SELECT_LASTSESSION = 1; -var TMP_SELECT_CRASH = 2; -var TMP_SHOW_CLOSED_WINDOW_LIST = 3; -var TMP_DLG_SAVE = 0; -var TMP_DLG_RENAME = 1; - -/** @type {nsIDialogParamBlock} */ -var dialogParams; -/** @type {number} */ -var gHideElmParam; -/** @type {string[]} */ -var gSavedName; -/** @type {string} */ -var gCancelLabel; -/** @type {string} */ -var gOrigName; -/** @type {Element} */ -let documentElement; - -function prompt_init() { - if (!document.documentElement) { - // not supposed to happen - return; - } - documentElement = document.documentElement; - - const dialog = documentElement; - dialog.addEventListener("dialogaccept", prompt_deinit.bind(dialog, 0)); - dialog.addEventListener("dialogcancel", prompt_deinit.bind(dialog, 1)); - dialog.addEventListener("dialogextra1", prompt_extra1.bind(dialog, 2)); - - dialogParams = window.arguments[0].QueryInterface(Ci.nsIDialogParamBlock); - document.title = dialogParams.GetString(0); - - // display the main text - var messageText = dialogParams.GetString(1); - var messageParent = document.getElementById("tm_info"); - var messageParagraphs = messageText.split("\n"); - gHideElmParam = dialogParams.GetInt(1); - for (const paragraphs of messageParagraphs) { - const descriptionNode = document.createElement("description"); - const text = document.createTextNode(paragraphs); - descriptionNode.appendChild(text); - messageParent.appendChild(descriptionNode); - } - - // display the menulist - gHideElmParam = dialogParams.GetInt(1); - var menuList = document.getElementById("tm_prompt"); - if (gHideElmParam == TMP_SHOW_MENULIST) { - var index, isDisabled, popup = document.getElementById("tm_prompt_menu"); - if (dialogParams.GetInt(4) == 1) - window.opener.Tabmix.Sessions.createMenuForDialog(popup, dialogParams.GetInt(3)); - else - window.opener.TabmixSessionManager.createMenuForDialog(popup, dialogParams.GetInt(3)); - switch (dialogParams.GetInt(3)) { - case TMP_SELECT_CRASH: index = popup.childNodes.length - 1; - break; - case TMP_SHOW_CLOSED_WINDOW_LIST: index = 1; // 0 is menuseparator - break; - default: - index = menuList.defaultIndex; - if (index >= popup.childNodes.length || index < 0) index = 1; - isDisabled = popup.childNodes[index]?.getAttribute("disabled") == "true"; - // select the first entry that isn't menuseparator and not "disabled" - if (!isDisabled) break; - for (let i = 1; i < popup.childNodes.length; ++i) { - const item = popup.childNodes[i]; - if (item && item.localName != "menuseparator" && - item.getAttribute("disabled") != "true") { - index = i; - break; - } - } - } - menuList.selectedIndex = index; - } else { - menuList.hidden = true; - } - - // display the textBox - var textBox = document.getElementById("tm_textbox"); - if (gHideElmParam == TMP_SHOW_TEXTBOX) { - messageParent.lastChild?.setAttribute("style", "height:3em"); - gSavedName = dialogParams.GetString(2).split("\n"); - textBox.value = gSavedName.shift() ?? ""; - gOrigName = textBox.value.toLowerCase(); - } else { - textBox.hidden = true; - } - - // display the checkbox - var checkBox = document.getElementById("tm_checkbox"); - var check = dialogParams.GetInt(2); - if (check != TMP_HIDE_CHECKBOX) { - document.getElementById("checkboxContainer").removeAttribute("collapsed"); - checkBox.checked = check == TMP_CHECKBOX_CHECKED; - setLabelForNode(checkBox, dialogParams.GetString(3)); - } - - // display the command buttons - const buttons = ["accept", "cancel", "extra1"]; - var btnLabels = dialogParams.GetString(4).split("\n"); - buttons.forEach((type, i) => { - const button = documentElement.getButton(type); - if (i < btnLabels.length && btnLabels[i]) { - setLabelForNode(button, btnLabels[i]); - } else { - button.hidden = true; // hide extra button - } - }); - - // Set and focus default button - var dButton = buttons[dialogParams.GetInt(0)] ?? "accept"; - dialog.defaultButton = dButton; - if (gHideElmParam == TMP_HIDE_MENUANDTEXT) { // hide menulist & text box and set focus to default Button - document.getElementById("space_before_checkbox").hidden = true; - dialog.getButton(dButton).focus(); - } - - if (gHideElmParam == TMP_SHOW_TEXTBOX) { - dialog.getButton("extra1").hidden = true; - gCancelLabel = dialog.getButton("cancel").label ?? "Cancel"; - inputText(textBox); - } - - // Move to the right location - moveToAlertPosition(); - centerWindowOnScreen(); -} - -/** @param {number} button */ -function prompt_deinit(button) { - dialogParams.SetInt(4, button); // ok = 0; cancel = 1; extra1 = 2; - dialogParams.SetInt(5, Number(document.getElementById("tm_checkbox").checked)); - if (gHideElmParam < TMP_HIDE_MENUANDTEXT) { - if (gHideElmParam == TMP_SHOW_MENULIST) { - var item = document.getElementById("tm_prompt").selectedItem; - ///XXX item.fileName - in the new Tabmix.Sessions - dialogParams.SetString(5, item.session || item.fileName); - dialogParams.SetInt(6, parseInt(item.getAttribute("value") ?? "")); - } else { - dialogParams.SetString(5, document.getElementById("tm_textbox").value); - } - } - // if we are not a modal use a callback function - if (typeof window._callBackFunction == "function") { - if (window.opener && !window.opener.closed) { - let returnData = { - button: dialogParams.GetInt(4), - checked: dialogParams.GetInt(5) == TMP_CHECKBOX_CHECKED, - label: dialogParams.GetString(5), - value: dialogParams.GetInt(6) - }; - try { - window._callBackFunction(returnData); - } catch (ex) { - Tabmix.assert(ex, "error in callback " + window._callBackFunction.name); - } - } - delete window._callBackFunction; - } -} - -/** @param {number} button */ -function prompt_extra1(button) { - prompt_deinit(button); - window.close(); -} - -// copy from commonDialog.js -/** - * @param {HTMLInputElement | HTMLButtonElement} aNode - * @param {string} aLabel - * @param {boolean} [aIsLabelFlag] - */ -function setLabelForNode(aNode, aLabel, aIsLabelFlag) { - var accessKey = null; - if (/ *\(&([^&])\)(:?)$/.test(aLabel)) { - aLabel = RegExp.leftContext + RegExp.$2; - accessKey = RegExp.$1; - } else if (/^([^&]*)&(([^&]).*$)/.test(aLabel)) { - aLabel = RegExp.$1 + RegExp.$2; - accessKey = RegExp.$3; - } - - // && is the magic sequence to embed an & in your label. - aLabel = aLabel.replace(/&&/g, "&"); - if (aIsLabelFlag) { // Set text for