diff --git a/packages/cli/src/beats/headlessAnalyzer.ts b/packages/cli/src/beats/headlessAnalyzer.ts index e532955bfd..cc189419eb 100644 --- a/packages/cli/src/beats/headlessAnalyzer.ts +++ b/packages/cli/src/beats/headlessAnalyzer.ts @@ -140,6 +140,8 @@ export async function analyzeBeatsHeadless(audioBytes: Buffer): Promise { const unavailable = { hasWebGL: false, vendor: "", renderer: "" }; @@ -701,7 +705,11 @@ async function launchBrowser( executablePath: fingerprint.executablePath, timeout: fingerprint.browserTimeoutMs, protocolTimeout: fingerprint.protocolTimeoutMs, - }); + // Prevent visible console window on Windows for console-subsystem + // chrome-headless-shell.exe (see #3430). + // @ts-ignore -- windowsHide not in PuppeteerLaunchOptions but forwarded to spawn on Windows (see #3430) + windowsHide: true, + } as any); const browserVersion = await browser.version().catch(() => "unknown"); const gpuFlags = fingerprint.args.filter( diff --git a/packages/producer/src/parity-harness.ts b/packages/producer/src/parity-harness.ts index e390ac81f8..3b29ad6cd9 100644 --- a/packages/producer/src/parity-harness.ts +++ b/packages/producer/src/parity-harness.ts @@ -314,6 +314,8 @@ async function run(): Promise { const browser = await puppeteer.launch({ ...browserTarget, headless: true, + // @ts-ignore -- windowsHide not in PuppeteerLaunchOptions but forwarded to spawn on Windows (see #3430) + windowsHide: true, defaultViewport: { width: options.width, height: options.height, diff --git a/packages/studio/vite.browser.ts b/packages/studio/vite.browser.ts index d2c06a9873..a614859b4e 100644 --- a/packages/studio/vite.browser.ts +++ b/packages/studio/vite.browser.ts @@ -103,6 +103,8 @@ async function getSharedBrowser(): Promise