fix(browser): add --no-sandbox for root user on Linux/WSL2

Chromium's sandbox can't initialize when running as root on Linux,
causing an immediate exit. Extend the existing CI/CONTAINER check to
also cover this case, keeping the Windows-safe `typeof getuid` guard.
This commit is contained in:
Furkan Köykıran 2026-05-08 02:10:58 +03:00
parent 7b4738bca0
commit 014a51bd6f
1 changed files with 5 additions and 4 deletions

View File

@ -182,10 +182,11 @@ export class BrowserManager {
const launchArgs: string[] = []; const launchArgs: string[] = [];
let useHeadless = true; let useHeadless = true;
// Docker/CI: Chromium sandbox requires unprivileged user namespaces which // Docker/CI/root: Chromium sandbox requires unprivileged user namespaces which
// are typically disabled in containers. Detect container environment and // are typically disabled in containers and are never available for the root
// add --no-sandbox automatically. // user on Linux. Detect all three cases and add --no-sandbox automatically.
if (process.env.CI || process.env.CONTAINER) { const isRoot = typeof process.getuid === 'function' && process.getuid() === 0;
if (process.env.CI || process.env.CONTAINER || isRoot) {
launchArgs.push('--no-sandbox'); launchArgs.push('--no-sandbox');
} }