baa-conductor

git clone 

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
M plugins/baa-firefox/controller.js
+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();