chore: run w/ sandbox by default (#412)

This commit is contained in:
Pavel Feldman
2025-05-13 15:30:02 -07:00
committed by GitHub
parent 7be0c8872e
commit c506027aec
4 changed files with 15 additions and 7 deletions

View File

@@ -39,6 +39,7 @@ export type CLIOptions = {
ignoreHttpsErrors?: boolean;
isolated?: boolean;
noImageResponses?: boolean;
sandbox?: boolean;
outputDir?: string;
port?: number;
proxyBypass?: string;
@@ -56,6 +57,7 @@ const defaultConfig: Config = {
launchOptions: {
channel: 'chrome',
headless: os.platform() === 'linux' && !process.env.DISPLAY,
chromiumSandbox: true,
},
contextOptions: {
viewport: null,
@@ -107,8 +109,11 @@ export async function configFromCLIOptions(cliOptions: CLIOptions): Promise<Conf
headless: cliOptions.headless,
};
if (browserName === 'chromium')
if (browserName === 'chromium') {
(launchOptions as any).cdpPort = await findFreePort();
if (cliOptions.sandbox === false)
launchOptions.chromiumSandbox = false;
}
if (cliOptions.proxyServer) {
launchOptions.proxy = {

View File

@@ -25,10 +25,10 @@ import { packageJSON } from './context.js';
program
.version('Version ' + packageJSON.version)
.name(packageJSON.name)
.option('--browser <browser>', 'browser or chrome channel to use, possible values: chrome, firefox, webkit, msedge.')
.option('--allowed-origins <origins>', 'semicolon-separated list of origins to allow the browser to request. Default is to allow all.', semicolonSeparatedList)
.option('--blocked-origins <origins>', 'semicolon-separated list of origins to block the browser from requesting. Blocklist is evaluated before allowlist. If used without the allowlist, requests not matching the blocklist are still allowed.', semicolonSeparatedList)
.option('--block-service-workers', 'block service workers')
.option('--browser <browser>', 'browser or chrome channel to use, possible values: chrome, firefox, webkit, msedge.')
.option('--caps <caps>', 'comma-separated list of capabilities to enable, possible values: tabs, pdf, history, wait, files, install. Default is all.')
.option('--cdp-endpoint <endpoint>', 'CDP endpoint to connect to.')
.option('--config <path>', 'path to the configuration file.')
@@ -36,10 +36,10 @@ program
.option('--executable-path <path>', 'path to the browser executable.')
.option('--headless', 'run browser in headless mode, headed by default')
.option('--host <host>', 'host to bind server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.')
.option('--in-memory', 'use in-memory storage for user data directory.')
.option('--ignore-https-errors', 'ignore https errors')
.option('--isolated', 'keep the browser profile in memory, do not save it to disk.')
.option('--no-image-responses', 'do not send image responses to the client.')
.option('--no-sandbox', 'disable the sandbox for all process types that are normally sandboxed.')
.option('--output-dir <path>', 'path to the directory for output files.')
.option('--port <port>', 'port to listen on for SSE transport.')
.option('--proxy-bypass <bypass>', 'comma-separated domains to bypass proxy, for example ".com,chromium.org,.domain.com"')