- commit
- 7721466
- parent
- 3c1e65e
- author
- im_wower
- date
- 2026-03-28 01:56:55 +0800 CST
fix: tolerate controller bootstrap handshake failure
1 files changed,
+27,
-2
+27,
-2
1@@ -5776,14 +5776,39 @@ async function init() {
2 registerTabListeners();
3 registerWebRequestListeners();
4
5- const current = await browser.tabs.getCurrent();
6+ let current = null;
7+
8+ try {
9+ current = await browser.tabs.getCurrent();
10+ } catch (error) {
11+ addLog(
12+ "warn",
13+ `控制页无法读取当前标签页:${error instanceof Error ? error.message : String(error)}`,
14+ false
15+ );
16+ }
17+
18 setControllerRuntimeState({
19 tabId: current?.id ?? null,
20 ready: true,
21 status: "ready",
22 lastReadyAt: Date.now()
23 });
24- await browser.runtime.sendMessage({ type: "controller_ready", tabId: current.id });
25+
26+ if (Number.isInteger(current?.id)) {
27+ try {
28+ await browser.runtime.sendMessage({ type: "controller_ready", tabId: current.id });
29+ } catch (error) {
30+ addLog(
31+ "warn",
32+ `控制页握手失败,但将继续启动:${error instanceof Error ? error.message : String(error)}`,
33+ false
34+ );
35+ }
36+ } else {
37+ addLog("warn", "控制页未拿到当前 tabId,跳过 controller_ready 握手", false);
38+ }
39+
40 await refreshTrackedTabsFromBrowser("startup");
41 await collapseRecoveredDesiredTabs();
42 await restoreDesiredTabsOnStartup();