wsl-chrome-bridge 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README-zh.md CHANGED
@@ -15,12 +15,21 @@
15
15
 
16
16
  若你是從 `0.1.0` 升級,請先閱讀升級說明文件:[UPGRADE-zh.md](./UPGRADE-zh.md)。
17
17
 
18
+ ## 專案特色
19
+
20
+ - 👍 **使用原 MCP 工具**:`wsl-chrome-bridge` 並非取代 `chrome-devtools-mcp` 或 `playwright-mcp`,而是讓你在 WSL2 內沿用原有工具操作 Windows Chrome。
21
+ - ⚡ **無須系統級設定**:不需要設定 WSL Mirrored Mode、portproxy,也不用安裝額外繞路工具。
22
+ - ⚙️ **設定門檻低**:通常只要在原有 MCP 設定中調整 `--executablePath` 與少量參數即可運作。
23
+ - 🛡️ **統一退出行為**:`chrome-devtools-mcp` 與 `playwright-mcp` 退出時對於 Chrome 的關閉行為完全不同,本專案會將這兩種退出行為做一致化處理。
24
+ - 🖥️ headed 模式下,若 MCP 退出,Windows Chrome 視窗仍保持。
25
+ - 🤖 headless 模式下,若 MCP 退出,處於背景執行的 Windows Chrome 行程會被自動銷毀。
26
+
18
27
  ## 基本運作方式
19
28
 
20
29
  ```text
21
30
  [Chrome DevTools MCP] [Playwright MCP]
22
31
  | |
23
- stdio pipe remote-debugging-port
32
+ stdio pipe remote-debugging-port/stdio pipe
24
33
  | |
25
34
  +------[wsl-chrome-bridge]-----+
26
35
  |
@@ -37,6 +46,9 @@ wsl-chrome-bridge 會:
37
46
  - 在 `playwright-mcp` 模式下,於本機建立對應 port 的 WebSocket proxy 後轉發 CDP 訊息
38
47
  - 透過 PowerShell WebSocket relay 雙向轉發 CDP 訊息到 Windows Chrome
39
48
 
49
+ > [!NOTE]
50
+ > 我們在實測中觀察到,近期 `playwright-mcp` 版本可能改以 `--remote-debugging-pipe` 啟動 Chrome(官方 release note 未明確標註變更版本,可能介於 `0.0.71`~`0.0.72`)。為保留舊版相容性,bridge 仍同時支援 remote-debugging-port 與 pipe 兩種上游連線模式。
51
+
40
52
 
41
53
  ## 使用環境需求
42
54
  - Windows 11 安裝最新版 chrome。
@@ -114,28 +126,9 @@ DISPLAY = ":9999"
114
126
  > FAQ 章節有介紹 `--executablePath` 的路徑尋找的方式。
115
127
  > 其他設定寫法可參考 `agent-config-sample/.codex/`。
116
128
 
117
- ## 安裝與建置
118
-
119
- ```bash
120
- npm install
121
- npm run build
122
- ```
123
-
124
- ## 本地測試
125
-
126
- ```bash
127
- npm test
128
- ```
129
-
130
- 測試分成兩層:
131
-
132
- - 單元測試:路徑轉換、參數標準化、bridge 啟動規劃
133
- - 情境測試:CLI 對 bridge runner 的參數傳遞整合
134
-
135
-
136
129
  ## FAQ
137
130
 
138
- ### `--executablePath` 如何找
131
+ ### Q1. `--executablePath` 如何找
139
132
 
140
133
  `chrome-devtools-mcp` 的 `--executablePath` 必須是「檔案路徑」,不能只填指令名(例如 `wsl-chrome-bridge`)。
141
134
 
@@ -170,7 +163,7 @@ ls -la ~/.local/share/mise/shims/wsl-chrome-bridge
170
163
  - 不使用版本管理工具時,透過 `command -v` 找絕對路徑是可行且直接的方法。
171
164
  - 使用 mise 多版本 Node 時,建議使用 `/home/<user>/.local/share/mise/shims/wsl-chrome-bridge`,避免 Node 版本切換後路徑失效。
172
165
 
173
- ### 為什麼 Playwright 需要設定 `DISPLAY`
166
+ ### Q2. 為什麼 Playwright 需要設定 `DISPLAY`
174
167
 
175
168
  在 WSL/Linux 環境下,`playwright-mcp` 啟動瀏覽器時會先判斷圖形顯示環境。
176
169
  若 `DISPLAY` 沒有設定,Playwright 通常會改成 headless 行為(即使你沒有手動指定 `--headless`)。
@@ -178,16 +171,20 @@ ls -la ~/.local/share/mise/shims/wsl-chrome-bridge
178
171
  而這個判斷是在 bridge 之前就完成,所以 `wsl-chrome-bridge` 無法在後段覆蓋該決策。
179
172
  如果你希望在 Windows 看到實際 Chrome 視窗,請於 MCP `env` 額外設定 `DISPLAY`(例如 `DISPLAY=:999`)。
180
173
 
181
- ### 上游 MCP 結束時,Headless 與非 Headless 行為
174
+ ### Q3. 上游 MCP 結束時,Headless 與非 Headless 行為
182
175
 
183
176
  `wsl-chrome-bridge` 在上游 MCP(例如 `chrome-devtools-mcp` / `playwright-mcp`)結束時,採用以下生命週期策略:
184
177
 
185
- - 若 Chrome 是以 headless 啟動,bridge 一律會結束該 Chrome 行程。
186
- - 若 Chrome 不是以 headless 啟動(headed / non-headless),bridge 一律保留該 Chrome 行程。
178
+ - 若 Chrome 是以 headless 啟動,通常是為了進行自動測試,測試完畢大概就沒用了,因此 bridge 一律會結束背景 Chrome 行程,以防 Windows 端殘留背景 Chrome。
179
+ - 若 Chrome 不是以 headless 啟動(headed / non-headless),通常是用戶想看到畫面結果或參與實際操作,bridge 一律保留該 Chrome 行程,這樣用戶的 Chrome 視窗還在,下次重新啟動 AI 助手時,也能接著使用原本開啟的 Chrome。
180
+
181
+ 上述的行為是刻意設計的,因為原生 `chrome-devtools-mcp` 與 `playwright-mcp` 的行為是不同的,如下:
182
+ - `chrome-devtools-mcp` 不論是 headed 或 headless 都不會主動關閉 Chrome。
183
+ - `playwright-mcp` 不論是 headed 或 headless 都會主動關閉 Chrome。
187
184
 
188
- 這是刻意設計的行為,與原生 Playwright 在部分流程下的預設行為可能不同。
185
+ `wsl-chrome-bridge` 統一了兩者的不一致。
189
186
 
190
- ### 為什麼 Playwright 可能出現 `--no-sandbox` 警告
187
+ ### Q4. 為什麼 Playwright 可能出現 `--no-sandbox` 警告
191
188
 
192
189
  `playwright-mcp` 若未明確指定 browser channel,可能會產生含 `--no-sandbox` 的啟動參數。
193
190
  在有視窗的 Chrome 中,會看到這類警告列:
@@ -202,7 +199,7 @@ ls -la ~/.local/share/mise/shims/wsl-chrome-bridge
202
199
  這樣在常見 bridge 設定下可避免上游傳入 `--no-sandbox`。
203
200
 
204
201
 
205
- ### `--user-data-dir` 說明
202
+ ### Q5. `--user-data-dir` 說明
206
203
 
207
204
  `wsl-chrome-bridge` 現在支援上游 MCP 直接傳入 `--user-data-dir` / `--userDataDir`。
208
205
 
@@ -246,7 +243,7 @@ WSL_CHROME_BRIDGE_USER_DATA_DIR = "%TEMP%\\wsl-chrome-bridge\\chrome-profile-xxx
246
243
  - `WSL_CHROME_BRIDGE_DEBUG_LEVEL=all|important` : 可選 debug 詳細度。`important`(預設)只記錄 session / 開頁導覽 / 斷線相關的重要 method 與錯誤回應;`all` 會記錄全部 CDP relay 訊息。
247
244
  - `WSL_CHROME_BRIDGE_DEBUG_RAW_DIR=/tmp/wsl-chrome-bridge-raw` : 以環境變數指定 raw CDP 內容輸出目錄。每筆 request/response/event 會獨立寫入一個 `raw-<timestamp>.log` 檔案,且 `WSL_CHROME_BRIDGE_DEBUG_FILE` 的 relay log 會包含對應的 `rawPath`。
248
245
 
249
- ### 已確認無法使用的參數
246
+ ## 已確認無法使用的參數
250
247
 
251
248
  以下列表為搭配本程式確定無法使用 `chrome-devtools-mcp` 原始參數
252
249
 
@@ -261,10 +258,28 @@ WSL_CHROME_BRIDGE_USER_DATA_DIR = "%TEMP%\\wsl-chrome-bridge\\chrome-profile-xxx
261
258
 
262
259
  - [docs/BRIDGE_CONNECTION_LIFECYCLE-zh.md](./docs/BRIDGE_CONNECTION_LIFECYCLE-zh.md)
263
260
 
264
- 開發時所用技術棧:
261
+ ### 開發時所用技術棧:
265
262
 
266
263
  - Node 24
267
264
  - TypeScript v6
268
265
  - Commander v14
269
266
  - ws v8.20
270
267
  - 測試框架: Vitest v4.1
268
+
269
+ ### 安裝與建置
270
+
271
+ ```bash
272
+ npm install
273
+ npm run build
274
+ ```
275
+
276
+ ### 本地測試
277
+
278
+ ```bash
279
+ npm test
280
+ ```
281
+
282
+ 測試分成兩層:
283
+
284
+ - 單元測試:路徑轉換、參數標準化、bridge 啟動規劃
285
+ - 情境測試:CLI 對 bridge runner 的參數傳遞整合
package/README.md CHANGED
@@ -21,12 +21,21 @@ This idea came from [wsl-chrome-mcp](https://github.com/477174/wsl-chrome-mcp),
21
21
 
22
22
  If you are upgrading from `0.1.0`, read the upgrade guide first: [UPGRADE.md](./UPGRADE.md).
23
23
 
24
+ ## Project Highlights
25
+
26
+ - 👍 **Keep your existing MCP tools**: `wsl-chrome-bridge` does not replace `chrome-devtools-mcp` or `playwright-mcp`; it lets you keep using your current tools in WSL2 to control Windows Chrome.
27
+ - ⚡ **No system-level setup required**: no WSL Mirrored Mode, no portproxy, and no extra workaround tools to install.
28
+ - ⚙️ **Low setup overhead**: in most cases, you only need to adjust `--executablePath` and a few arguments in your existing MCP config.
29
+ - 🛡️ **Unified shutdown behavior**: `chrome-devtools-mcp` and `playwright-mcp` have different Chrome shutdown behavior on exit; this project normalizes that behavior.
30
+ - 🖥️ In headed mode, if MCP exits, the Windows Chrome window stays open.
31
+ - 🤖 In headless mode, if MCP exits, the background Windows Chrome process is automatically terminated.
32
+
24
33
  ## How It Works
25
34
 
26
35
  ```text
27
36
  [Chrome DevTools MCP] [Playwright MCP]
28
37
  | |
29
- stdio pipe remote-debugging-port
38
+ stdio pipe remote-debugging-port/stdio pipe
30
39
  | |
31
40
  +------[wsl-chrome-bridge]-----+
32
41
  |
@@ -43,6 +52,9 @@ If you are upgrading from `0.1.0`, read the upgrade guide first: [UPGRADE.md](./
43
52
  - In `playwright-mcp` mode, create a local WebSocket proxy on the mapped port and forward CDP traffic through it
44
53
  - Relay CDP messages bidirectionally to Windows Chrome through PowerShell websocket relay
45
54
 
55
+ > [!NOTE]
56
+ > Based on our integration tests, recent `playwright-mcp` versions may launch Chrome with `--remote-debugging-pipe` (the official release notes do not clearly mark the exact version transition, and it may be between `0.0.71` and `0.0.72`). To preserve backward compatibility, the bridge continues to support both upstream connection styles: remote-debugging-port and pipe.
57
+
46
58
  ## Requirements
47
59
 
48
60
  - Windows 11 with the latest Chrome installed
@@ -119,27 +131,9 @@ In bridge + system Chrome usage, `--browser chrome` helps avoid upstream `--no-s
119
131
  > See the FAQ for how to locate `--executablePath`.
120
132
  > For more configuration patterns, see `agent-config-sample/.codex/`.
121
133
 
122
- ## Build
123
-
124
- ```bash
125
- npm install
126
- npm run build
127
- ```
128
-
129
- ## Local Tests
130
-
131
- ```bash
132
- npm test
133
- ```
134
-
135
- Test layers:
136
-
137
- - Unit tests: path conversion, argument normalization, bridge launch planning
138
- - Scenario tests: CLI argument passing integration into bridge runner
139
-
140
134
  ## FAQ
141
135
 
142
- ### How to find `--executablePath`
136
+ ### Q1. How to find `--executablePath`
143
137
 
144
138
  `chrome-devtools-mcp` expects `--executablePath` to be a file path, not just a command name (for example `wsl-chrome-bridge`).
145
139
 
@@ -174,7 +168,7 @@ ls -la ~/.local/share/mise/shims/wsl-chrome-bridge
174
168
  - Without a version manager, `command -v` is a direct and valid way to get an absolute path.
175
169
  - With mise multi-version Node, prefer `/home/<user>/.local/share/mise/shims/wsl-chrome-bridge` so path does not break when Node versions change.
176
170
 
177
- ### Why Playwright needs `DISPLAY`
171
+ ### Q2. Why Playwright needs `DISPLAY`
178
172
 
179
173
  In WSL/Linux, `playwright-mcp` checks display availability before launching the browser.
180
174
  If `DISPLAY` is not set, Playwright often switches to headless behavior (even when you did not explicitly pass `--headless`).
@@ -182,16 +176,21 @@ If `DISPLAY` is not set, Playwright often switches to headless behavior (even wh
182
176
  That decision happens upstream before bridge logic starts, so `wsl-chrome-bridge` cannot override it later.
183
177
  If you want to see a visible Chrome window on Windows, set `DISPLAY` in MCP `env` (for example `DISPLAY=:999`).
184
178
 
185
- ### Headless vs headed behavior on upstream MCP exit
179
+ ### Q3. Headless vs headed behavior on upstream MCP exit
186
180
 
187
181
  `wsl-chrome-bridge` applies the following lifecycle policy when upstream MCP exits (for example `chrome-devtools-mcp` / `playwright-mcp`):
188
182
 
189
- - If Chrome was started in headless mode, bridge always terminates that Chrome process.
190
- - If Chrome was started in headed mode (non-headless), bridge always keeps that Chrome process.
183
+ - If Chrome was started in headless mode, it is usually for automated testing; after the test finishes, it is probably no longer needed, so bridge always terminates that background Chrome process to avoid leaving one behind on Windows.
184
+ - If Chrome was started in headed mode (non-headless), it usually means the user wants to see the result on screen or continue interacting manually; bridge always keeps that Chrome process, so the Chrome window stays open and the next time the AI assistant restarts, it can continue using the original Chrome session.
185
+
186
+ This behavior is intentional, because native `chrome-devtools-mcp` and `playwright-mcp` do not behave the same way:
187
+
188
+ - `chrome-devtools-mcp` does not actively close Chrome, whether it is headed or headless.
189
+ - `playwright-mcp` actively closes Chrome, whether it is headed or headless.
191
190
 
192
- This behavior is intentional and can differ from native Playwright defaults in some workflows.
191
+ `wsl-chrome-bridge` normalizes that mismatch.
193
192
 
194
- ### Why Playwright may show `--no-sandbox` warning
193
+ ### Q4. Why Playwright may show `--no-sandbox` warning
195
194
 
196
195
  When `playwright-mcp` is launched without an explicit browser channel, it may resolve to launch args that include `--no-sandbox`. In headed Chrome, this shows the warning banner:
197
196
  `You are using an unsupported command-line flag: --no-sandbox`.
@@ -204,7 +203,7 @@ For bridge usage with system Chrome, recommend adding:
204
203
 
205
204
  This keeps Playwright on the Chrome channel and avoids passing `--no-sandbox` in the common setup.
206
205
 
207
- ### About `--user-data-dir`
206
+ ### Q5. About `--user-data-dir`
208
207
 
209
208
  `wsl-chrome-bridge` accepts direct `--user-data-dir` / `--userDataDir` values from upstream MCP.
210
209
 
@@ -247,7 +246,7 @@ WSL_CHROME_BRIDGE_USER_DATA_DIR = "%TEMP%\\wsl-chrome-bridge\\chrome-profile-xxx
247
246
  - `WSL_CHROME_BRIDGE_DEBUG_LEVEL=all|important`: optional debug verbosity level. `important` (default) logs only important session/navigation/disconnect-related CDP methods and error responses. `all` logs all CDP relay traffic.
248
247
  - `WSL_CHROME_BRIDGE_DEBUG_RAW_DIR=/tmp/wsl-chrome-bridge-raw`: optional directory to store full raw CDP payload files. Each request/response/event payload is written as a separate `raw-<timestamp>.log` file, and `WSL_CHROME_BRIDGE_DEBUG_FILE` includes the corresponding `rawPath` for each relay log entry.
249
248
 
250
- ### Known incompatible original arguments
249
+ ## Known incompatible original arguments
251
250
 
252
251
  The following original `chrome-devtools-mcp` option is currently known as incompatible in this bridge setup:
253
252
 
@@ -261,10 +260,28 @@ Developer lifecycle and recovery reference:
261
260
 
262
261
  - [docs/BRIDGE_CONNECTION_LIFECYCLE.md](./docs/BRIDGE_CONNECTION_LIFECYCLE.md)
263
262
 
264
- Development stack:
263
+ ### Development stack:
265
264
 
266
265
  - Node 24
267
266
  - TypeScript v6
268
267
  - Commander v14
269
268
  - ws v8.20
270
269
  - Test framework: Vitest v4.1
270
+
271
+ ### Build
272
+
273
+ ```bash
274
+ npm install
275
+ npm run build
276
+ ```
277
+
278
+ ### Local Tests
279
+
280
+ ```bash
281
+ npm test
282
+ ```
283
+
284
+ Test layers:
285
+
286
+ - Unit tests: path conversion, argument normalization, bridge launch planning
287
+ - Scenario tests: CLI argument passing integration into bridge runner
@@ -16,6 +16,8 @@ const MAX_TRACKED_REQUEST_METHODS = 100;
16
16
  const INTERNAL_CDP_REQUEST_ID_START = 900_000_000;
17
17
  const DISCONNECT_EVENT_BUFFER_LIMIT = 10;
18
18
  const DISCONNECT_EVENT_TIME_WINDOW_MS = 2_000;
19
+ const DELAYED_BROWSER_CLOSE_FORWARD_MS = 200;
20
+ const PLAYWRIGHT_BROWSER_CLOSE_REQUEST_ID = "-9999";
19
21
  const IMPORTANT_CDP_METHODS = new Set([
20
22
  // Target/session lifecycle (most common failure points for attach/detach/disconnect)
21
23
  "Target.setDiscoverTargets",
@@ -146,17 +148,17 @@ function normalizeDebugLevel(raw) {
146
148
  function requestKey(id, sessionId) {
147
149
  return `${sessionId ?? "root"}::${String(id)}`;
148
150
  }
149
- function detectUpstreamHint(chromeArgs) {
151
+ function detectUpstreamTransportMode(chromeArgs) {
150
152
  const hasPipeMode = chromeArgs.includes("--remote-debugging-pipe");
151
153
  const hasRemoteDebugPort = chromeArgs.some((arg) => arg.startsWith("--remote-debugging-port=")) ||
152
154
  chromeArgs.some((arg) => arg.startsWith("--remote-debug-port=")) ||
153
155
  chromeArgs.includes("--remote-debugging-port") ||
154
156
  chromeArgs.includes("--remote-debug-port");
155
157
  if (hasPipeMode && !hasRemoteDebugPort) {
156
- return "chrome-devtools-mcp";
158
+ return "pipe";
157
159
  }
158
160
  if (!hasPipeMode && hasRemoteDebugPort) {
159
- return "playwright-mcp";
161
+ return "remote-debug-port";
160
162
  }
161
163
  return "unknown";
162
164
  }
@@ -579,7 +581,7 @@ export function createBridgeRunner() {
579
581
  }
580
582
  }
581
583
  writeDebug(`startupContext=${JSON.stringify({
582
- upstreamHint: detectUpstreamHint(chromeArgs),
584
+ upstreamTransportMode: detectUpstreamTransportMode(chromeArgs),
583
585
  argv: chromeArgs,
584
586
  env: collectBridgeEnvSnapshot(env)
585
587
  })}`);
@@ -885,6 +887,8 @@ export function createBridgeRunner() {
885
887
  let relayGeneration = 0;
886
888
  let relayChild = null;
887
889
  let pendingFromPipe = Buffer.alloc(0);
890
+ const delayedBrowserCloseForwardTimers = new Map();
891
+ const suppressedBrowserCloseResponseCounts = new Map();
888
892
  const queuedForRelay = [];
889
893
  let relayBootstrapPending = false;
890
894
  let recoveryPromise = null;
@@ -899,6 +903,11 @@ export function createBridgeRunner() {
899
903
  }
900
904
  closed = true;
901
905
  writeDebug(`cleanup start code=${code}`);
906
+ for (const timer of delayedBrowserCloseForwardTimers.values()) {
907
+ clearTimeout(timer);
908
+ }
909
+ delayedBrowserCloseForwardTimers.clear();
910
+ suppressedBrowserCloseResponseCounts.clear();
902
911
  pipeIn?.destroy();
903
912
  pipeOut?.destroy();
904
913
  if (localProxy) {
@@ -1090,6 +1099,29 @@ export function createBridgeRunner() {
1090
1099
  }
1091
1100
  queuedForRelay.push({ message, rendered });
1092
1101
  };
1102
+ const scheduleDelayedBrowserCloseForward = (key, message, rendered) => {
1103
+ const previousTimer = delayedBrowserCloseForwardTimers.get(key);
1104
+ if (previousTimer) {
1105
+ clearTimeout(previousTimer);
1106
+ }
1107
+ const timer = setTimeout(() => {
1108
+ if (shuttingDown || closed || resolving) {
1109
+ delayedBrowserCloseForwardTimers.delete(key);
1110
+ writeDebug(`delayedForward Browser.close skipped reason=shuttingDown id=${String(rendered.parsed.id)} session=${rendered.parsed.sessionId ?? "root"}`);
1111
+ return;
1112
+ }
1113
+ if (delayedBrowserCloseForwardTimers.get(key) !== timer) {
1114
+ return;
1115
+ }
1116
+ delayedBrowserCloseForwardTimers.delete(key);
1117
+ const delayedRendered = renderCdpMessage(message);
1118
+ suppressedBrowserCloseResponseCounts.set(key, (suppressedBrowserCloseResponseCounts.get(key) ?? 0) + 1);
1119
+ writeDebug(`delayedForward Browser.close fire delayMs=${DELAYED_BROWSER_CLOSE_FORWARD_MS} id=${String(rendered.parsed.id)} session=${rendered.parsed.sessionId ?? "root"}`);
1120
+ sendToRelayOrQueue(message, delayedRendered);
1121
+ }, DELAYED_BROWSER_CLOSE_FORWARD_MS);
1122
+ timer.unref();
1123
+ delayedBrowserCloseForwardTimers.set(key, timer);
1124
+ };
1093
1125
  const startRelay = (remoteBrowserWsUrl, reason) => {
1094
1126
  if (shuttingDown) {
1095
1127
  writeDebug(`startRelay skipped reason=shuttingDown trigger=${reason}`);
@@ -1235,6 +1267,21 @@ export function createBridgeRunner() {
1235
1267
  if (tryHandleInternalCdpResponse(generation, rendered, child)) {
1236
1268
  continue;
1237
1269
  }
1270
+ if (rendered.parsed.kind === "response" && rendered.parsed.id !== null) {
1271
+ const key = requestKey(rendered.parsed.id, rendered.parsed.sessionId);
1272
+ const suppressedCount = suppressedBrowserCloseResponseCounts.get(key) ?? 0;
1273
+ if (suppressedCount > 0 && rendered.canonicalMethod === "Browser.close") {
1274
+ if (suppressedCount === 1) {
1275
+ suppressedBrowserCloseResponseCounts.delete(key);
1276
+ }
1277
+ else {
1278
+ suppressedBrowserCloseResponseCounts.set(key, suppressedCount - 1);
1279
+ }
1280
+ writeDebug(`delayedForward Browser.close swallowResponse id=${String(rendered.parsed.id)} session=${rendered.parsed.sessionId ?? "root"}`);
1281
+ writeCdpHopLog("chrome=>relay", rendered);
1282
+ continue;
1283
+ }
1284
+ }
1238
1285
  const weakDisconnectSignal = detectWeakDisconnectSignalFromCdp(rendered);
1239
1286
  if (weakDisconnectSignal) {
1240
1287
  noteDisconnectSignal(weakDisconnectSignal, "chromeEvent");
@@ -1332,6 +1379,32 @@ export function createBridgeRunner() {
1332
1379
  forwardToUpstream(syntheticMessage, syntheticRendered);
1333
1380
  return;
1334
1381
  }
1382
+ const requestId = rendered.parsed.id;
1383
+ const shouldInterceptPlaywrightBrowserCloseForExitDetection = usePipeTransport &&
1384
+ !requestedHeadlessMode &&
1385
+ rendered.parsed.kind === "request" &&
1386
+ rendered.canonicalMethod === "Browser.close" &&
1387
+ requestId !== null &&
1388
+ String(requestId) === PLAYWRIGHT_BROWSER_CLOSE_REQUEST_ID;
1389
+ if (shouldInterceptPlaywrightBrowserCloseForExitDetection) {
1390
+ if (requestId === null) {
1391
+ return;
1392
+ }
1393
+ const key = requestKey(requestId, rendered.parsed.sessionId);
1394
+ const syntheticResponse = {
1395
+ id: requestId,
1396
+ result: {}
1397
+ };
1398
+ if (rendered.parsed.sessionId) {
1399
+ syntheticResponse.sessionId = rendered.parsed.sessionId;
1400
+ }
1401
+ const syntheticMessage = JSON.stringify(syntheticResponse);
1402
+ const syntheticRendered = renderCdpMessage(syntheticMessage);
1403
+ writeDebug(`delayedForward Browser.close intercept delayMs=${DELAYED_BROWSER_CLOSE_FORWARD_MS} id=${String(rendered.parsed.id)} session=${rendered.parsed.sessionId ?? "root"}`);
1404
+ forwardToUpstream(syntheticMessage, syntheticRendered);
1405
+ scheduleDelayedBrowserCloseForward(key, message, rendered);
1406
+ return;
1407
+ }
1335
1408
  if (!usePipeTransport && relayState === "degraded") {
1336
1409
  maybeRecoverRelayForWs();
1337
1410
  sendToRelayOrQueue(message, rendered);
@@ -1358,7 +1431,10 @@ export function createBridgeRunner() {
1358
1431
  }
1359
1432
  earlyWsMessages.length = 0;
1360
1433
  for (const signal of signals) {
1361
- const handler = () => finalize(0);
1434
+ const handler = () => {
1435
+ writeDebug(`processSignal received signal=${signal}`);
1436
+ finalize(0);
1437
+ };
1362
1438
  signalHandlers.set(signal, handler);
1363
1439
  process.on(signal, handler);
1364
1440
  }
@@ -1380,10 +1456,21 @@ export function createBridgeRunner() {
1380
1456
  processUpstreamMessage(message);
1381
1457
  }
1382
1458
  });
1383
- pipeIn.once("end", () => finalize(0));
1384
- pipeIn.once("error", () => finalize(1));
1459
+ pipeIn.once("end", () => {
1460
+ writeDebug("upstreamPipe event=end fd=3 reason=upstreamClosed");
1461
+ finalize(0);
1462
+ });
1463
+ pipeIn.once("error", (error) => {
1464
+ const message = error instanceof Error ? error.message : String(error);
1465
+ writeDebug(`upstreamPipe event=error fd=3 message=${message}`);
1466
+ finalize(1);
1467
+ });
1385
1468
  }
1386
- pipeOut?.once("error", () => finalize(1));
1469
+ pipeOut?.once("error", (error) => {
1470
+ const message = error instanceof Error ? error.message : String(error);
1471
+ writeDebug(`upstreamPipe event=error fd=4 message=${message}`);
1472
+ finalize(1);
1473
+ });
1387
1474
  });
1388
1475
  };
1389
1476
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-runner.js","sourceRoot":"","sources":["../src/bridge-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-runner.js","sourceRoot":"","sources":["../src/bridge-runner.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,24 @@
114
114
  - bridge 直接回傳成功 response(`{ id: <same>, result: {} }`),不觸發 recovery、不進 queue。
115
115
  - 目的:避免 Playwright/Codex 結束流程送出 `Browser.close` 時,把已關閉的 Chrome 又拉起來再關一次。
116
116
 
117
+ 0.5. `pipe + non-headless` 的 `Browser.close(id=-9999)` 延遲轉發策略(Playwright 退出一致化):
118
+ - 觸發條件:
119
+ - transport 為 `pipe`
120
+ - 非 headless
121
+ - request method 為 `Browser.close`
122
+ - request id 為 `-9999`(目前 Playwright MCP 可觀察到的關閉 id)
123
+ - 行為:
124
+ - bridge 先回傳 synthetic success response 給 upstream(同 id / 同 sessionId)。
125
+ - bridge 不立即轉發此 request 到 Chrome,先延遲 200ms。
126
+ - 若 200ms 到期時 bridge 仍存活,才把原始 `Browser.close` request 轉發給 relay。
127
+ - 延遲轉發後,Chrome 回來的同筆 `Browser.close` response 由 bridge 內部吞掉,不再回 upstream(避免 upstream 收到重複 response)。
128
+ - 目的:
129
+ - 讓「MCP 退出」與「使用者真的要關瀏覽器」可透過短時間窗做行為分流,避免 non-headless 在 MCP 退出時立刻關閉 Windows Chrome。
130
+ - 限制與邊界:
131
+ - 此策略不適用於 headless。
132
+ - 200ms 為策略參數(非協議保證值),需依實測調整。
133
+ - 若上游未來改變關閉 id 或關閉流程,需同步調整條件。
134
+
117
135
  1. bridge 先嘗試 `recoverChromeForCurrentUserDataDir()`:
118
136
  - 先探測是否已有同 `user-data-dir` Chrome 可附著。
119
137
  - 若可附著:更新 `remoteBrowserWsUrl` 並重建 relay,狀態回 `connected`。
@@ -113,6 +113,24 @@ To avoid false positives from a single event (for example `Inspector.detached`),
113
113
  - if bridge has `chromeDisconnectedLikely=true` and current request is `Browser.close`
114
114
  - return synthetic success response (`{ id: <same>, result: {} }`) immediately
115
115
  - do not trigger recovery and do not queue this request
116
+
117
+ 0.5. Delayed `Browser.close(id=-9999)` forwarding in `pipe + non-headless` (Playwright exit normalization):
118
+ - Trigger conditions:
119
+ - transport mode is `pipe`
120
+ - non-headless
121
+ - request method is `Browser.close`
122
+ - request id is `-9999` (currently observable in Playwright MCP close flow)
123
+ - Behavior:
124
+ - bridge first returns a synthetic success response to upstream (same id / same sessionId)
125
+ - bridge does not forward this request to Chrome immediately; it delays forwarding by 200ms
126
+ - if bridge is still alive when the 200ms timer fires, it forwards the original `Browser.close` request to relay
127
+ - after delayed forward, the matching Chrome `Browser.close` response is consumed inside bridge and not forwarded upstream (to avoid duplicate responses)
128
+ - Purpose:
129
+ - use a short timing window to split behavior between "MCP exit" and "user intentionally closes browser", so non-headless MCP exit does not immediately close foreground Windows Chrome
130
+ - Limits and boundaries:
131
+ - this strategy does not apply to headless
132
+ - 200ms is a policy parameter (not a protocol guarantee) and should be tuned by integration tests
133
+ - if upstream changes close id semantics or close flow, this condition must be updated
116
134
  1. Bridge runs `recoverChromeForCurrentUserDataDir()`:
117
135
  - first try attach to existing same-profile Chrome
118
136
  - if attach succeeds: refresh `remoteBrowserWsUrl`, rebuild relay, transition to `connected`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wsl-chrome-bridge",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Bridge Chrome DevTools MCP/Playwright MCP in WSL2 to Windows Chrome",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {