System-wide resolver — Ariadne's Thread
@@ -605,7 +611,7 @@
// into General in 0.3.21. Leaving the id in this list threw a
// TypeError inside showSection (getElementById("naming") → null),
// which broke every click after General/Search/Passwords.
- const sections = ["general", "search", "passwords", "performance", "privacy", "addons"];
+ const sections = ["general", "search", "passwords", "performance", "privacy", "plugins", "addons"];
function showSection(sec) {
if (!sections.includes(sec)) return;
document.querySelectorAll(".side a").forEach((x) => x.classList.toggle("active", x.dataset.sec === sec));
@@ -1275,6 +1281,15 @@
});
document.getElementById("addonsOpenDir").addEventListener("click", () => C.openAddonsDir());
document.querySelector('.side a[data-sec="addons"]').addEventListener("click", () => { loadAddons(); loadStagedAddonUpdates(); });
+ // Plug-ins tab: refresh Ariadne's live daemon state on every visit so it
+ // doesn't display stale "checking…" text if the background poll finished
+ // while another section was open. Aegis card loads on page-init and its
+ // "Check for updates" button is user-initiated, so we don't auto-poll it
+ // (that would fire a network request every tab-switch).
+ document.querySelector('.side a[data-sec="plugins"]').addEventListener("click", () => {
+ const ar = document.getElementById("ariadneRefresh");
+ if (ar) ar.click();
+ });
// Manual "Check for updates" for extensions — runs the same signed-update
// polling the boot timer runs, and surfaces what's staged for the next