d2729979c240

wip: diagnose Marionette startup as Firefox sandbox failure; geckodriver status is ready but Firefox never creates MarionetteActivePort

time
2026-09-04 10:29 UTC · 1 month ago
machine
koh2
agent
claude-sonnet-5
session
Firefox gate environment repair
parent
6b2631c739d9
1 file scripts/test-firefox-sender-context.mjs+8 −4
scripts/test-firefox-sender-context.mjs+8 −4
@@ -46,14 +46,16 @@4646   });4747 }4848 49-async function waitForDriver(port) {49+async function waitForDriver(port, driver) {5050   const deadline = Date.now() + 30_000;5151   while (Date.now() < deadline) {5252     try {5353       const response = await fetchWithTimeout(`http://127.0.0.1:${port}/status`, {}, 500);5454       if (response.ok && (await response.json()).value?.ready) return;5555     } catch {56-      // geckodriver is still starting.56+      if (driver.exitCode !== null || driver.signalCode !== null) {57+        throw new Error(`geckodriver exited during startup (${driver.exitCode ?? driver.signalCode})`);58+      }5759     }5860     await new Promise((resolveDelay) => setTimeout(resolveDelay, 250));5961   }@@ -71,9 +73,11 @@7173       fetch(url, { ...options, signal: controller.signal }),7274       timeout,7375     ]);76+  } catch (error) {77+    controller.abort();78+    throw error;7479   } finally {7580     clearTimeout(timeoutId);76-    controller.abort();7781   }7882 }7983 @@ -154,7 +158,7 @@154158         },155159       },156160     });157-    await waitForDriver(port);161+    await waitForDriver(port, driver);158162 159163     const capabilities = {160164       browserName: "firefox",

view file