Something went wrong. Try again.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829// Runs as an event page in Firefox and a service worker in Chrome, so no imports.const ext = globalThis.browser ?? globalThis.chrome;const TRIAGE_URL = ext.runtime.getURL("triage.html");
// Toolbar button (or Alt+Shift+T): focus the triage page if it's already open, otherwise open it.ext.action.onClicked.addListener(async () => { const tabs = await ext.tabs.query({}); const existing = tabs.find((t) => t.url?.startsWith(TRIAGE_URL)); if (existing) { await ext.tabs.update(existing.id, { active: true }); await ext.windows.update(existing.windowId, { focused: true }); } else { await ext.tabs.create({ url: TRIAGE_URL }); }});
// Badge shows the total open tab count as a gentle nudge.async function updateBadge(removedTabId) { const tabs = await ext.tabs.query({}); const count = tabs.filter((t) => t.id !== removedTabId).length; await ext.action.setBadgeText({ text: String(count) }); await ext.action.setBadgeBackgroundColor({ color: "#666" });}
ext.tabs.onCreated.addListener(() => updateBadge());ext.tabs.onRemoved.addListener((tabId) => updateBadge(tabId));ext.runtime.onStartup.addListener(() => updateBadge());ext.runtime.onInstalled.addListener(() => updateBadge());