Behavior changes
getComputedStyleresults are now read-only.- The
"en"language fallback was removed. Language now comes from--locale. - Redirects that switch to GET now drop body headers.
WebDriver
- Classic HTTP WebDriver, built out into a usable driver
- Session management;
navigate; back/forward;execute - Element endpoints; input (click, clear, sendKeys); cookie and viewport endpoints
- Higher default/max HTTP limits
CORS
- CORS is now enforced by default. Cross-origin fetch/XHR requests that fail a CORS check are blocked. Turn it off with
--disable-features cors. The old--experimental-features corsflag is gone. - CORS store with an entry limit (
--cors-store-entry-limit, default 1000) - Fetch referrer policy + CorsGate referrer checking
Sec-Fetch-SiteandSec-Fetch-Moderequest headers- Limit redirects that carry credentials
New Web APIs
WebAssembly.compileStreamingandinstantiateStreaming- Sanitizer API (initial)
TextEncoder.encodeIntoelement.requestFullscreen(mostly a stub)inertproperty;iframesandboxsetterimgsrcsetsupport; report natural dimensions for fetched imagesnew Option()and the legacy constructor APIDOMTokenListsetters; more accuratewindow.isSecureContext- Experimental
ServiceWorker(behind--experimental-features serviceworker) withCache/CacheStorage
Web API behavior / fixes
<template>content handling- Custom element callbacks may move the element during parse
request.clone()clones headers; correct fetch/response handling of null bodies- XHR/fetch report the status reason from the server;
TypeErroron XHRsend(SharedArrayBuffer) input.select()no longer throws for email/number;element.focus()only on focusable elements- Correct error on a wrong method; guard headers
- Validate the XML declaration
- Avoid spurious mutations for unchanged CSS declarations
CSS / rendering
- Split the style cascade into property groups; honor
!importanton tracked stylesheet properties - Resolve width/height from stylesheet rules; give the document a height and clamp viewport scroll to it
- Measure wrapped text for an element's content height
- Resolve scroll containers through the style cascade; unify wheel dispatch; clamp scroll offsets and latch a wheel to one container
CDP (Chrome DevTools Protocol)
- Optimize
Network.getResponseBody DOM.getFrameOwnerreturns the owning<iframe>; nodes carry aframeId- Answer inspector commands on the session that sent them; echo the
sessionIdin browser-level replies - Notify target closure when disposing browser contexts; report the initial
about:blankas loaded window.devicePixelRatiofrom the viewport scale; char text insertion- Move a kept isolated-world context onto the navigated origin
HTTP / Networking
- Improve caching; add
x-frame-optionssupport - Keep connections healthy: don't re-use connections likely in a bad state
- Lowercase response headers; clamp the response status range and report the server's reason phrase
- Add headers to the sync-request path
- Accept Netscape cookie format in
--cookie; report invalid same-site over CDP - Generate an appropriate error on a bot challenge
Agent / tools
- Add OpenRouter and OrcaRouter providers;
lightpanda run -reads a script from stdin - Report the HTTP status of a navigation; wait for networkidle after an action-triggered navigation
findElementmatches names by/regex/- MCP carries the navigation outcome as
structuredContent - REPL output fixes and simpler command dispatch
CLI / ops
- Report usage errors once, accept
-h, show tips only on a terminal; scale the "did you mean" distance with input length - Respect
NO_COLORand disable colors when stderr is not a tty - Per-page context logs; many warn/err logs downgraded to debug
- Log the stalled page and JS stack on watchdog termination
- Record Linux fatal signals without blocking on stderr
Dependencies
- V8 updated to 15.5.35.13
- BoringSSL, nghttp2 1.70.0, PCRE2 10.49, refreshed public suffix list
Performance / memory
- Replace the slab allocator; set
M_MMAP_THRESHOLDto 128K on Linux - Convert recursive walks to iterative: XPath, SemanticTree/AXNode, markdown, screenshot, dump
- Share one PCRE2 wrapper across the regex paths
- Faster V8 background-job scheduling and task wakeup
- Track and free abandoned html5ever parsers; drop the allocation for the default sanitizer
Stability fixes
- Crash fixes: node cycles when the parser reparents moved nodes, a scrolling stack overflow, a double-free in IndexedDB, a rare import crash
- Stop load events on a document superseded by navigation
- V8 always detaches the global