mcp-accessibility-scanner 3.3.2 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +74 -5
  2. package/config.d.ts +30 -0
  3. package/lib/browserServerBackend.js +6 -0
  4. package/lib/browserServerBackend.js.map +1 -1
  5. package/lib/browserSessions.js +3 -0
  6. package/lib/browserSessions.js.map +1 -1
  7. package/lib/config.js +56 -10
  8. package/lib/config.js.map +1 -1
  9. package/lib/context.js +382 -56
  10. package/lib/context.js.map +1 -1
  11. package/lib/extension/cdpRelay.js +28 -6
  12. package/lib/extension/cdpRelay.js.map +1 -1
  13. package/lib/extension/extensionContextFactory.js +11 -6
  14. package/lib/extension/extensionContextFactory.js.map +1 -1
  15. package/lib/mcp/http.js +115 -41
  16. package/lib/mcp/http.js.map +1 -1
  17. package/lib/mcp/server.js +16 -8
  18. package/lib/mcp/server.js.map +1 -1
  19. package/lib/mcp/tool.js +11 -9
  20. package/lib/mcp/tool.js.map +1 -1
  21. package/lib/program.js +6 -3
  22. package/lib/program.js.map +1 -1
  23. package/lib/response.js +14 -2
  24. package/lib/response.js.map +1 -1
  25. package/lib/sessionLog.js +66 -20
  26. package/lib/sessionLog.js.map +1 -1
  27. package/lib/tab.js +13 -7
  28. package/lib/tab.js.map +1 -1
  29. package/lib/tools/auditKeyboard.js +27 -25
  30. package/lib/tools/auditKeyboard.js.map +1 -1
  31. package/lib/tools/auditScreenReader.js +27 -18
  32. package/lib/tools/auditScreenReader.js.map +1 -1
  33. package/lib/tools/auditSite.js +88 -56
  34. package/lib/tools/auditSite.js.map +1 -1
  35. package/lib/tools/axe.js +32 -7
  36. package/lib/tools/axe.js.map +1 -1
  37. package/lib/tools/common.js +39 -1
  38. package/lib/tools/common.js.map +1 -1
  39. package/lib/tools/files.js +55 -1
  40. package/lib/tools/files.js.map +1 -1
  41. package/lib/tools/pdf.js +4 -2
  42. package/lib/tools/pdf.js.map +1 -1
  43. package/lib/tools/recorder.js +52 -0
  44. package/lib/tools/recorder.js.map +1 -0
  45. package/lib/tools/report.js +13 -0
  46. package/lib/tools/report.js.map +1 -0
  47. package/lib/tools/scanPageMatrix.js +20 -33
  48. package/lib/tools/scanPageMatrix.js.map +1 -1
  49. package/lib/tools/screenshot.js +6 -3
  50. package/lib/tools/screenshot.js.map +1 -1
  51. package/lib/tools/snapshot.js +5 -2
  52. package/lib/tools/snapshot.js.map +1 -1
  53. package/lib/tools.js +2 -0
  54. package/lib/tools.js.map +1 -1
  55. package/lib/vscode/browserContextFactory.js +11 -4
  56. package/lib/vscode/browserContextFactory.js.map +1 -1
  57. package/lib/vscode/host.js +25 -2
  58. package/lib/vscode/host.js.map +1 -1
  59. package/lib/vscode/main.js +15 -0
  60. package/lib/vscode/main.js.map +1 -1
  61. package/lib/vscode/validation.js +78 -0
  62. package/lib/vscode/validation.js.map +1 -0
  63. package/package.json +6 -5
package/README.md CHANGED
@@ -137,7 +137,9 @@ Use `--extension` to connect through the current [Playwright Extension](https://
137
137
  npx mcp-accessibility-scanner --extension
138
138
  ```
139
139
 
140
- Set `PLAYWRIGHT_MCP_EXTENSION_TOKEN` to the token shown by the extension to bypass the connection approval dialog.
140
+ Set `PLAYWRIGHT_MCP_EXTENSION_TOKEN` to the token shown by the extension to bypass the connection approval dialog. The relay's CDP WebSocket endpoint always requires a separate random token, generated per relay and appended automatically for the server's own connection. This CDP token is never passed in Chrome's launch arguments or extension URL; the extension approval token cannot authenticate a CDP client.
141
+ Token-bypass connections are not background-safe: Chrome focuses the connection tab and window, and client-created tabs remain open after disconnect ([upstream limitation](https://github.com/microsoft/playwright/issues/42343)).
142
+ With a token, the extension must connect and finish setup within 30 seconds after the connection page opens. Failed attempts release the relay so the next tool call can retry. Without a token, manual approval waits until you approve or cancel the call.
141
143
  When `--user-data-dir` contains multiple Chrome profiles, the profile with the extension installed is selected automatically, preferring Chrome's last-used profile.
142
144
 
143
145
  ### Discovering available tools (`list-tools` subcommand)
@@ -206,6 +208,9 @@ Create a `config.json` file with the following options:
206
208
  "network": {
207
209
  "allowedOrigins": ["example.com", "trusted-site.com"],
208
210
  "blockedOrigins": ["ads.example.com"]
211
+ },
212
+ "snapshot": {
213
+ "boxes": true
209
214
  }
210
215
  }
211
216
  ```
@@ -213,8 +218,12 @@ Create a `config.json` file with the following options:
213
218
  **Available Options:**
214
219
 
215
220
  - `browser.browserName`: Browser to use (`chromium`, `firefox`, `webkit`)
221
+ - `browser.allowedUploadDirs`: Restrict files sent by `browser_file_upload` and `browser_drop` to regular files inside these directories, including resolved symlink targets. Restricted uploads and drops use a checked file handle and accept up to 50 MiB total per call. Unset allows any path; `[]` denies all file uploads and drops (text-only drops still work). Blank list entries are rejected. CLI: `--allowed-upload-dirs` (semicolon-separated; `""` denies all), env: `PLAYWRIGHT_MCP_ALLOWED_UPLOAD_DIRS` (empty string denies all).
222
+
223
+ The list must be an array, not `null`. Roots must exist at startup: their canonical paths are resolved once and retained for the server's lifetime, so retargeting a configured symlink does not grant access to a new tree. Non-empty upload allowlists require macOS or Linux with `/proc/self/fd` available. macOS blocks ancestor symlinks during the file open; Linux checks the opened descriptor's path. Other platforms reject restricted file uploads and drops rather than rely on race-prone pathname checks. Unrestricted uploads, deny-all lists, and text-only drops keep working on all platforms.
216
224
  - `browser.launchOptions.headless`: Run browser in headless mode (default: `true` on Linux without display, `false` otherwise)
217
225
  - `browser.launchOptions.channel`: Browser channel (`chrome`, `chrome-beta`, `msedge`, etc.)
226
+ - `browser.launchOptions.chromiumSandbox`: Defaults to `false` for downloaded Chromium builds on Linux because they lack the setuid sandbox helper, and `true` otherwise. Remote and VS Code endpoints choose on the remote host. An explicit config or `PLAYWRIGHT_MCP_SANDBOX` value wins; `--no-sandbox` always disables it.
218
227
  - `browser.cdpEndpoint`: Attach to an already-running Chromium-family app with CDP enabled
219
228
  - `browser.cdpHeaders`: Map of HTTP headers to send with the CDP connect request, e.g. `{ "Authorization": "Bearer <token>" }`, for endpoints that require header-based authentication
220
229
  - `browser.cdpTimeout`: Maximum time in milliseconds to wait when connecting to the CDP endpoint (default: `30000`)
@@ -226,15 +235,30 @@ Create a `config.json` file with the following options:
226
235
  - `timeouts.settle`: How long to wait after every action before responding (default: `500`). An action that finishes quietly is first watched for up to 100ms (or the settle delay, whichever is shorter) so scheduled network work can still be awaited before the settle delay.
227
236
  - `network.allowedOrigins`: List of origins to allow (blocks all others if specified)
228
237
  - `network.blockedOrigins`: List of origins to block
238
+ - `snapshot.boxes`: Include each element's viewport-relative bounding box as `[box=x,y,width,height]` in snapshots (default: `false`; CLI: `--snapshot-boxes`, env: `PLAYWRIGHT_MCP_SNAPSHOT_BOXES=1`)
239
+ - `server.authToken`: When set, Streamable HTTP requests (`--port`) require `Authorization: Bearer <token>` or return `401` (env: `PLAYWRIGHT_MCP_AUTH_TOKEN`). Blank or malformed tokens fail at startup. The scheme is case-insensitive; the token is exact. Bearer auth does not encrypt traffic: authenticated listeners must bind to loopback, such as `--host 127.0.0.1`; use a TLS reverse proxy for remote access. The printed client config includes a header placeholder to replace locally, without logging the secret. Unset keeps unauthenticated access.
229
240
  - `outputDir`: Directory for output files — reports, screenshots, traces, and session logs (CLI: `--output-dir`, env: `PLAYWRIGHT_MCP_OUTPUT_DIR`). Defaults to a fresh directory under the system temp folder, resolved once per server run so all of a run's artifacts land together. The output location is always server configuration; the deprecated MCP roots capability (client workspace folders) is no longer consulted.
230
241
 
231
242
  CLI equivalents are also available: `--cdp-launch-command`, `--cdp-launch-args`, `--cdp-launch-cwd`, `--cdp-launch-port`, `--cdp-launch-startup-timeout`, `--cdp-endpoint`, `--cdp-header` (repeat for multiple headers, e.g. `--cdp-header "Authorization: Bearer <token>"`), and `--cdp-timeout`. The CDP headers and timeout can also be set via the `PLAYWRIGHT_MCP_CDP_HEADERS` (one `Name: Value` entry per line) and `PLAYWRIGHT_MCP_CDP_TIMEOUT` environment variables.
232
243
 
244
+ For remote HTTP access, configure the TLS reverse proxy explicitly. For example, with the MCP server bound using `--host 127.0.0.1 --port 8931` and `PLAYWRIGHT_MCP_AUTH_TOKEN` set:
245
+
246
+ - Accept only your configured public hostname over HTTPS and forward `/mcp` to `http://127.0.0.1:8931/mcp`.
247
+ - Set the upstream `Host` header to `127.0.0.1:8931`, not the public hostname. Forward the client's `Authorization` header unchanged; do not inject a shared token for unauthenticated clients.
248
+ - Before removing `Origin`, reject any non-empty value outside your explicit trusted HTTPS origin list (for example, `https://mcp.example.com`). Allow absent `Origin` for non-browser clients. Then remove `Origin` upstream, or rewrite it to `http://127.0.0.1:8931`. Never strip arbitrary origins without checking them first.
249
+ - Disable response buffering for SSE streams. Browser clients on a different origin also need a narrowly scoped CORS policy at the proxy.
250
+
251
+ The server does not trust `Forwarded` or `X-Forwarded-*` to bypass its checks. Preserving the public `Host` or HTTPS `Origin` upstream returns `403`, even with a valid bearer token.
252
+
253
+ Caller-supplied screenshot, PDF, scan-page-matrix, and audit report filenames use a no-clobber policy: an existing file causes the tool call to fail instead of being overwritten. Windows-reserved basenames and names ending in a dot or space are rejected on every platform so configured names behave consistently across hosts.
254
+
233
255
  Use `--timeout-settle` or `PLAYWRIGHT_MCP_TIMEOUT_SETTLE` to override the post-action settle delay. It applies after every action so delayed DOM-only updates are included in the response; a short observation window also catches scheduled requests and waits for them before that delay.
234
256
 
257
+ The VS Code `browser_connect` tool accepts only `playwright` or `playwright-core` libraries and loopback WebSocket URLs. Set `PLAYWRIGHT_MCP_VSCODE_ALLOW_REMOTE=1` to allow remote endpoints, which must use `wss:`. URL userinfo credentials are rejected.
258
+
235
259
  #### HTTP Heartbeat
236
260
 
237
- When the server runs with `--port`, it sends MCP heartbeat pings for Streamable HTTP sessions. Set `PLAYWRIGHT_MCP_PING_TIMEOUT_MS` to override the default `5000` ms timeout. Set it to `0` or any negative value to disable heartbeat pings for clients or proxies that do not answer server-initiated pings. A client that answers `ping` with a JSON-RPC "method not found" error (as clients on the MCP 2026-07-28 revision do) is treated as alive: the server stops heartbeating that session instead of closing it. Only an unanswered ping (timeout) or a transport failure closes the session.
261
+ When the server runs with `--port`, it sends MCP heartbeat pings after a Streamable HTTP client opens the optional event stream. POST-only clients stay connected without heartbeat because server-initiated requests cannot reach them. Set `PLAYWRIGHT_MCP_PING_TIMEOUT_MS` to override the default `5000` ms timeout, or to `0` or any negative value to disable heartbeat pings. A client that answers `ping` with a JSON-RPC "method not found" error is treated as alive: the server stops heartbeating that session instead of closing it. Only an unanswered ping (timeout) or a transport failure closes the session.
238
262
 
239
263
  #### Clients without the initialize handshake
240
264
 
@@ -262,7 +286,7 @@ This works out of the box in every mode, including the default persistent-profil
262
286
  Record a session once with Playwright's codegen, then hand the file to the server:
263
287
 
264
288
  ```bash
265
- npx playwright@1.63.0-alpha-2026-08-22 codegen --save-storage=auth.json https://example.com/login
289
+ npx playwright@1.63.0 codegen --save-storage=auth.json https://example.com/login
266
290
  ```
267
291
 
268
292
  Sign in in the opened browser, then close it — `auth.json` now holds the cookies and local storage.
@@ -380,6 +404,7 @@ A frame you scoped out yourself is not reported: with `excludeSelectors: ["ifram
380
404
  Crawls and scans multiple internal pages, then aggregates violations across the site.
381
405
  - Default strategy: link-based BFS from the current URL
382
406
  - Supports `links`, `nav`, `sitemap`, and `provided` URL strategies
407
+ - Sitemap URLs and every redirect must pass the server network policy and crawl scope. Fetches run on the MCP host, use HTTP(S) without browser cookies or auth headers, and have a 15-second total timeout, 20-redirect cap, and 10 MiB response limit. Browser proxy settings, `browser.remoteEndpoint`, `browser.cdpEndpoint` (including loopback endpoints, which may tunnel to remote browsers), and switched `browser_connect` providers are rejected for this strategy; use `provided` URLs in these modes. Sitemap TLS certificates must be valid even when browser HTTPS errors are ignored.
383
408
  - Always writes a JSON report (default filename: `audit-site-{timestamp}-{token}.json`)
384
409
  - Warns and records `sessionLosses` if the crawl loses cookies it started with — see [Auditing pages behind a login](#auditing-pages-behind-a-login)
385
410
 
@@ -497,9 +522,10 @@ Set default operation timeout for existing tabs.
497
522
  Capture accessibility snapshot of the current page (better than screenshot for analysis).
498
523
  Large `data:` URL payloads in snapshot output are truncated to their media type prefix.
499
524
  AI snapshots mark a visually present subtree excluded from accessibility queries with `[aria-hidden]` on its boundary element. Descendants are not marked again.
500
- - Parameters: `compress` (optional boolean, default false)
501
- - When true, repeated non-interactive ARIA snapshot nodes are collapsed in the rendered response when a repeated structural pattern appears more than 100 times. The first 10 examples of each collapsed pattern are kept.
525
+ - Parameters: `compress` (optional boolean, default false), `boxes` (optional boolean; overrides `snapshot.boxes` for this call)
526
+ - When `compress` is true, repeated non-interactive ARIA snapshot nodes are collapsed in the rendered response when a repeated structural pattern appears more than 100 times. The first 10 examples of each collapsed pattern are kept.
502
527
  - Use `browser_evaluate()` to retrieve the full uncompressed list when needed.
528
+ - When `boxes` is true, each element includes `[box=x,y,width,height]` in viewport-relative CSS pixels.
503
529
 
504
530
  #### `browser_find`
505
531
  Search the current page accessibility snapshot without returning the full snapshot.
@@ -541,6 +567,14 @@ Fill multiple fields with one call.
541
567
  Press a key on the keyboard.
542
568
  - Parameters: `key` (e.g., 'ArrowLeft' or 'a')
543
569
 
570
+ #### `browser_start_recording` / `browser_stop_recording`
571
+ Record browser actions and return them as Playwright JavaScript. Start the server with `--caps devtools`, call `browser_start_recording`, perform the flow, then call `browser_stop_recording`.
572
+
573
+ Multi-tab recordings include the `context.newPage()` declarations needed by generated page aliases.
574
+ Recorded assertions include the `playwright/test` `expect` setup they need to run.
575
+
576
+ Handshake-free HTTP clients must first call `browser_session_open`, then pass its `browserSessionId` to both recording tools so the recording survives across requests. Modes that cannot open separate browser sessions, such as `--extension` and non-isolated CDP attach, need a stateful MCP connection for recording.
577
+
544
578
  #### `browser_evaluate`
545
579
  Evaluate a JavaScript expression on the page, or on a specific element when a `ref` is provided. The function's return value is serialized back as the result.
546
580
  - Parameters: `function` (e.g., `() => document.title` or `(element) => element.textContent`), `element` (optional), `ref` (optional)
@@ -574,6 +608,10 @@ Close the page.
574
608
  Resize the browser window.
575
609
  - Parameters: `width`, `height`
576
610
 
611
+ #### `browser_emulate_media`
612
+ Emulate CSS media features on the current page without resetting omitted features.
613
+ - Parameters: `colorScheme` (`light` or `dark`), `reducedMotion` (`reduce` or `no-preference`), `forcedColors` (`active` or `none`), `contrast` (`more` or `no-preference`), and `media` (`screen` or `print`); provide at least one.
614
+
577
615
  ### Tab Management
578
616
 
579
617
  #### `browser_tabs`
@@ -733,6 +771,37 @@ cd mcp-accessibility-scanner
733
771
  npm install
734
772
  ```
735
773
 
774
+ ### MCP harnesses
775
+
776
+ The npm wrappers build first, then the direct harness calls every exposed MCP
777
+ tool with prepared fixtures:
778
+
779
+ ```bash
780
+ npm run test:mcp
781
+ npm run test:mcp:install
782
+ ```
783
+
784
+ The Luna wrapper runs each prompt through Codex `gpt-5.6-luna` with xhigh
785
+ reasoning. It uses a repo-scoped scanner MCP server, read-only Codex sandbox,
786
+ structured PASS/FAIL evidence, and a per-prompt timeout:
787
+
788
+ ```bash
789
+ npm run test:mcp:luna
790
+ npm run test:mcp:luna -- --only browser_snapshot
791
+ npm run test:mcp:luna -- --skip-optional --limit 1
792
+ ```
793
+
794
+ Results are written under `test-results/mcp-direct-harness-results/` or
795
+ `test-results/mcp-tool-loop-results/`. Set `MCP_HARNESS_RESULTS_DIR` to use another output root.
796
+ The Luna harness checks Codex login before starting any prompts. Its site-audit
797
+ prompt uses a local HTTP fixture, not a public website.
798
+ PASS requires a completed target MCP call, no failed or unfinished MCP calls,
799
+ and a successful structured result. Invalid logs, failed turns, and timeouts
800
+ fail the run. Non-fatal startup notices about ignored malformed local agent
801
+ roles remain in the logs; they do not count as tool failures. Recovered Codex
802
+ connection retries are accepted only when the turn completes successfully.
803
+ Canceling the run exits with status 130.
804
+
736
805
  ### Benchmarking tool latency
737
806
 
738
807
  `bench/mcp-bench.mjs` measures what a client actually waits for: it serves a fixed
package/config.d.ts CHANGED
@@ -27,6 +27,7 @@ export type ToolCapability =
27
27
  | 'testing'
28
28
  | 'core-install'
29
29
  | 'core-tabs'
30
+ | 'devtools'
30
31
  | 'vision'
31
32
  | 'verify';
32
33
 
@@ -104,6 +105,18 @@ export type Config = {
104
105
  * Remote endpoint to connect to an existing Playwright server.
105
106
  */
106
107
  remoteEndpoint?: string;
108
+
109
+ /**
110
+ * Directories that browser_file_upload and browser_drop may read files from.
111
+ * When unset (default), any absolute path is allowed; when set, upload
112
+ * canonical file paths must stay inside these directories. Restricted
113
+ * uploads accept regular files up to 50 MiB total per call. [] denies all;
114
+ * non-empty lists require macOS or Linux with /proc/self/fd available.
115
+ * Roots must exist and are canonicalized once at startup. null is invalid.
116
+ * blank entries are invalid. Also PLAYWRIGHT_MCP_ALLOWED_UPLOAD_DIRS or
117
+ * --allowed-upload-dirs (semicolon-separated; empty string means []).
118
+ */
119
+ allowedUploadDirs?: string[];
107
120
  },
108
121
 
109
122
  server?: {
@@ -116,6 +129,14 @@ export type Config = {
116
129
  * The host to bind the server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.
117
130
  */
118
131
  host?: string;
132
+
133
+ /**
134
+ * When set, HTTP transport requests must carry `Authorization: Bearer <token>`.
135
+ * Blank or malformed tokens are rejected. Requires a loopback listener;
136
+ * remote access must use a TLS reverse proxy. Also configurable through
137
+ * PLAYWRIGHT_MCP_AUTH_TOKEN.
138
+ */
139
+ authToken?: string;
119
140
  },
120
141
 
121
142
  /**
@@ -127,6 +148,7 @@ export type Config = {
127
148
  * - 'wait': Wait and timing utilities.
128
149
  * - 'files': File upload/download support.
129
150
  * - 'install': Browser installation utilities.
151
+ * - 'devtools': Browser recording utilities.
130
152
  */
131
153
  capabilities?: ToolCapability[];
132
154
 
@@ -167,6 +189,14 @@ export type Config = {
167
189
  */
168
190
  imageResponses?: 'allow' | 'omit' | 'auto';
169
191
 
192
+ snapshot?: {
193
+ /**
194
+ * Include each element's bounding box as [box=x,y,width,height] in snapshots.
195
+ * Coordinates are viewport-relative CSS pixels.
196
+ */
197
+ boxes?: boolean;
198
+ };
199
+
170
200
  /**
171
201
  * Timeout settings for Playwright operations.
172
202
  */
@@ -223,6 +223,12 @@ export class BrowserServerBackend {
223
223
  }
224
224
  }
225
225
  catch (error) {
226
+ try {
227
+ await response.cleanupFilesOnError();
228
+ }
229
+ catch (cleanupError) {
230
+ logUnhandledError(cleanupError);
231
+ }
226
232
  response.addError(String(error));
227
233
  }
228
234
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"browserServerBackend.js","sourceRoot":"","sources":["../src/browserServerBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browserServerBackend.js","sourceRoot":"","sources":["../src/browserServerBackend.ts"],"names":[],"mappings":"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"}
@@ -152,6 +152,9 @@ export class BrowserSessionRegistry {
152
152
  entry.lastUsedAt = now;
153
153
  continue;
154
154
  }
155
+ const recordingActivityAt = entry.context.recordingActivityAt();
156
+ if (recordingActivityAt !== undefined && now - recordingActivityAt < this._ttlMs)
157
+ continue;
155
158
  const idleFor = now - entry.lastUsedAt;
156
159
  if (idleFor < this._ttlMs)
157
160
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"browserSessions.js","sourceRoot":"","sources":["../src/browserSessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browserSessions.js","sourceRoot":"","sources":["../src/browserSessions.ts"],"names":[],"mappings":"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"}
package/lib/config.js CHANGED
@@ -24,7 +24,6 @@ const defaultConfig = {
24
24
  launchOptions: {
25
25
  channel: 'chrome',
26
26
  headless: os.platform() === 'linux' && !process.env.DISPLAY,
27
- chromiumSandbox: true,
28
27
  },
29
28
  contextOptions: {
30
29
  viewport: null,
@@ -48,7 +47,7 @@ export async function resolveConfig(config) {
48
47
  export async function resolveCLIConfig(cliOptions) {
49
48
  const configInFile = await loadConfig(cliOptions.config);
50
49
  const envOptions = cliOptionsFromEnv();
51
- const envOverrides = configFromCLIOptions(envOptions);
50
+ const envOverrides = configFromCLIOptions(envOptions, true);
52
51
  const cliOverrides = configFromCLIOptions(cliOptions);
53
52
  const result = mergeCLIConfigSources(configInFile, envOverrides, cliOverrides);
54
53
  return validateResolvedConfig(applyMobileConfig(result, configInFile, envOverrides, cliOverrides, envOptions, cliOptions));
@@ -62,9 +61,26 @@ export async function resolveCLIConfig(cliOptions) {
62
61
  // config validations, on the merged result so every source (config file,
63
62
  // env, CLI, programmatic Config) is covered. Only undefined/null count as
64
63
  // omitted — the nullish semantics the fallback historically used.
65
- function validateResolvedConfig(config) {
64
+ async function validateResolvedConfig(config) {
65
+ validateAuthToken(config.server.authToken);
66
+ const uploadDirs = config.browser.allowedUploadDirs;
67
+ if (uploadDirs !== undefined) {
68
+ if (!Array.isArray(uploadDirs))
69
+ throw new Error('allowedUploadDirs must be an array of directory paths. Use [] to deny all uploads.');
70
+ if (uploadDirs.some(dir => typeof dir !== 'string' || !dir.trim()))
71
+ throw new Error('allowedUploadDirs must not contain blank directory entries. Use [] to deny all uploads.');
72
+ // Resolve once at trusted startup; uploads must not follow a retargeted root.
73
+ config.browser.allowedUploadDirs = await Promise.all(uploadDirs.map(dir => fs.promises.realpath(dir)));
74
+ }
66
75
  if (config.outputDir !== undefined && config.outputDir !== null && !String(config.outputDir).trim())
67
76
  throw new Error('outputDir must not be blank: provide a directory path, or omit the option to use a temp directory.');
77
+ if (config.browser.browserName === 'chromium' && !config.browser.remoteEndpoint && config.browser.launchOptions.chromiumSandbox === undefined) {
78
+ const { channel, executablePath } = config.browser.launchOptions;
79
+ config.browser.launchOptions.chromiumSandbox = os.platform() !== 'linux'
80
+ || executablePath !== undefined
81
+ || (channel !== undefined && channel !== 'chromium' && channel !== 'chrome-for-testing');
82
+ config.browser.chromiumSandboxDefaulted = true;
83
+ }
68
84
  return config;
69
85
  }
70
86
  function mergeCLIConfigSources(configInFile, envOverrides, cliOverrides, mobileOverride, mobileSource) {
@@ -98,7 +114,7 @@ function applyMobileConfig(resolved, configInFile, envOverrides, cliOverrides, e
98
114
  const mobileOverride = { browser: { contextOptions: devices[device] } };
99
115
  return mergeCLIConfigSources(configInFile, envOverrides, cliOverrides, mobileOverride, source);
100
116
  }
101
- function configFromCLIOptions(cliOptions) {
117
+ function configFromCLIOptions(cliOptions, sandboxTrueIsExplicit = false) {
102
118
  let browserName;
103
119
  let channel;
104
120
  switch (cliOptions.browser) {
@@ -127,9 +143,10 @@ function configFromCLIOptions(cliOptions) {
127
143
  executablePath: cliOptions.executablePath,
128
144
  headless: cliOptions.headless,
129
145
  };
130
- // --no-sandbox was passed, disable the sandbox
131
- if (cliOptions.sandbox === false)
132
- launchOptions.chromiumSandbox = false;
146
+ // Commander reports true when --no-sandbox is omitted, while true from the
147
+ // environment is explicit and must override the platform default.
148
+ if (cliOptions.sandbox === false || (sandboxTrueIsExplicit && cliOptions.sandbox === true))
149
+ launchOptions.chromiumSandbox = cliOptions.sandbox;
133
150
  if (cliOptions.proxyServer) {
134
151
  launchOptions.proxy = {
135
152
  server: cliOptions.proxyServer
@@ -174,6 +191,7 @@ function configFromCLIOptions(cliOptions) {
174
191
  browserName,
175
192
  isolated: cliOptions.isolated,
176
193
  userDataDir: cliOptions.userDataDir,
194
+ allowedUploadDirs: cliOptions.allowedUploadDirs,
177
195
  launchOptions,
178
196
  contextOptions,
179
197
  cdpLaunch,
@@ -184,6 +202,7 @@ function configFromCLIOptions(cliOptions) {
184
202
  server: {
185
203
  port: cliOptions.port,
186
204
  host: cliOptions.host,
205
+ authToken: cliOptions.authToken,
187
206
  },
188
207
  capabilities: cliOptions.caps,
189
208
  network: {
@@ -192,6 +211,7 @@ function configFromCLIOptions(cliOptions) {
192
211
  },
193
212
  saveSession: cliOptions.saveSession,
194
213
  saveTrace: cliOptions.saveTrace,
214
+ snapshot: cliOptions.snapshotBoxes !== undefined ? { boxes: cliOptions.snapshotBoxes } : undefined,
195
215
  outputDir: cliOptions.outputDir,
196
216
  imageResponses: cliOptions.imageResponses,
197
217
  timeouts: {
@@ -204,6 +224,8 @@ function configFromCLIOptions(cliOptions) {
204
224
  function cliOptionsFromEnv() {
205
225
  const options = {};
206
226
  options.allowedOrigins = semicolonSeparatedList(process.env.PLAYWRIGHT_MCP_ALLOWED_ORIGINS);
227
+ options.allowedUploadDirs = uploadDirectoryList(process.env.PLAYWRIGHT_MCP_ALLOWED_UPLOAD_DIRS);
228
+ options.authToken = process.env.PLAYWRIGHT_MCP_AUTH_TOKEN;
207
229
  options.blockedOrigins = semicolonSeparatedList(process.env.PLAYWRIGHT_MCP_BLOCKED_ORIGINS);
208
230
  options.blockServiceWorkers = envToBoolean(process.env.PLAYWRIGHT_MCP_BLOCK_SERVICE_WORKERS);
209
231
  options.browser = envToString(process.env.PLAYWRIGHT_MCP_BROWSER);
@@ -232,6 +254,7 @@ function cliOptionsFromEnv() {
232
254
  options.proxyBypass = envToString(process.env.PLAYWRIGHT_MCP_PROXY_BYPASS);
233
255
  options.proxyServer = envToString(process.env.PLAYWRIGHT_MCP_PROXY_SERVER);
234
256
  options.saveTrace = envToBoolean(process.env.PLAYWRIGHT_MCP_SAVE_TRACE);
257
+ options.snapshotBoxes = envToBoolean(process.env.PLAYWRIGHT_MCP_SNAPSHOT_BOXES);
235
258
  options.storageState = envToString(process.env.PLAYWRIGHT_MCP_STORAGE_STATE);
236
259
  options.userAgent = envToString(process.env.PLAYWRIGHT_MCP_USER_AGENT);
237
260
  options.userDataDir = envToString(process.env.PLAYWRIGHT_MCP_USER_DATA_DIR);
@@ -280,11 +303,25 @@ export function resolveOutputDir(config) {
280
303
  }
281
304
  return outputDir;
282
305
  }
283
- export async function outputFile(config, name) {
306
+ export async function outputFile(config, name, exclusive = false) {
307
+ const fileName = name.trim() ? sanitizeForFilePath(name) : '';
308
+ if (!fileName || fileName === '.' || fileName === '..' || /[. ]$/.test(name) || /[. ]$/.test(fileName) || /^(?:con|prn|aux|nul|com[1-9\u00b9\u00b2\u00b3]|lpt[1-9\u00b9\u00b2\u00b3])(?:\.|$)/i.test(fileName))
309
+ throw new Error(`Invalid output filename "${name}": use a portable, non-reserved file name.`);
284
310
  const outputDir = resolveOutputDir(config);
285
311
  await fs.promises.mkdir(outputDir, { recursive: true });
286
- const fileName = sanitizeForFilePath(name);
287
- return path.join(outputDir, fileName);
312
+ const filePath = path.join(outputDir, fileName);
313
+ if (!exclusive)
314
+ return filePath;
315
+ try {
316
+ const handle = await fs.promises.open(filePath, 'wx');
317
+ await handle.close();
318
+ }
319
+ catch (error) {
320
+ if (error.code === 'EEXIST')
321
+ throw new Error(`Output file already exists: ${filePath}. Choose a different filename.`, { cause: error });
322
+ throw error;
323
+ }
324
+ return filePath;
288
325
  }
289
326
  function pickDefined(obj) {
290
327
  return Object.fromEntries(Object.entries(obj ?? {}).filter(([_, v]) => v !== undefined));
@@ -331,6 +368,15 @@ export function semicolonSeparatedList(value) {
331
368
  return undefined;
332
369
  return value.split(';').map(v => v.trim());
333
370
  }
371
+ export function uploadDirectoryList(value) {
372
+ if (value === undefined)
373
+ return undefined;
374
+ return value === '' ? [] : value.split(';').map(dir => dir.trim());
375
+ }
376
+ export function validateAuthToken(token) {
377
+ if (token !== undefined && (typeof token !== 'string' || !/^[A-Za-z0-9._~+/-]+=*$/.test(token)))
378
+ throw new Error('server.authToken must be a non-blank Bearer token without whitespace.');
379
+ }
334
380
  export function commaSeparatedList(value) {
335
381
  if (!value)
336
382
  return undefined;
package/lib/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}