Skip to content

feat(chromium): roll to r1247 - #42915

Merged
Yury Semikhatsky (yury-s) merged 2 commits into
mainfrom
roll-into-pw-chromium/1247
Sep 24, 2026
Merged

Yury Semikhatsky (yury-s) merged 2 commits into
mainfrom
roll-into-pw-chromium/1247

Conversation

@microsoft-playwright-automation

@microsoft-playwright-automation microsoft-playwright-automation Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Browser build: https://github.com/microsoft/playwright-browsers/commit/6cc031b3e2411089f9b104779f4ec0225e28f746. Build has full platform coverage - check that all tests pass there.

  • fix(mcp): WebMCP executeTool now takes the tool input as an object (Chromium 155); fall back to a JSON string for older versions.

@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Hi, I'm the Playwright bot and I took a first look at the failing CI.

🔴 The WebMCP failures look caused by this PR

All 7 cli-webmcp.spec.ts / webmcp-dynamic.spec.ts failures are Chromium-only and fail the same way on macOS, Windows and Ubuntu: TypeError: Failed to execute 'executeTool' on 'ModelContext': invalid input object: value is not an object. Chromium 155 (r1247) seems to want an object for executeTool input now, not a JSON string. The other two failures are known flakes.

Details

The rest of this PR is generated metadata (browsers.json, protocol.d.ts, device descriptors, README). The one thing that changes behavior is the new Chromium binary, and it breaks the WebMCP call path in the same way on every OS. Chrome and Edge pass these tests in the same run.

Caused by this PR

  • [chromium] › mcp/cli-webmcp.spec.ts:58, :141, :168, :194 and [chromium] › mcp/webmcp-dynamic.spec.ts:105, :119, :189, on all three OSes. callToolInPage in packages/playwright-core/src/tools/backend/webmcp.ts calls modelContext.executeTool(tool, params.inputJson) and passes a JSON string. The new Chromium rejects that with "value is not an object". In the test-results DB, none of these tests failed with this error on any other SHA or PR. chromium otherwise passes them in about 150 runs (≤3 unrelated failures each). Likely fix: pass the parsed object, e.g. modelContext.executeTool!(tool, JSON.parse(params.inputJson)). If older Chromium builds still need a string, that call would have to handle both. Also update the // Chromium: executeTool(registeredTool, inputJsonString) comment and the executeTool typing. I haven't verified this locally against r1247.

Pre-existing flake / infra

Triaged by the Playwright bot - agent run

@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 2"

1 failed
❌ [android-page] › page/page-set-content.spec.ts:57 › should include shadow roots

30 flaky ⚠️ [chromium-library] › library/capabilities.spec.ts:93 › should play audio Radoslav Kirilov (@smoke) `@tracing-chromium`
⚠️ [chromium-page] › page/page-screenshot.spec.ts:504 › page screenshot › should take fullPage screenshots during navigation `@tracing-chromium`
⚠️ [chromium-library] › library/browsercontext-user-agent.spec.ts:110 › should work for navigator.userAgentData and sec-ch-ua headers `@msedge-dev-windows-latest`
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:373 › should produce network events, routing, and annotations for Service Worker `@chromium-macos-15-large`
⚠️ [chromium-library] › library/beforeunload.spec.ts:130 › should support dismissing the dialog multiple times `@chromium-macos-14-xlarge`
⚠️ [chromium-library] › library/chromium/oopif.spec.ts:179 › should take screenshot `@chromium-macos-14-xlarge`
⚠️ [chromium-library] › library/popup.spec.ts:260 › should not throw when click closes popup `@chromium-macos-14-xlarge`
⚠️ [chromium-library] › library/trace-viewer.spec.ts:1934 › should not leak recorders `@chromium-macos-14-xlarge`
⚠️ [chromium-library] › library/video.spec.ts:762 › screencast › should work with video+trace `@chromium-macos-15-xlarge`
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:213 › should intercept service worker requests (main and within) `@chrome-beta-ubuntu-22.04`
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:373 › should produce network events, routing, and annotations for Service Worker `@chrome-macos-latest`
⚠️ [chromium-library] › library/trace-viewer.spec.ts:2082 › should show a popover `@chrome-macos-latest`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:257 › third party 'Partitioned;' cookies `@tracing-firefox`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:470 › top level 'Partitioned;' cookie and same origin iframe `@tracing-firefox`
⚠️ [firefox-library] › library/downloads-path.spec.ts:48 › downloads path › should delete downloads when context closes `@tracing-firefox`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:257 › third party 'Partitioned;' cookies `@firefox-macos-15-large`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:470 › top level 'Partitioned;' cookie and same origin iframe `@firefox-macos-15-large`
⚠️ [firefox-library] › library/inspector/cli-codegen-aria.spec.ts:87 › should update aria snapshot highlight `@firefox-macos-15-large`
⚠️ [firefox-library] › library/beforeunload.spec.ts:30 › should close browsercontext with beforeunload page `@firefox-windows-latest`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:257 › third party 'Partitioned;' cookies `@firefox-windows-latest`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:470 › top level 'Partitioned;' cookie and same origin iframe `@firefox-windows-latest`
⚠️ [firefox-library] › library/inspector/cli-codegen-python-async.spec.ts:37 › should print the correct context options for custom settings `@firefox-windows-latest`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:257 › third party 'Partitioned;' cookies `@firefox-macos-15-xlarge`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:470 › top level 'Partitioned;' cookie and same origin iframe `@firefox-macos-15-xlarge`
⚠️ [webkit-library] › library/playwright-client.spec.ts:26 › should connect from a page and drive the same browser `@tracing-webkit`
⚠️ [webkit-library] › library/browsertype-connect.spec.ts:813 › launchServer › should upload a folder `@webkit-macos-15-large`
⚠️ [webkit-library] › library/browsertype-connect.spec.ts:288 › run-server › should send default User-Agent and X-Playwright-Browser headers with connect request `@webkit-macos-15-large`
⚠️ [webkit-library] › library/trace-viewer.spec.ts:1934 › should not leak recorders `@webkit-macos-15-large`
⚠️ [android-page] › page/locator-click.spec.ts:20 › should work Radoslav Kirilov (@smoke)
⚠️ [android-page] › page/page-request-fulfill.spec.ts:81 › should fulfill with unuassigned status codes

112496 passed, 4751 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Hi, I'm the Playwright bot and I took a first look at the failing "tests 2" run.

🟢 The one failure is already broken on main

[android-page] › page/page-set-content.spec.ts:57 › should include shadow roots fails with root.getHTML is not a function, and it has failed the same way on every main push since at least 2026-09-22.

Details

This PR rolls the desktop Chromium build to r1247 and regenerates metadata (browsers.json, protocol.d.ts, device descriptors, README). The Android bot drives the Chrome that's installed on the emulator, not the Chromium build from browsers.json, so the roll can't affect this test. That leaves "tests 2" with nothing this PR caused. The 30 flaky tests all passed on retry.

Pre-existing failure

  • [android-page] › page/page-set-content.spec.ts:57 › should include shadow roots: Error: page.content: TypeError: root.getHTML is not a function at InjectedScript.documentContent. In the test-results DB it failed with this exact error, both attempts, in every run I checked: 30+ main push builds from 2026-09-22 through 2b530ec8 (2026-09-24), and PRs feat(webkit): roll to r2366 #42879 and feat(webkit): roll to r2367 #42898. It looks like the device's Chrome doesn't support Element.getHTML(), which page.content() now calls on shadow roots.

This comment only covers "tests 2". My earlier comment on the MCP run still applies: the Chromium-only WebMCP failures there look caused by the roll.

Triaged by the Playwright bot - agent run

Chromium 155 takes the input as an object; fall back to a JSON string
for older versions.
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

8738 passed, 1480 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

5 flaky ⚠️ [installation tests] › concurrent-download.spec.ts:21 › concurrent browser downloads should not clobber each other `@package-installations-macos-latest`
⚠️ [installation tests] › npx-global.spec.ts:34 › npx playwright install global `@package-installations-macos-latest`
⚠️ [installation tests] › playwright-cli-install-should-work.spec.ts:30 › install command should work `@package-installations-macos-latest`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:257 › third party 'Partitioned;' cookies `@firefox-ubuntu-22.04-node20`
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:470 › top level 'Partitioned;' cookie and same origin iframe `@firefox-ubuntu-22.04-node20`

52281 passed, 1241 skipped


Merge workflow run.

@yury-s
Yury Semikhatsky (yury-s) merged commit 9db1942 into main Sep 24, 2026
46 checks passed
@yury-s
Yury Semikhatsky (yury-s) deleted the roll-into-pw-chromium/1247 branch September 24, 2026 23:03
Yury Semikhatsky (yury-s) added a commit to microsoft/playwright-mcp that referenced this pull request Sep 28, 2026
## ✨ Highlights

- **🔎 Save `browser_find` results to a file** — new `filename` parameter
writes matches to a file instead of the response
([microsoft/playwright#42077](microsoft/playwright#42077)).
([microsoft/playwright#42968](microsoft/playwright#42968))

## 🐛 Fixes

- `browser_navigate` and `browser_reload` report a dialog opened during
page load instead of timing out
([microsoft/playwright#42817](microsoft/playwright#42817)).
([microsoft/playwright#42908](microsoft/playwright#42908))
- The server no longer crashes when the browser is closed during a
download
([microsoft/playwright#42831](microsoft/playwright#42831)).
([microsoft/playwright#42922](microsoft/playwright#42922))
- `browser_wait_for` reports when `time` is capped at 30 seconds
([#1767](#1767)).
([microsoft/playwright#42932](microsoft/playwright#42932))
- WebMCP tools no longer stay bound to a stale tab or frame
([microsoft/playwright#42816](microsoft/playwright#42816)).
([microsoft/playwright#42821](microsoft/playwright#42821))
- WebMCP tool calls work with Chromium 155+.
([microsoft/playwright#42915](microsoft/playwright#42915))
- Snapshots quote accessible names that look like regexes, e.g.
`"/home/"`
([microsoft/playwright#42807](microsoft/playwright#42807)).
([microsoft/playwright#42811](microsoft/playwright#42811))
- The Docker image reaps orphaned browser processes
([#1769](#1769)).
([#1771](#1771))
Yury Semikhatsky (yury-s) added a commit to microsoft/playwright-cli that referenced this pull request Sep 28, 2026
## Fixes

- `run-code` scripts can use timers, `fetch`, `URL`, `Buffer`, `crypto`,
`AbortController` and `TextEncoder`/`TextDecoder`; `require` and
`process` stay unavailable
([#471](#471)).
([microsoft/playwright#42975](microsoft/playwright#42975))
- `find --filename=results.md` saves matches to a file when a query
produces too many of them
([microsoft/playwright#42077](microsoft/playwright#42077)).
([microsoft/playwright#42968](microsoft/playwright#42968))
- `goto` and `reload` report a dialog opened during page load instead of
timing out
([microsoft/playwright#42817](microsoft/playwright#42817)).
([microsoft/playwright#42908](microsoft/playwright#42908))
- The session no longer crashes when the browser is closed during a
download
([microsoft/playwright#42831](microsoft/playwright#42831)).
([microsoft/playwright#42922](microsoft/playwright#42922))
- `install-browser --no-shell` is accepted instead of failing with
`Unknown option: --shell`
([microsoft/playwright#42804](microsoft/playwright#42804)).
([microsoft/playwright#42871](microsoft/playwright#42871))
- `webmcp-call` no longer runs a tool in a stale tab or frame
([microsoft/playwright#42816](microsoft/playwright#42816)).
([microsoft/playwright#42821](microsoft/playwright#42821))
- `webmcp-call` works with Chromium 155+.
([microsoft/playwright#42915](microsoft/playwright#42915))
- Snapshots quote accessible names that look like regexes, e.g.
`"/home/"`
([microsoft/playwright#42807](microsoft/playwright#42807)).
([microsoft/playwright#42811](microsoft/playwright#42811))
- The bundled skill only preapproves Playwright commands instead of any
`npm` and `npx` command
([microsoft/playwright#42745](microsoft/playwright#42745)).
([microsoft/playwright#42789](microsoft/playwright#42789))
renovate Bot added a commit to soodoh/dotfiles that referenced this pull request Sep 29, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
| [aqua:astral-sh/uv](https://redirect.github.com/astral-sh/uv) | tools
| patch | `0.12.19` → `0.12.20` |
![age](https://developer.mend.io/api/mc/badges/age/github-tags/astral-sh%2fuv/0.12.20?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/astral-sh%2fuv/0.12.19/0.12.20?slim=true)
|
| [npm:@playwright/mcp](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright-mcp)) | tools
| patch | `0.0.82` → `0.0.83` |
![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2fmcp/0.0.83?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2fmcp/0.0.82/0.0.83?slim=true)
|

---

### Release Notes

<details>
<summary>astral-sh/uv (aqua:astral-sh/uv)</summary>

###
[`v0.12.20`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01220)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.12.19...0.12.20)

Released on 2026-09-28.

##### Enhancements

- Reuse lockfiles when dependency declarations are semantically
equivalent
([#&#8203;21951](https://redirect.github.com/astral-sh/uv/pull/21951))
- Preserve second-line encoding declarations when installing wheel
scripts with CRLF shebangs
([#&#8203;21990](https://redirect.github.com/astral-sh/uv/pull/21990))

##### Preview features

- Write normalized requirement declarations with the
`lockfile-normalization` preview feature
([#&#8203;21951](https://redirect.github.com/astral-sh/uv/pull/21951))
- Honor synthetic default groups when installing or syncing from
`pylock.toml`
([#&#8203;22003](https://redirect.github.com/astral-sh/uv/pull/22003))
- Resolve local paths in exported `pylock.toml` files relative to the
output file
([#&#8203;22042](https://redirect.github.com/astral-sh/uv/pull/22042))
- Install each package only once when repeated `tool-install-locks`
requirements resolve to the same package
([#&#8203;22000](https://redirect.github.com/astral-sh/uv/pull/22000))
- Reuse `lock-without-metadata` lockfiles for conflicting groups with
distinct base and extra requirement specifiers
([#&#8203;22055](https://redirect.github.com/astral-sh/uv/pull/22055))
- Use consistent root-package paths in `uv workspace metadata` and `uv
tree --format json` output
([#&#8203;22050](https://redirect.github.com/astral-sh/uv/pull/22050))

##### Configuration

- Continue searching `XDG_CONFIG_DIRS` after empty entries
([#&#8203;21987](https://redirect.github.com/astral-sh/uv/pull/21987))

##### Performance

- Restore the previous HTTP cache-write scheduling while investigating
severe cache-revalidation stalls on ext4 filesystems
([#&#8203;22051](https://redirect.github.com/astral-sh/uv/pull/22051))

##### Bug fixes

- Apply hash constraints to every repeated requirement under
`--require-hashes` and `--verify-hashes`
([#&#8203;21996](https://redirect.github.com/astral-sh/uv/pull/21996))
- Allow metadata builds for first-party workspace projects under
`--no-build`
([#&#8203;21988](https://redirect.github.com/astral-sh/uv/pull/21988))
- Honor project exclusion flags with `--all-packages`, including
`--no-install-project` and `--no-emit-project`
([#&#8203;21994](https://redirect.github.com/astral-sh/uv/pull/21994))
- Restore `pyproject.toml` if `uv upgrade` fails or is interrupted
([#&#8203;21983](https://redirect.github.com/astral-sh/uv/pull/21983))
- Generate working Nushell activation scripts for relocatable virtual
environments
([#&#8203;21979](https://redirect.github.com/astral-sh/uv/pull/21979))
- Prevent commands from running and changing state after displaying
`--show-settings`
([#&#8203;21989](https://redirect.github.com/astral-sh/uv/pull/21989))
- Treat UTF-16 requirements files containing only a byte-order mark as
empty
([#&#8203;21991](https://redirect.github.com/astral-sh/uv/pull/21991))
- Ignore unrecognized managed-Python implementation directories during
`uv python list` and `uv python upgrade` instead of panicking
([#&#8203;22033](https://redirect.github.com/astral-sh/uv/pull/22033))
- Avoid panics and incorrect rewriting when managed Python sysconfig
paths merely start with `/install`
([#&#8203;22036](https://redirect.github.com/astral-sh/uv/pull/22036))
- Report whitespace-only non-ASCII requirements as invalid instead of
panicking
([#&#8203;22035](https://redirect.github.com/astral-sh/uv/pull/22035))
- Avoid a resolver panic when trace logging an always-false constraint
([#&#8203;22034](https://redirect.github.com/astral-sh/uv/pull/22034))

</details>

<details>
<summary>microsoft/playwright-mcp (npm:@&#8203;playwright/mcp)</summary>

###
[`v0.0.83`](https://redirect.github.com/microsoft/playwright-mcp/releases/tag/v0.0.83)

[Compare
Source](https://redirect.github.com/microsoft/playwright-mcp/compare/v0.0.82...v0.0.83)

#### Bug Fixes

- `browser_find` takes `filename` to save matches to a file instead of
the response
([microsoft/playwright#42077](https://redirect.github.com/microsoft/playwright/issues/42077)).
([microsoft/playwright#42968](https://redirect.github.com/microsoft/playwright/pull/42968))
- `browser_navigate` and `browser_reload` report a dialog opened during
page load instead of timing out
([microsoft/playwright#42817](https://redirect.github.com/microsoft/playwright/issues/42817)).
([microsoft/playwright#42908](https://redirect.github.com/microsoft/playwright/pull/42908))
- The server no longer crashes when the browser is closed during a
download
([microsoft/playwright#42831](https://redirect.github.com/microsoft/playwright/issues/42831)).
([microsoft/playwright#42922](https://redirect.github.com/microsoft/playwright/pull/42922))
- `browser_wait_for` reports when `time` is capped at 30 seconds
([#&#8203;1767](https://redirect.github.com/microsoft/playwright-mcp/issues/1767)).
([microsoft/playwright#42932](https://redirect.github.com/microsoft/playwright/pull/42932))
- WebMCP tools no longer stay bound to a stale tab or frame
([microsoft/playwright#42816](https://redirect.github.com/microsoft/playwright/issues/42816)).
([microsoft/playwright#42821](https://redirect.github.com/microsoft/playwright/pull/42821))
- WebMCP tool calls work with Chromium 155+.
([microsoft/playwright#42915](https://redirect.github.com/microsoft/playwright/pull/42915))
- Snapshots quote accessible names that look like regexes, e.g.
`"/home/"`
([microsoft/playwright#42807](https://redirect.github.com/microsoft/playwright/issues/42807)).
([microsoft/playwright#42811](https://redirect.github.com/microsoft/playwright/pull/42811))
- The Docker image reaps orphaned browser processes
([#&#8203;1769](https://redirect.github.com/microsoft/playwright-mcp/issues/1769)).
([#&#8203;1771](https://redirect.github.com/microsoft/playwright-mcp/pull/1771))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/soodoh/dotfiles).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjExMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Paul Sorensen (paulnsorensen) added a commit to paulnsorensen/dotfiles that referenced this pull request Sep 30, 2026
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Adoption](https://docs.renovatebot.com/merge-confidence/) |
[Passing](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
| [@playwright/mcp](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright-mcp)) |
`0.0.82` → `0.0.83` |
![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2fmcp/0.0.83?slim=true)
|
![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2fmcp/0.0.83?slim=true)
|
![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2fmcp/0.0.82/0.0.83?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2fmcp/0.0.82/0.0.83?slim=true)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the warning logs for
more information.

---

### Release Notes

<details>
<summary>microsoft/playwright-mcp (@&#8203;playwright/mcp)</summary>

###
[`v0.0.83`](https://redirect.github.com/microsoft/playwright-mcp/releases/tag/v0.0.83)

[Compare
Source](https://redirect.github.com/microsoft/playwright-mcp/compare/v0.0.82...v0.0.83)

#### Bug Fixes

- `browser_find` takes `filename` to save matches to a file instead of
the response
([microsoft/playwright#42077](https://redirect.github.com/microsoft/playwright/issues/42077)).
([microsoft/playwright#42968](https://redirect.github.com/microsoft/playwright/pull/42968))
- `browser_navigate` and `browser_reload` report a dialog opened during
page load instead of timing out
([microsoft/playwright#42817](https://redirect.github.com/microsoft/playwright/issues/42817)).
([microsoft/playwright#42908](https://redirect.github.com/microsoft/playwright/pull/42908))
- The server no longer crashes when the browser is closed during a
download
([microsoft/playwright#42831](https://redirect.github.com/microsoft/playwright/issues/42831)).
([microsoft/playwright#42922](https://redirect.github.com/microsoft/playwright/pull/42922))
- `browser_wait_for` reports when `time` is capped at 30 seconds
([#&#8203;1767](https://redirect.github.com/microsoft/playwright-mcp/issues/1767)).
([microsoft/playwright#42932](https://redirect.github.com/microsoft/playwright/pull/42932))
- WebMCP tools no longer stay bound to a stale tab or frame
([microsoft/playwright#42816](https://redirect.github.com/microsoft/playwright/issues/42816)).
([microsoft/playwright#42821](https://redirect.github.com/microsoft/playwright/pull/42821))
- WebMCP tool calls work with Chromium 155+.
([microsoft/playwright#42915](https://redirect.github.com/microsoft/playwright/pull/42915))
- Snapshots quote accessible names that look like regexes, e.g.
`"/home/"`
([microsoft/playwright#42807](https://redirect.github.com/microsoft/playwright/issues/42807)).
([microsoft/playwright#42811](https://redirect.github.com/microsoft/playwright/pull/42811))
- The Docker image reaps orphaned browser processes
([#&#8203;1769](https://redirect.github.com/microsoft/playwright-mcp/issues/1769)).
([#&#8203;1771](https://redirect.github.com/microsoft/playwright-mcp/pull/1771))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/paulnsorensen/dotfiles).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjExMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Claude (dep-harvest) <paulnsorensen@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Pathfinder Team (PM-Labs) pushed a commit to pmlabs-org/mcp-playwright that referenced this pull request Oct 4, 2026
## ✨ Highlights

- **🔎 Save `browser_find` results to a file** — new `filename` parameter
writes matches to a file instead of the response
([microsoft/playwright#42077](microsoft/playwright#42077)).
([microsoft/playwright#42968](microsoft/playwright#42968))

## 🐛 Fixes

- `browser_navigate` and `browser_reload` report a dialog opened during
page load instead of timing out
([microsoft/playwright#42817](microsoft/playwright#42817)).
([microsoft/playwright#42908](microsoft/playwright#42908))
- The server no longer crashes when the browser is closed during a
download
([microsoft/playwright#42831](microsoft/playwright#42831)).
([microsoft/playwright#42922](microsoft/playwright#42922))
- `browser_wait_for` reports when `time` is capped at 30 seconds
([microsoft#1767](microsoft#1767)).
([microsoft/playwright#42932](microsoft/playwright#42932))
- WebMCP tools no longer stay bound to a stale tab or frame
([microsoft/playwright#42816](microsoft/playwright#42816)).
([microsoft/playwright#42821](microsoft/playwright#42821))
- WebMCP tool calls work with Chromium 155+.
([microsoft/playwright#42915](microsoft/playwright#42915))
- Snapshots quote accessible names that look like regexes, e.g.
`"/home/"`
([microsoft/playwright#42807](microsoft/playwright#42807)).
([microsoft/playwright#42811](microsoft/playwright#42811))
- The Docker image reaps orphaned browser processes
([microsoft#1769](microsoft#1769)).
([microsoft#1771](microsoft#1771))
Nik Zherebtsov (nicolasalt) pushed a commit to nikzlabs/shipit that referenced this pull request Oct 13, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@openai/codex](https://redirect.github.com/openai/codex) ([source](https://redirect.github.com/openai/codex/tree/HEAD/codex-cli)) | [`0.159.2` → `0.160.1`](https://renovatebot.com/diffs/npm/@openai%2fcodex/0.159.2/0.160.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@openai%2fcodex/0.160.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@openai%2fcodex/0.159.2/0.160.1?slim=true) |
| [@playwright/mcp](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright-mcp)) | [`0.0.80` → `0.0.83`](https://renovatebot.com/diffs/npm/@playwright%2fmcp/0.0.80/0.0.83) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2fmcp/0.0.83?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2fmcp/0.0.80/0.0.83?slim=true) |
| @&#8203;xai-official/grok | [`1.0.29` → `1.0.49`](https://renovatebot.com/diffs/npm/@xai-official%2fgrok/1.0.29/1.0.49) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@xai-official%2fgrok/1.0.49?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@xai-official%2fgrok/1.0.29/1.0.49?slim=true) |
| opencode-ai | [`1.18.30` → `1.18.34`](https://renovatebot.com/diffs/npm/opencode-ai/1.18.30/1.18.34) | ![age](https://developer.mend.io/api/mc/badges/age/npm/opencode-ai/1.18.34?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/opencode-ai/1.18.30/1.18.34?slim=true) |

---

### Release Notes

<details>
<summary>openai/codex (@&#8203;openai/codex)</summary>

### [`v0.160.1`](https://redirect.github.com/openai/codex/compare/rust-v0.160.0-alpha.6.1...rust-v0.160.1)

### [`v0.160.0`](https://redirect.github.com/openai/codex/compare/rust-v0.159.3...rust-v0.160.0-alpha.6.1)

### [`v0.159.3`](https://redirect.github.com/openai/codex/compare/rust-v0.159.2...rust-v0.159.3)

</details>

<details>
<summary>microsoft/playwright-mcp (@&#8203;playwright/mcp)</summary>

### [`v0.0.83`](https://redirect.github.com/microsoft/playwright-mcp/releases/tag/v0.0.83)

[Compare Source](https://redirect.github.com/microsoft/playwright-mcp/compare/v0.0.82...v0.0.83)

#### Bug Fixes

- `browser_find` takes `filename` to save matches to a file instead of the response ([microsoft/playwright#42077](https://redirect.github.com/microsoft/playwright/issues/42077)). ([microsoft/playwright#42968](https://redirect.github.com/microsoft/playwright/pull/42968))
- `browser_navigate` and `browser_reload` report a dialog opened during page load instead of timing out ([microsoft/playwright#42817](https://redirect.github.com/microsoft/playwright/issues/42817)). ([microsoft/playwright#42908](https://redirect.github.com/microsoft/playwright/pull/42908))
- The server no longer crashes when the browser is closed during a download ([microsoft/playwright#42831](https://redirect.github.com/microsoft/playwright/issues/42831)). ([microsoft/playwright#42922](https://redirect.github.com/microsoft/playwright/pull/42922))
- `browser_wait_for` reports when `time` is capped at 30 seconds ([#&#8203;1767](https://redirect.github.com/microsoft/playwright-mcp/issues/1767)). ([microsoft/playwright#42932](https://redirect.github.com/microsoft/playwright/pull/42932))
- WebMCP tools no longer stay bound to a stale tab or frame ([microsoft/playwright#42816](https://redirect.github.com/microsoft/playwright/issues/42816)). ([microsoft/playwright#42821](https://redirect.github.com/microsoft/playwright/pull/42821))
- WebMCP tool calls work with Chromium 155+. ([microsoft/playwright#42915](https://redirect.github.com/microsoft/playwright/pull/42915))
- Snapshots quote accessible names that look like regexes, e.g. `"/home/"` ([microsoft/playwright#42807](https://redirect.github.com/microsoft/playwright/issues/42807)). ([microsoft/playwright#42811](https://redirect.github.com/microsoft/playwright/pull/42811))
- The Docker image reaps orphaned browser processes ([#&#8203;1769](https://redirect.github.com/microsoft/playwright-mcp/issues/1769)). ([#&#8203;1771](https://redirect.github.com/microsoft/playwright-mcp/pull/1771))

### [`v0.0.82`](https://redirect.github.com/microsoft/playwright-mcp/releases/tag/v0.0.82)

[Compare Source](https://redirect.github.com/microsoft/playwright-mcp/compare/v0.0.81...v0.0.82)

#### ✨ Highlights

- **🎬 Smooth 60 fps, styleable videos** — `browser_start_video` (opt-in via `--caps=devtools`) takes `fps`, so `fps: 60` records smooth 60 fps videos instead of the default 25, and `cursor: true` renders an animated mouse cursor that travels to each action point and stays visible between actions. `browser_video_show_actions` takes a `style` with `point`, `highlight` and `title` CSS declarations; the action point marker and the target highlight are now only shown when styled. ([microsoft/playwright#42752](https://redirect.github.com/microsoft/playwright/pull/42752), [microsoft/playwright#42758](https://redirect.github.com/microsoft/playwright/pull/42758))
- **🧰 WebMCP tools become real MCP tools** — the tools a page registers through the [WebMCP](https://webmachinelearning.github.io/webmcp/) API now show up right in the tool list as `webmcp_<tool>`, with the page's own input schema and annotations, so an agent can call them directly and let the page do the work instead of driving its UI. The list follows the current tab, and clients get a `tools/list_changed` notification when it changes. This replaces `browser_webmcp_list` / `browser_webmcp_call` from v0.0.81, which are no longer exposed over MCP. Tool names, descriptions, schemas and results come from the page, so treat them as untrusted input. Pass `--no-webmcp` (config `webmcp: false`, env `PLAYWRIGHT_MCP_WEBMCP=false`) to opt out. WebMCP is experimental, see [WebMCP in Chrome](https://developer.chrome.com/docs/ai/webmcp) for how to enable it. ([microsoft/playwright#42671](https://redirect.github.com/microsoft/playwright/pull/42671))
- **🌗 Switch between light and dark color scheme** ([microsoft/playwright#42243](https://redirect.github.com/microsoft/playwright/issues/42243)) — an agent working on a dark theme had no way to see it mid-session. The new **`browser_emulate_media`** tool emulates media features on the fly: `colorScheme`, `reducedMotion`, `forcedColors`, `contrast` and the `media` type (screen / print). Omitted parameters are left unchanged, `null` clears an override. ([microsoft/playwright#42668](https://redirect.github.com/microsoft/playwright/pull/42668))
- **📁 Absolute paths in results** ([microsoft/playwright#42497](https://redirect.github.com/microsoft/playwright/issues/42497)) — links to snapshots, screenshots, console logs and downloads are relative to the workspace root, which a client without one cannot resolve. Pass `--file-paths=absolute` (config `filePaths: "absolute"`, env `PLAYWRIGHT_MCP_FILE_PATHS=absolute`) to get absolute paths instead. ([microsoft/playwright#42673](https://redirect.github.com/microsoft/playwright/pull/42673))

#### 🐛 Fixes

- `fix(mcp): keep upload modal and reject bad headers` — a failed `browser_file_upload` (e.g. a missing file) reports the error and keeps the file chooser open so it can be retried, and `browser_route` (opt-in via `--caps=network`) returns an error for a header that is not in the `Name: Value` form instead of setting a header named `""`. ([microsoft/playwright#42713](https://redirect.github.com/microsoft/playwright/pull/42713))
- `fix(chromium): bypass service workers on the storage state page` — `browser_storage_state` (opt-in via `--caps=storage`) no longer runs the site's own scripts, or fails when they redirect, for origins with an active service worker ([microsoft/playwright#42656](https://redirect.github.com/microsoft/playwright/issues/42656)). ([microsoft/playwright#42664](https://redirect.github.com/microsoft/playwright/pull/42664), [microsoft/playwright#42741](https://redirect.github.com/microsoft/playwright/pull/42741))

#### 📦 Upgrading

Configs that use `@playwright/mcp@latest` pick this release up on the next client restart. To pin it:

```bash
npx @playwright/mcp@0.0.82
```

### [`v0.0.81`](https://redirect.github.com/microsoft/playwright-mcp/releases/tag/v0.0.81)

[Compare Source](https://redirect.github.com/microsoft/playwright-mcp/compare/v0.0.80...v0.0.81)

#### What's New

##### 🎉 New Tools

- **`browser_webmcp_list` / `browser_webmcp_call`** — List and call the tools a page registers through the [WebMCP](https://webmachinelearning.github.io/webmcp/) API, letting the page do the work instead of driving its UI. When a page has WebMCP tools, the page status reports how many are available ([#&#8203;42613](https://redirect.github.com/microsoft/playwright/pull/42613)). WebMCP is experimental, see [WebMCP in Chrome](https://developer.chrome.com/docs/ai/webmcp) for how to enable it.

##### Other Changes

- New `--profile-dir-name <name>` option (env `PLAYWRIGHT_MCP_PROFILE_DIR_NAME`) selects the Chrome profile to connect to in extension mode when the extension is installed in several profiles, for example `"Profile 1"` ([#&#8203;42527](https://redirect.github.com/microsoft/playwright/pull/42527))
- Headless browsers launched by the server are now closed after one hour without tool calls; the next tool call launches a new one. Use `--idle-timeout <ms>` (config `timeouts.idle`, env `PLAYWRIGHT_MCP_IDLE_TIMEOUT`) to change the timeout, `0` disables it. Headed and attached browsers are not closed unless a timeout is set explicitly ([#&#8203;42663](https://redirect.github.com/microsoft/playwright/pull/42663), [#&#8203;42676](https://redirect.github.com/microsoft/playwright/pull/42676))
- `--image-responses` accepts `only`: a response that carries an image consists of the image parts alone, without the text part ([#&#8203;42672](https://redirect.github.com/microsoft/playwright/pull/42672))

#### Bug Fixes

- `browser_close` returns an error when the browser context is shared (`--shared-browser-context`) instead of breaking the calling client's session. This supersedes the v0.0.80 change that dropped the backend after `browser_close` ([#&#8203;42495](https://redirect.github.com/microsoft/playwright/pull/42495))
- With `--shared-browser-context`, `browser_start_recording` / `browser_stop_recording` (opt-in via `--caps=devtools`) keep each client's recording separate instead of delivering one client's recorded actions to another ([#&#8203;42622](https://redirect.github.com/microsoft/playwright/pull/42622), [#&#8203;42627](https://redirect.github.com/microsoft/playwright/pull/42627))
- The file access check follows symlinks, so a symlink inside the workspace can no longer be used to read or write files outside the allowed roots ([#&#8203;42628](https://redirect.github.com/microsoft/playwright/pull/42628))
- Explicitly named output files in a nested directory (e.g. `sub/shot.png`) no longer fail with `ENOENT`; `browser_file_upload` and `browser_drop` resolve relative paths against the workspace root ([#&#8203;42540](https://redirect.github.com/microsoft/playwright/pull/42540))
- In extension mode with `PLAYWRIGHT_MCP_EXTENSION_TOKEN` set, a connection that never completes (e.g. the token belongs to another Chrome profile) now fails after 30 seconds with a hint instead of hanging the tool call forever ([#&#8203;42525](https://redirect.github.com/microsoft/playwright/pull/42525))
- Disable the Chromium sandbox by default on Linux for the bundled Chromium build, which lacks the setuid sandbox helper ([#&#8203;42490](https://redirect.github.com/microsoft/playwright/pull/42490))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/nikzlabs/shipit).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant