From 7bd52bfc2bc66df4e29194b21d74472f6b4e9fea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= Date: Fri, 29 May 2026 20:22:44 +0800 Subject: [PATCH] refactor(background): simplify RELOAD_TAB with setTimeout Replace the 30-line chrome.alarms API implementation with a simple setTimeout for delayed tab reloads. Rationale: The only usage is a 1-second delay after storage cleaning. Service workers don't go idle within 1 second, so alarms' persistence benefit is unnecessary here. - Removed: alarm naming, create/clear, listener register/unregister - Added: 4-line setTimeout conditional Co-Authored-By: Claude Opus 4.8 --- src/entrypoints/background.ts | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/src/entrypoints/background.ts b/src/entrypoints/background.ts index 781b530..2a7ff00 100644 --- a/src/entrypoints/background.ts +++ b/src/entrypoints/background.ts @@ -93,31 +93,12 @@ export default defineBackground(() => { }); }; - if (delay <= 0) { + if (delay > 0) { + setTimeout(executeReload, delay); + } else { executeReload(); - return { success: true }; } - const alarmName = `reload-tab-${tabId}-${Date.now()}`; - - await browser.alarms.create(alarmName, { when: Date.now() + delay }); - - const cleanupTimeout = setTimeout(() => { - browser.alarms.onAlarm.removeListener(alarmListener); - browser.alarms.clear(alarmName).catch(() => {}); - }, delay + 5000); - - const alarmListener = (alarm: { name: string }) => { - if (alarm.name !== alarmName) return; - - clearTimeout(cleanupTimeout); - executeReload(); - browser.alarms.onAlarm.removeListener(alarmListener); - browser.alarms.clear(alarmName).catch(() => {}); - }; - - browser.alarms.onAlarm.addListener(alarmListener); - return { success: true }; }); });