diff --git a/browse/src/browser-manager.ts b/browse/src/browser-manager.ts index f9f3317b5..156ae3d59 100644 --- a/browse/src/browser-manager.ts +++ b/browse/src/browser-manager.ts @@ -451,6 +451,17 @@ export class BrowserManager { // Chromium too. ...buildGStackLaunchArgs(), ]; + // Headless virtual displays (Xvnc/Xvfb on EC2) have no real GPU; Playwright's + // bundled Chromium crashes (SIGTRAP) during GPU process init. Disabling the + // GPU process keeps headed mode alive on VNC. Opt-in via GSTACK_HEADED_NOGPU. + if (process.env.GSTACK_HEADED_NOGPU === '1') { + launchArgs.push( + '--disable-gpu', + '--disable-gpu-compositing', + '--disable-software-rasterizer', + '--disable-dev-shm-usage', + ); + } if (extensionPath) { // Skip --load-extension when running against a custom Chromium build // that already bakes the extension in as a component extension