Skip to content

fix(mcp): report a dialog opened during navigation instead of timing out - #42908

Merged
Yury Semikhatsky (yury-s) merged 1 commit into
microsoft:mainfrom
yury-s:fix-42817
Sep 24, 2026
Merged

Yury Semikhatsky (yury-s) merged 1 commit into
microsoft:mainfrom
yury-s:fix-42817

Conversation

@yury-s

Copy link
Copy Markdown
Member

Summary

  • browser_navigate and browser_reload now race against modal states, so a dialog opened during load is reported immediately instead of hanging until the navigation timeout.
  • _raceAgainstModalStates no longer leaks its listener when the action throws.

Fixes #42817

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

8738 passed, 1480 skipped


Merge workflow run.

@yury-s
Yury Semikhatsky (yury-s) merged commit 7563c5a into microsoft:main Sep 24, 2026
18 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: MCP browser_navigate blocks for the whole navigation timeout when the page opens a dialog during load

2 participants