npm / puppeteer-core
puppeteer-core
What changed in puppeteer-core 25, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-20.
1 security9 new APIs and options18 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initpuppeteer-core 2528 changes
Security 1
Blocklists and allowlists are now enforced for service worker requests.
New APIs and options 9
Adds an API for setting allow/block lists.
Passing null removes the geolocation override.
Adds page.tabInfo().
Adds handshakeTimeout to wsOptions.
Request interception and extra headers now accept Headers instances.
Adds methods to access the page, frame, and worker associated with a console message.
Adds asFetchRequest to HTTPRequest.
Adds asFetchResponse to HTTPResponse.
The WebSocket max payload can now be configured.
Fixes and other changes 18
Handles rejections from continueWithAuth.
Applies dynamic network restrictions to service workers that are already running.
Avoids emitting a duplicate request when restarting Fetch.requestPaused.
Handles stop() rejection when page.record() fails to start.
Stops in-page pollers created after WaitTask termination.
Puppeteer rolls to Firefox 158.0.
Screencast frame sizes are rounded to whole pixels.
Closes the browser process when the BiDi close command fails.
Disconnects the browser when the close callback fails.
Waits for browser process termination and runs exit hooks after killing the process.
Preserves path prefixes in browserURL when connecting.
Rolls the bundled Chrome version forward.
Clearing custom query handlers also removes their injected scripts.
Supports additional media features that Chrome honors.
Removes the temporary profile when Firefox rejects pipes.
Rolls to Firefox 157.0.1.
Uses the shadow host when checking a text node's visibility in a shadow root.
Worker evaluation and close now settle when the script fails to load.