François Beaufort
7a48781651
feat(webmcp): Add experimental tool to execute WebMCP tool ( #1873 )
...
<img width="1840" height="1191" alt="Screenshot 2026-04-16 at 11 00 37"
src="https://github.com/user-attachments/assets/6e69dfef-8903-4cbc-ba59-191edd76c0c8 "
/>
@OrKoN
2026-04-16 11:56:58 +00:00
François Beaufort
4d484cea53
feat(webmcp): Add experimental tool to list WebMCP tools page exposes ( #1845 )
...
<img width="1305" height="735" alt="image"
src="https://github.com/user-attachments/assets/ea154d81-c1cf-4758-98c2-7dce25d6ad8b "
/>
```
npx @modelcontextprotocol/inspector node build/src/bin/chrome-devtools-mcp.js --channel=canary --experimentalWebmcp --chrome-arg='--enable-features=WebMCPTesting,DevToolsWebMCPSupport'
```
<img width="1728" height="1117" alt="image"
src="https://github.com/user-attachments/assets/133ac10e-7bd3-4eaa-b1e9-25b1283e5761 "
/>
cc @OrKoN
2026-04-16 11:56:58 +00:00
Alex Rudenko
60303e1d7c
feat: ensure extensions for file outputs ( #1867 )
...
This PR ensures the extensions for the file outputs of different types
minimizing the chance of misuse. The input filePath, thus, might be
modified but it should not be an issue for clients as the final output
path is returned to the clients in the response.
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1864
---------
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com >
2026-04-16 11:56:58 +00:00
dependabot[bot]
345deac7e1
chore(deps-dev): bump puppeteer from 24.40.0 to 24.41.0 in the bundled group ( #1869 )
...
Bumps the bundled group with 1 update:
[puppeteer](https://github.com/puppeteer/puppeteer ).
Updates `puppeteer` from 24.40.0 to 24.41.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases ">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v24.41.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v24.40.0...puppeteer-core-v24.41.0 ">24.41.0</a>
(2026-04-15)</h2>
<h3>🎉 Features</h3>
<ul>
<li>add support for Issues (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14845 ">#14845</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/6e8dbe7a998a3619f089f549009ebcb860389fdd ">6e8dbe7</a>)</li>
<li>adds extension realms api (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14824 ">#14824</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/c14f4ae7ee65fd95a4a1f9d722e73f67c37da44b ">c14f4ae</a>)</li>
<li>API to list installed browser extensions and trigger extension
actions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14821 ">#14821</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/d6395ef88103a50cb2b2c43f61953ab6a495a8c3 ">d6395ef</a>)</li>
<li>implement console event on web workers (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14784 ">#14784</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/fa6158a1dfa327df8dc8eea1eb22c49efefb3be5 ">fa6158a</a>)</li>
<li>roll to Chrome 147.0.7727.24 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14797 ">#14797</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/ee81786a8285e20afdee70e4fb8660df4d6748b0 ">ee81786</a>)</li>
<li>roll to Firefox 149.0 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14799 ">#14799</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/9fd5ceb054b0508bd8f4b14ed950a011a31f101a ">9fd5ceb</a>)</li>
<li><strong>webmcp:</strong> add hook for tool invocation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14835 ">#14835</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/cf8169d5dee0bbff06118c211969eb94849f6bbd ">cf8169d</a>)</li>
<li><strong>webmcp:</strong> add hook for tool response (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14841 ">#14841</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/6fb05bc9e45fb2735a1c44b59ad868af2fb1ee9b ">6fb05bc</a>)</li>
<li><strong>webmcp:</strong> add initial API to inspect tool
registrations (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14814 ">#14814</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/655c996fed21d4ac7f5df841aef0c6b246ba2e9d ">655c996</a>)</li>
<li><strong>webmcp:</strong> add WebMCPTool execute support (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14851 ">#14851</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/8f95117960af969ee31595406f985c924eb67bf1 ">8f95117</a>)</li>
<li><strong>webmcp:</strong> expose WebMCPToolCall in
WebMCPToolCallResult (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14848 ">#14848</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/242ac0b2d364e9463f2b0e37f26d8bd0cfdf4d3e ">242ac0b</a>)</li>
<li><strong>webmcp:</strong> Switch from WebMCPInvocationStatus Success
to Completed (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14859 ">#14859</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/375e636beedaa5fef53d5f198fa70229d47155b5 ">375e636</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>add missing onRelease to Mutex and add tests (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14818 ">#14818</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/bf1e9722eef723c80250119d81fd9d9e0596c074 ">bf1e972</a>)</li>
<li>make <code>Target.asPage</code> return the same Page instance (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14862 ">#14862</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/e484a918c432859efbf57a74b4957097b13f8575 ">e484a91</a>)</li>
<li>remove RenderDocument from disabled Chrome features (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14745 ">#14745</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/a48eba24dcb2663da543bdf1f4597a2c1a56f0ff ">a48eba2</a>)</li>
<li>roll to Chrome 147.0.7727.50 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14819 ">#14819</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/2be30023994ee2e7ebb15e43dc0e2804256f8ca2 ">2be3002</a>)</li>
<li>roll to Chrome 147.0.7727.56 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14842 ">#14842</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/fdb3c64f8bfcff367eab862c0309f9c4bf6d6f20 ">fdb3c64</a>)</li>
<li>roll to Firefox 149.0.2 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14838 ">#14838</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/55359a3d7383c03a9d9de7ff8e24b613655694e8 ">55359a3</a>)</li>
<li>without azimuthAngle the altitudeAngle should no be specified (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14781 ">#14781</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/6f9d9752207d55be0e3b0d10ba9a416a81af4694 ">6f9d975</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>update extension and realm docs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14867 ">#14867</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/080379bf24c6bd021d664bcf993457542cf76dcc ">080379b</a>)</li>
<li><strong>webmcp:</strong> Add JS example to WebMCP class (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14852 ">#14852</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/c514dba3316e742f2d2b428fd72a49890c0a2255 ">c514dba</a>)</li>
<li><strong>webmcp:</strong> Add missing documentation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14849 ">#14849</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/76b08d20305283b9a2a2ccd5cf9c2f5bad63e337 ">76b08d2</a>)</li>
<li><strong>webmcp:</strong> tune tags and descriptions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14844 ">#14844</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/578295815ca559790626b8aeeddeea9f9cef67be ">5782958</a>)</li>
</ul>
<h2>puppeteer: v24.41.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.40.0...puppeteer-v24.41.0 ">24.41.0</a>
(2026-04-15)</h2>
<h3>🎉 Features</h3>
<ul>
<li>roll to Chrome 147.0.7727.24 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14797 ">#14797</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/ee81786a8285e20afdee70e4fb8660df4d6748b0 ">ee81786</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md ">puppeteer's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.40.0...puppeteer-v24.41.0 ">24.41.0</a>
(2026-04-15)</h2>
<h3>🎉 Features</h3>
<ul>
<li>add support for Issues (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14845 ">#14845</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/6e8dbe7a998a3619f089f549009ebcb860389fdd ">6e8dbe7</a>)</li>
<li>adds extension realms api (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14824 ">#14824</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/c14f4ae7ee65fd95a4a1f9d722e73f67c37da44b ">c14f4ae</a>)</li>
<li>API to list installed browser extensions and trigger extension
actions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14821 ">#14821</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/d6395ef88103a50cb2b2c43f61953ab6a495a8c3 ">d6395ef</a>)</li>
<li>implement console event on web workers (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14784 ">#14784</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/fa6158a1dfa327df8dc8eea1eb22c49efefb3be5 ">fa6158a</a>)</li>
<li>roll to Chrome 147.0.7727.24 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14797 ">#14797</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/ee81786a8285e20afdee70e4fb8660df4d6748b0 ">ee81786</a>)</li>
<li>roll to Firefox 149.0 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14799 ">#14799</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/9fd5ceb054b0508bd8f4b14ed950a011a31f101a ">9fd5ceb</a>)</li>
<li><strong>webmcp:</strong> add hook for tool invocation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14835 ">#14835</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/cf8169d5dee0bbff06118c211969eb94849f6bbd ">cf8169d</a>)</li>
<li><strong>webmcp:</strong> add hook for tool response (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14841 ">#14841</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/6fb05bc9e45fb2735a1c44b59ad868af2fb1ee9b ">6fb05bc</a>)</li>
<li><strong>webmcp:</strong> add initial API to inspect tool
registrations (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14814 ">#14814</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/655c996fed21d4ac7f5df841aef0c6b246ba2e9d ">655c996</a>)</li>
<li><strong>webmcp:</strong> add WebMCPTool execute support (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14851 ">#14851</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/8f95117960af969ee31595406f985c924eb67bf1 ">8f95117</a>)</li>
<li><strong>webmcp:</strong> expose WebMCPToolCall in
WebMCPToolCallResult (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14848 ">#14848</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/242ac0b2d364e9463f2b0e37f26d8bd0cfdf4d3e ">242ac0b</a>)</li>
<li><strong>webmcp:</strong> Switch from WebMCPInvocationStatus Success
to Completed (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14859 ">#14859</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/375e636beedaa5fef53d5f198fa70229d47155b5 ">375e636</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 24.40.0 to 24.41.0</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>add missing onRelease to Mutex and add tests (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14818 ">#14818</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/bf1e9722eef723c80250119d81fd9d9e0596c074 ">bf1e972</a>)</li>
<li>make <code>Target.asPage</code> return the same Page instance (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14862 ">#14862</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/e484a918c432859efbf57a74b4957097b13f8575 ">e484a91</a>)</li>
<li>remove RenderDocument from disabled Chrome features (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14745 ">#14745</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/a48eba24dcb2663da543bdf1f4597a2c1a56f0ff ">a48eba2</a>)</li>
<li>roll to Chrome 147.0.7727.50 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14819 ">#14819</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/2be30023994ee2e7ebb15e43dc0e2804256f8ca2 ">2be3002</a>)</li>
<li>roll to Chrome 147.0.7727.56 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14842 ">#14842</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/fdb3c64f8bfcff367eab862c0309f9c4bf6d6f20 ">fdb3c64</a>)</li>
<li>roll to Firefox 149.0.2 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14838 ">#14838</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/55359a3d7383c03a9d9de7ff8e24b613655694e8 ">55359a3</a>)</li>
<li>without azimuthAngle the altitudeAngle should no be specified (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14781 ">#14781</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/6f9d9752207d55be0e3b0d10ba9a416a81af4694 ">6f9d975</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>update extension and realm docs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14867 ">#14867</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/080379bf24c6bd021d664bcf993457542cf76dcc ">080379b</a>)</li>
<li><strong>webmcp:</strong> Add JS example to WebMCP class (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14852 ">#14852</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/c514dba3316e742f2d2b428fd72a49890c0a2255 ">c514dba</a>)</li>
<li><strong>webmcp:</strong> Add missing documentation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14849 ">#14849</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/76b08d20305283b9a2a2ccd5cf9c2f5bad63e337 ">76b08d2</a>)</li>
<li><strong>webmcp:</strong> tune tags and descriptions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14844 ">#14844</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/578295815ca559790626b8aeeddeea9f9cef67be ">5782958</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/2d05dfcfa321f7e6289e4658cd6f0cced3d62fe2 "><code>2d05dfc</code></a>
fix: bump node to 24 to avoid publishing bugs with npm (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14868 ">#14868</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/20402bc0f9a7daeee2afc6a9859a55ff9bf0e391 "><code>20402bc</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14866 ">#14866</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/080379bf24c6bd021d664bcf993457542cf76dcc "><code>080379b</code></a>
docs: update extension and realm docs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14867 ">#14867</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/1f9dc746565c818d59fff9e84c3c795ddd2ec32d "><code>1f9dc74</code></a>
chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /website
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14865 ">#14865</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/4655500ac52c67c782a956ea66270dfcf5a38d91 "><code>4655500</code></a>
chore(deps-dev): bump the dev-dependencies group with 8 updates (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14855 ">#14855</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/d5029415e2c3d83ed340cf29733662e9f0b58434 "><code>d502941</code></a>
test: fix extension test flakiness (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14864 ">#14864</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/e484a918c432859efbf57a74b4957097b13f8575 "><code>e484a91</code></a>
fix: make <code>Target.asPage</code> return the same Page instance (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14862 ">#14862</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/c14f4ae7ee65fd95a4a1f9d722e73f67c37da44b "><code>c14f4ae</code></a>
feat: adds extension realms api (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14824 ">#14824</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/5097b97d07eb0e3c68d99fce80efe899084a313d "><code>5097b97</code></a>
test: fix flaky extension test (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14853 ">#14853</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/8f95117960af969ee31595406f985c924eb67bf1 "><code>8f95117</code></a>
feat(webmcp): add WebMCPTool execute support (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14851 ">#14851</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.40.0...puppeteer-v24.41.0 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org >
2026-04-16 11:56:30 +00:00
yulunz
4bb511ef13
feat: add tool call params logging ( #1863 )
...
This will enable logging for tool params. The server side changes should
all be ready now.
parent pr: #1862
2026-04-16 11:56:29 +00:00
yulunz
5305ecff34
chore: turn arg name into snake case in sanitization ( #1862 )
...
This fixes the casing of the tool call params. We don't need any server
side fix since they are already converted to snake case in the proto
definition. This is needed nevertheless since the sanitizeParams()
function will be called when we log the params (see the next PR: #1863
1863).
2026-04-16 11:56:29 +00:00
Alex Rudenko
74fd545e5e
feat: support DevTools header redactions as an option ( #1848 )
...
This PR adds a CLI flag to enable redacting network headers in the same
way they are redacted in DevTools. Note that sometimes it might prevent
the agent from properly analysing network issues. Pass
`--redact-headers=false` to revert to the previous behavior.
2026-04-16 11:56:29 +00:00
Wolfgang Beyer
93769cb2a7
update tests
2026-04-16 11:48:01 +00:00
Wolfgang Beyer
fed35b950a
in-page tool output: handle DOM elements and limit depth
2026-04-09 14:39:09 +00:00
dependabot[bot]
1b857c9865
chore(deps-dev): bump chrome-devtools-frontend from 1.0.1608868 to 1.0.1611390 in the bundled-devtools group ( #1837 )
...
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend ).
Updates `chrome-devtools-frontend` from 1.0.1608868 to 1.0.1611390
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/33ce23b14afcc640b4e15fdf16c535e2cb7b5228 "><code>33ce23b</code></a>
[settings_ui] Migrate createControlForSetting to Lit</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/cc6b3a07a9ddcaea8970fd206a3d0b5a62357acf "><code>cc6b3a0</code></a>
[console] Fix deleting wrong pin expression</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8143bff1c7c72e08468efbad0be70abf6d8719aa "><code>8143bff</code></a>
Roll browser-protocol and CfT</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/843aa648d193a2bdaf7e2581bd782edda4c09691 "><code>843aa64</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/59ae199e9f8ebc5fb5fa00e65ec297bbff7c8559 "><code>59ae199</code></a>
[Lighthouse] Roll Lighthouse 13.1.0</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/3bcb73aaf7ff065c59be62bdd9ff0561447306c6 "><code>3bcb73a</code></a>
Bring back IgnoreManager</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/fe984400d55634ca97d7eb418e91d8d2e7ae2810 "><code>fe98440</code></a>
Role should be 'user' for content specified by the client</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/5e628fde96f28faf8da4af994e96e9cefb09f9ac "><code>5e628fd</code></a>
Align thinking pill with greenlines when walkthrough is closed</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/155667f4979a587ae3597ae98082fed8551e1cb9 "><code>155667f</code></a>
Revert "Fix flakiness in LoggingDriver by ensuring all processing
is coordina...</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/bfee745bf1baa2cb374fc926d2103fbc5e4ce06d "><code>bfee745</code></a>
[settings_ui] Migrate 'createSettingSelect' to Lit</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1608868...v1.0.1611390 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org >
2026-04-09 08:49:51 +00:00
Mathias Bynens
e01e33355e
feat: add update notification to both binaries ( #1783 )
...
Both `chrome-devtools` and `chrome-devtools-mcp` now log a notification
when a newer version is detected to be available.
This detection is implemented as follows:
1. Read the latest version from a local 24-hour cache
(`~/.cache/chrome-devtools-mcp/latest.json`).
2. If the cache is stale or missing, spawn a detached background process
to fetch the latest version from the npm registry and update the cache
file.
2026-04-02 09:38:12 +00:00
Wolfgang Beyer
627ed68a28
chore: DOM elements as inputs for in-page tools ( #1791 )
...
DOM elements are non-serializable and therefore cannot be directly sent
between the inspected page and the MCP server. JSONSchema also has no
native type for DOM elements.
If an in-page tool expects a DOM element as an input parameter, it
should specify this in its input schema by adding `'x-mcp-type':
'HTMLElement'` to the object it expects to be a DOM element.
The MCP server internally refers to DOM elements by a UID (UIDs are
assigned when generating a page snapshot which is based on the page's
accessibility tree).
This change provides the mapping between DOM element and UID in both
directions:
1) The tool's input schema is rewritten internally, adding a required
UID attribute to objects with `'x-mcp-type': 'HTMLElement'`. This allows
the MCP server to call the in-page tool with UIDs where the tool expects
DOM elements.
2) In the page context, the UIDs are replaced with the corresponding DOM
elements, before the actual in-page tool is called. This means that the
in-page tool receives DOM elements as parameters where it expects them.
2026-04-02 09:34:26 +00:00
Nikolay Vitkov
d8a4398fb8
test: remove waiting for DevTools page ( #1793 )
2026-04-02 05:20:40 +00:00
yulunz
ed9e4dd17d
chore: make tool_call_metrics.json append only against new changes. ( #1778 )
...
With this change new tools are added to the very back of the json file.
Any removed tools will receive a isDeprecated flag in the existing
entry. And the same with tool arguments.
2026-04-01 22:27:53 +00:00
yulunz
bc8ef4bc16
chore: add a script to generate tool_call_metrics.json for telemetry. ( #1257 )
...
This adds a script that generates a json file that summarizes all tool
calls and arguments for each.
- The arguments run through the blocklist filtering so arguments
containing high entropy ids are filtered out (e.g. "uid", "msgid" etc).
- It uses existing functions from clearcut logger module to transform
the arg name and value (i.e. take the length of the string, take the
size of the array, and rename the string to be "string_length", and
array "array_count" etc).
- These functions from the clearcut logger module will be later used to
sanitize the params as we start to log them.
This doesn't include the append only / deprecation logic just yet (i.e.
it's doesn't handle the case when new tools are added / removed, or
arguments of the existing tools are modified). This will be added in
following PRs.
The parent PR is #1250 .
2026-04-01 18:51:35 +00:00
Wolfgang Beyer
7912ca4ed4
chore: Make in-page tools work with pageId routing ( #1781 )
...
This moves the stored `ToolGroup` from `McpContext` to `McpPage`, where
per-page state should be stored in order for pageId-based routing to
work correctly.
When appending the list of in-page tools to a response, the list now
corresponds to the response's `McpPage`, and only falls back to the
selected `McpPage` for tools which are not page-specific.
---------
Co-authored-by: browser-automation-bot <133232582+browser-automation-bot@users.noreply.github.com >
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org >
Co-authored-by: Tolgahan Demirbaş <49946947+bcfmtolgahan@users.noreply.github.com >
2026-04-01 12:52:27 +00:00
Tolgahan Demirbaş
c7c8f50f80
refactor: move waitForEventsAfterAction to McpPage ( #1780 )
...
Splits out from #1244 per review feedback.
'waitForEventsAfterAction' previously lived in 'McpContext' and always
used the selected page's CPU/network throttling settings. With pageId
routing, a tool can target a different page than the selected one,
meaning wrong throttling multipliers were applied.
Moving the method to 'McpPage' fixes this: each tool now calls
'page.waitForEventsAfterAction(...)' and gets the correct page's
emulation settings.
'getNetworkMultiplierFromString' is extracted to 'WaitForHelper.ts' to
avoid a circular import (McpContext → McpPage already exists).
Unblocks #1777 .
2026-04-01 12:02:34 +00:00
Alex Rudenko
47a50ca84c
chore: split cli tests ( #1779 )
...
splits cli test that might reach the test file timeout more often.
2026-04-01 07:38:43 +00:00
pidofme
73e1e24b26
fix(cli): avoid defaulting to isolated when userDataDir is provided ( #1258 )
...
## Summary
Fix `chrome-devtools start` so it no longer implicitly enables
`isolated` when `--userDataDir` is provided.
Previously, the CLI wrapper always defaulted `isolated` to `true` for
`start`, which caused `userDataDir` and `isolated` to conflict even when
the user only specified `--userDataDir`. This made it impossible to
start the CLI daemon against a persistent browser profile.
## Changes
- Update `chrome-devtools start` default handling in
`src/bin/chrome-devtools.ts`
- only default `isolated=true` when `userDataDir` is not set
- Clarify the `isolated` CLI description to document the conditional
default
- Update `docs/cli.md` to reflect that:
- `headless` is enabled by default
- `isolated` is enabled by default unless `--userDataDir` is provided
- Fix a small error message typo
## Why
This matches the intended semantics of the flags:
- `--isolated` means use a temporary user data dir
- `--userDataDir` means use a persistent, explicit user data dir
If the user passes `--userDataDir`, the CLI should not also implicitly
enable `isolated`.
## Testing
- Ran:
- `npm test -- tests/cli.test.ts`
- `npm test -- tests/e2e/chrome-devtools.test.ts`
Added an e2e regression test in `tests/e2e/chrome-devtools.test.ts` to
verify that:
- `chrome-devtools start --userDataDir <temp dir>` succeeds
- the CLI no longer fails with `Arguments userDataDir and isolated are
mutually exclusive`
- the daemon starts successfully when `userDataDir` is provided
2026-04-01 05:51:40 +00:00
Wolfgang Beyer
4637ab9389
chore: Add execute_in_page_tool tool ( #1766 )
...
This allows the MCP server to call the in-page tools provided by the
inspected page.
Handling of (non-serializable) DOM elements as tool parameters or tool
output will be added in follow-ups.
2026-03-31 19:01:47 +00:00
yulunz
44e511f6f6
chore: add function to sanitize params for tool calls ( #1250 )
...
This adds functions to sanitize the tool call parameters. They are not
called as of now since we don't have server side changes landed yet to
support these.
2026-03-31 17:56:43 +00:00
Alex Rudenko
604c41167b
chore(deps): bump lighthouse ( #1776 )
2026-03-31 12:17:44 +00:00
Wolfgang Beyer
f7ae9e86ec
feat: Add list of in-page tools to responses for navigate_page, list_pages, select_page, close_page, new_page ( #1762 )
...
There is no mechanism which would allow a page to push an updated list
of in-page tools to the MCP server. The next best thing I can think of
is to append an updated list of in-page tools to the response for each
tool call related to page navigation (navigate_page, list_pages,
select_page, close_page, new_page).
2026-03-30 14:02:45 +00:00
Wolfgang Beyer
cea963be68
feat: Add a new tool for listing in-page tools (gated behind a command line flag) ( #1239 )
...
This adds a `list_in_page_tools` MCP tool. When called, it dispatches a
`devtoolstooldiscovery` event on the active page. The page announces its
exposing tools by calling the event's `respondWith` method, which causes
the exposed tools to be stashed on the page's `window` object. This list
of in-page tools is then appended to the `list_in_page_tools` response.
Calling the exposed in-page tools from the MCP server will be handled in
a follow-up.
2026-03-30 09:51:35 +00:00
atian8179
2664455302
fix: list_pages should work after selected page is closed ( #1145 )
...
## Problem
After closing the currently selected page, calling `list_pages` throws
an error:
```
The selected page has been closed. Call list_pages to see open pages.
```
This creates a deadlock: the error message tells users to call
`list_pages`, but `list_pages` itself throws the same error.
## Root Cause
`list_pages` is defined with `definePageTool`, which marks it as
`pageScoped: true`. The handler dispatch in `index.ts` (line ~186) calls
`context.getSelectedMcpPage()` for all page-scoped tools **before**
invoking the handler. When the selected page is closed,
`getSelectedPptrPage()` throws.
However, `list_pages` doesn't actually use the `page` parameter — its
handler only calls `response.setIncludePages(true)`.
## Fix
Change `list_pages` from `definePageTool` to `defineTool`. This bypasses
the page-scoped check while preserving all existing behavior since the
handler never used the page reference.
## Testing
Reproduced the issue following the steps in #1138 :
1. Call `list_pages` → returns page list ✅
2. Close the selected page
3. Call `list_pages` → now returns updated page list instead of throwing
✅
Fixes #1138
---------
Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org >
2026-03-30 08:42:39 +00:00
Nikolay Vitkov
e8e33d4172
chore: fix some typos ( #1240 )
2026-03-26 13:56:59 +00:00
yulunz
b2b5e3fef6
chore: handling more client name enums ( #1228 )
...
The openclaw client name is defined at
https://github.com/openclaw/openclaw/blob/ea476de1e488979a3e9e5bf32e4d4f20e563144f/src/browser/chrome-mcp.ts#L234C14-L234C29
2026-03-24 18:18:14 +00:00
yulunz
9a47b657d7
feat: record client name in telemetry. ( #1208 )
...
The changes in the PR intercepts the name of the MCP client right after
server initialization, coverts it into one of the existing enum values,
and append it with the telemetry request.
Note that the client name is unset if there is no client connected yet.
This means the server_start event won't have a client name.
Tested with gemini-cli.
---------
Co-authored-by: Yulun Zeng <yulunz@chromium.org >
2026-03-21 00:09:14 +00:00
Nikolay Vitkov
e56d79393c
chore: don't re-export internals ( #1211 )
2026-03-20 13:15:06 +00:00
Nikolay Vitkov
53483bc637
perf: use CDP to find open DevTools pages (reland) ( #1210 )
...
This should reduce the flakiness and issue with finding open DevTools
tabs for the corresponding pages.
Currently we do multiple loops over all the targets, so this should have
a nice performance improvement when multiple pages are opened.
With a fallback for older versions.
2026-03-20 11:50:27 +00:00
Flo
1e6456ce22
perf(memory): release old navigation request in NetworkCollector ( #1200 )
...
Issue #1192
## Problem
In `--autoConnect` mode, `chrome-devtools-mcp` experiences a severe
memory leak (~13 MB/min) when Chrome is actively used. This eventually
leads to OOM crashes or kernel panics.
The root cause is in `src/PageCollector.ts`:
1. `NetworkCollector` overrides `splitAfterNavigation` but forgets to
call `navigations.splice(this.#maxNavigationSaved)`, causing the array
of navigations to grow infinitely.
2. Even within a single navigation (e.g., in long-lived SPA
applications), the `navigations[0]` array grows infinitely because there
is no limit on the number of items collected per navigation. Since
`HTTPRequest` objects are heavy, this quickly exhausts memory.
## Solution
1. Changed `#maxNavigationSaved` to `protected maxNavigationSaved` so
subclasses can access it.
2. Added `navigations.splice(this.maxNavigationSaved)` to
`NetworkCollector.splitAfterNavigation` to ensure old navigations are
properly discarded.
3. Introduced `protected maxItemsPerNavigation = 5000` to limit the
number of items stored per navigation. When the limit is reached, the
oldest item is removed (`shift()`), preventing unbounded memory growth
in SPAs.
Tested locally by running `npm run build` and verifying the fix.
---------
Co-authored-by: Wolfgang Beyer <woolfi.b@gmail.com >
2026-03-20 11:02:10 +00:00
dependabot[bot]
d2cc01e16d
chore(deps-dev): bump chrome-devtools-frontend from 1.0.1596260 to 1.0.1598808 in the bundled-devtools group ( #1179 )
...
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend ).
Updates `chrome-devtools-frontend` from 1.0.1596260 to 1.0.1598808
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/c98dd4a717026307553c4abf9a226c5c980b29e3 "><code>c98dd4a</code></a>
Use artifact folder when non is provided</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8a38b2b1d9769f6f4d793887f5b0d40b4be43c90 "><code>8a38b2b</code></a>
Roll puppeteer-core</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/9b7af4bc01415528a6d2faf9cae52443f7f634d9 "><code>9b7af4b</code></a>
AI: add ConversationSummaryAgent</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/d85131af6a77c8ada5f0b3fd19cebedddfffe0ec "><code>d85131a</code></a>
Introduce AbortController to Widget update cycle.</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/2086971d3a959ba7de0f5b2d4f9fe27eacf02d95 "><code>2086971</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/915059c2ce26f572ea07d1c9534e528f983e2550 "><code>915059c</code></a>
Roll browser-protocol and CfT</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/0e6b4cc51b4f5fd381bd66554ea3c59c98a8dc03 "><code>0e6b4cc</code></a>
Collapse non-contributing style sections by default</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/114c64579022140303e372b489ad7dfc3e483d5a "><code>114c645</code></a>
Revert "Prevent resource exhaustion when import
recording"</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/dadf98e7f75ad6486cd0e0d7f1d04cbe24bafae4 "><code>dadf98e</code></a>
[sdk] Use MockCDPConnection in CPUThrottlingManager.test.ts</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/60dc180f9c65aa4edb4b387ee4b0b21506e57ecc "><code>60dc180</code></a>
Use element-mode <code>widget</code> directive in rest of the code</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1596260...v1.0.1598808 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wolfgang Beyer <wolfi@chromium.org >
2026-03-19 14:11:28 +00:00
Nicholas Roscino
8c2a7fc21e
fix: mark categoryExtensions flag mutually exclusive with autoConnect ( #1202 )
...
Fixes #1072
2026-03-18 16:57:30 +00:00
Wolfgang Beyer
b14d03a655
revert: Reverts "perf: use CDP to find open DevTools pages." ( #1201 )
...
Reverts ChromeDevTools/chrome-devtools-mcp#1150
Quick revert because this change has broken debugging of Electron apps.
2026-03-18 10:46:24 +00:00
Nikolay Vitkov
94de19cdcd
perf: use CDP to find open DevTools pages. ( #1150 )
...
This should reduce the flakiness and issue with finding open DevTools
tabs for the corresponding pages.
Currently we do multiple loops over all the targets, so this should have
a nice performance improvement when multiple pages are opened.
2026-03-11 13:30:30 +00:00
Alex Rudenko
0c0a538921
test: fix flaky test ( #1132 )
2026-03-06 10:01:36 +00:00
Alex Rudenko
c2d8009ff7
refactor: move main files ( #1120 )
...
- `chrome-devtools-mcp.js` is the `npx chrome-devtools-mcp`
- `chrome-devtools.js` is the new CLI
- `-cli-options.js` is the corresponding options
- all these files are in the bin folder to indicate they are executable
2026-03-05 21:51:37 +00:00
Nicholas Roscino
2a6ac709ea
chore: extension pages list ( #1065 )
...
This PR introduces extension pages in the listPages tool under the flag
--category-extension.
2026-03-05 20:57:07 +00:00
Alex Rudenko
8a3a1b7c19
test: improve cli test ( #1121 )
...
Use async spawn, and make the logs visible in CI.
2026-03-05 17:08:23 +00:00
Alex Rudenko
4e4038beff
chore: configure cli args ( #1115 )
...
This PR configures CLI args for the start command. It removes arguments
that do not make sense.
2026-03-05 12:48:42 +00:00
Alex Rudenko
dc53fa331d
chore: validate start args ( #1113 )
...
The `start` command accepts the MCP server CLI options. This PR adds
yargs validation to the start command and re-uses the same yargs
definitions.
2026-03-05 11:27:26 +01:00
Alex Rudenko
d95e9ba89d
chore: add detailed daemon status ( #1110 )
...
adds additional details about running daemon.
2026-03-05 08:41:10 +00:00
Alex Rudenko
88da3b83da
chore: fix bundling for the CLI ( #1111 )
...
extracts non-launch related fixes from
https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/1100
2026-03-05 08:26:37 +00:00
Alex Rudenko
bad5a16f95
chore: handle images in the CLI ( #1107 )
...
- save base64 data as an image to a tmp file.
- change `--format` to `--output-format` to avoid conflicts.
2026-03-05 07:49:13 +00:00
Alex Rudenko
a02a5671f9
chore: change text format to md in CLI ( #1102 )
...
as it is closer to reality.
2026-03-04 18:08:50 +00:00
dependabot[bot]
7c9ff36178
chore(deps-dev): bump chrome-devtools-frontend from 1.0.1591204 to 1.0.1592362 in the bundled-devtools group ( #1098 )
...
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend ).
Updates `chrome-devtools-frontend` from 1.0.1591204 to 1.0.1592362
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/22b657d21f73350906f5029706d576d18817f011 "><code>22b657d</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/0d56199f472ca4a345cc7e2d364b241c7ec01a66 "><code>0d56199</code></a>
Host experiment for JPEG XL support</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a2886d7263db7cd56fcc024baf121ce2e4bacf51 "><code>a2886d7</code></a>
Update Context Selection Agent preamble</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/eb79da005f6e25c84235e6f077d25a12d8533a57 "><code>eb79da0</code></a>
Remove hover effect for title help keyboard accessibility in metric
card</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/9a6eb09d15986ffb176a95dccc3e1ac901bf14dd "><code>9a6eb09</code></a>
Linkify codespan to satisfy LLM</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/952a0ddc8d00a46578ae0aefa77d03123b80bec3 "><code>952a0dd</code></a>
[GreenDev] Add descriptions to investigation steps</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/ddd57a4b0abedf94bbbcfe18aff6259716e5f011 "><code>ddd57a4</code></a>
[GreenDev] Let agent execute JS in console and apply a fix to
sources</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a22023592a98c7269216b1d23e12d6e2f77ad3f9 "><code>a220235</code></a>
DevTools: Support screen.orientation.lock() in device emulation</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/50b6db7a82db093ae58e6cf7e0b84ac6ad43a063 "><code>50b6db7</code></a>
Linkify links in the markdown response from LLM</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a8f9701a9117e9e735b1bc64f35491f8f3389722 "><code>a8f9701</code></a>
Report the expected test name</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1591204...v1.0.1592362 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org >
2026-03-04 16:13:27 +00:00
dependabot[bot]
a073c0c54b
chore(deps-dev): bump puppeteer from 24.37.5 to 24.38.0 in the bundled group ( #1099 )
...
Bumps the bundled group with 1 update:
[puppeteer](https://github.com/puppeteer/puppeteer ).
Updates `puppeteer` from 24.37.5 to 24.38.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases ">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v24.38.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v24.37.5...puppeteer-core-v24.38.0 ">24.38.0</a>
(2026-03-04)</h2>
<h3>🎉 Features</h3>
<ul>
<li>roll to Chrome 146.0.7680.31 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14729 ">#14729</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/627eb5e6572f5248286ab09d74c204e2399632e8 ">627eb5e</a>)</li>
<li>roll to Firefox 148.0 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14728 ">#14728</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/09b655a1a4b2ee389f4a63f701a347566a5b9d88 ">09b655a</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>consider browsingContext.navigationCommitted to dispose an existing
navigation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14724 ">#14724</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b4e92c637c503710895c842f391793018c4f35b5 ">b4e92c6</a>)</li>
<li>disable PartitionAllocSchedulerLoopQuarantineTaskControlledPurge (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14744 ">#14744</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/e6c7425d3f459adfbf5c1dd0b230da33fa9eb7c3 ">e6c7425</a>)</li>
<li>roll to Chrome 145.0.7632.117 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14719 ">#14719</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/1d407e1e69ee0f307f8819152a980fa0a24835ff ">1d407e1</a>)</li>
</ul>
<h2>puppeteer: v24.38.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.5...puppeteer-v24.38.0 ">24.38.0</a>
(2026-03-04)</h2>
<h3>🎉 Features</h3>
<ul>
<li>roll to Chrome 146.0.7680.31 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14729 ">#14729</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/627eb5e6572f5248286ab09d74c204e2399632e8 ">627eb5e</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 24.37.5 to 24.38.0</li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md ">puppeteer's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.5...puppeteer-v24.38.0 ">24.38.0</a>
(2026-03-04)</h2>
<h3>🎉 Features</h3>
<ul>
<li>roll to Chrome 146.0.7680.31 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14729 ">#14729</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/627eb5e6572f5248286ab09d74c204e2399632e8 ">627eb5e</a>)</li>
<li>roll to Firefox 148.0 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14728 ">#14728</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/09b655a1a4b2ee389f4a63f701a347566a5b9d88 ">09b655a</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 24.37.5 to 24.38.0</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>consider browsingContext.navigationCommitted to dispose an existing
navigation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14724 ">#14724</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b4e92c637c503710895c842f391793018c4f35b5 ">b4e92c6</a>)</li>
<li>disable PartitionAllocSchedulerLoopQuarantineTaskControlledPurge (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14744 ">#14744</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/e6c7425d3f459adfbf5c1dd0b230da33fa9eb7c3 ">e6c7425</a>)</li>
<li>roll to Chrome 145.0.7632.117 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14719 ">#14719</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/1d407e1e69ee0f307f8819152a980fa0a24835ff ">1d407e1</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/d3356fac46478974c5b88ba2b26b26954cb741ff "><code>d3356fa</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14720 ">#14720</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/e6c7425d3f459adfbf5c1dd0b230da33fa9eb7c3 "><code>e6c7425</code></a>
fix: disable PartitionAllocSchedulerLoopQuarantineTaskControlledPurge
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14744 ">#14744</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/e24f43290280df6398e992842490631aafd9f287 "><code>e24f432</code></a>
chore(deps-dev): bump the dev-dependencies group across 1 directory with
7 up...</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/b12fca9bd9bedb9c90863c52e7359cfbf281a81e "><code>b12fca9</code></a>
test: update tests and add diagnostics (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14741 ">#14741</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/627eb5e6572f5248286ab09d74c204e2399632e8 "><code>627eb5e</code></a>
feat: roll to Chrome 146.0.7680.31 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14729 ">#14729</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/e0e3e89aa4d7e1825d411a4729a76a0852824c83 "><code>e0e3e89</code></a>
chore: enable blank issues in issue template configuration (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14739 ">#14739</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/ba19944981f4e601127a5b7b54feefd1df972cbe "><code>ba19944</code></a>
chore(deps-dev): bump rollup from 4.22.4 to 4.59.0 in
/examples/puppeteer-in-...</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/b4e92c637c503710895c842f391793018c4f35b5 "><code>b4e92c6</code></a>
fix: consider browsingContext.navigationCommitted to dispose an existing
navi...</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/57b40c03e11ec5defebfa30cb9fcea5d6f6ae572 "><code>57b40c0</code></a>
chore(deps): bump typed-query-selector from 2.12.0 to 2.12.1 in the
dependenc...</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/eca8ca4b90c9e16a86152a62ed8839119c4386a3 "><code>eca8ca4</code></a>
chore(deps): bump the all group in /website with 2 updates (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14732 ">#14732</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.5...puppeteer-v24.38.0 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org >
2026-03-04 15:58:19 +00:00
Alex Rudenko
cb0079efbb
refactor: simplify the response texts ( #1095 )
...
- removed redundant headers in Markdown
- updates more tests to use snapshots
2026-03-04 07:23:37 +00:00
Alex Rudenko
109bf43e4c
chore: fix arg forwarding in CLI ( #1084 )
...
Drive-by: e2e tests for major scenarios.
Drive-by: make stopDaemon more robust.
2026-03-03 17:47:01 +00:00
Nicholas Roscino
8dbf862549
test: installing chrome through test script ( #1085 )
...
Fixes local test failing for triggerAction on extensions.
2026-03-03 16:06:18 +00:00