New Web APIs
Scheduler(window and worker)- Full SVG DOM: geometry, structural elements, text DOM, resource elements, live collections, live scalar values
Element/ShadowRootgetHTMLRequest#formDataandResponse#formDataURL.isSameOriginiframesrcdocsupportElement.webkitMatchesSelector(alias ofmatches)
Web API behavior / fixes
- Custom element creation and reactions now pierce the Shadow DOM
- Report custom-element errors via
window.reportError - Iterators given to types with an indexed property
- Track node relocation across shadow roots; better events from a
ShadowRoot getComputedStyleimprovements with pseudo-elements- Console conformance improvements
- Forms: include
optgroupchildren in a select's list of options - Fix
scriptsetAttributesrc; fix script load/error events - Increase max timer count
- Collection bug fixes; keep ascending live-collection reads linear
- Fix potential UAF when an option's value is set programmatically
Rendering / CSS
- CSS
width/heightare now children-content aware - Fall back to
contentWidthwhenclientWidthis not explicit
HTTP / Networking
- Enforce
User-AgentandSec-Ch-Uaheader restrictions; improve header overwrite/enforcement - Rework how
HttpClientheaders work - Start of a correct referrer policy; recalculate
Refereron each redirect - Single-flight request coalescing
fetchdefaults--wait-untiltoload- Redirect even on a missing
close_notify - Buffer a closed
ReadableStreambody for afetchPOST - Rework
Connection.upgradewithheader_parser
Cache
- SQLite cache backend
- HTTP cache entry limit; cache maintenance moved to startup and
browser.deinit
CDP (Chrome DevTools Protocol)
Originand additionalHostheader validation for CDP connections- Fall back to loopback when the
/json/versionbind host is a wildcard - Add request post data; send request-information notifications on redirect
- Add
/json/protocolendpoint - Split
active_connsfromactive_threads - Avoid creating duplicate isolated worlds
- Fix Playwright redirect routing chains and auxiliary CDP session interception
- Mask URL fields from crash reports; remove
Target.sendMessageToTargetsession_idassertion
Agent / tools
- Support subscription auth via Codex
- Add Brave search +
/searchEnginemetacommand - Treat
backendNodeId0 as omitted; add recovery hints to errors; surface unknown tool names in-band - Reduce tool output cap to 64KB (except for
extract) goto: optionalwaitUntil+ DOMContentLoaded-gated selector waits
Memory efficiency
- Switch
Node,Element, andEventTarget_typefields to a bare tag - Remove the
_protofield from mostNodetypes - Optimize the node child list; rework
Stringto bealign(8) - Improve
ArenaPoolusage; move morecall_arenas tolocal_arenas - Prefer
ensureTotalCapacityPrecise; improve blob memory efficiency - Reduce V8 memory-pressure notifications; add JS memory gauge and arena allocation metrics
Stability fixes
- Capture and propagate
ExecutionTerminated; clear the V8 terminating state after a terminated microtask checkpoint - Fix page double-free on navigate failure (UAF)
- Propagate worker-thread failures to the exit code
Build / dev
-dev_fastbuild flag; on by default on Linux; support for a pre-built shared library- Replace
@cImportwith build-systemtranslateC - Replace the deprecated
MemoryPoolwith the managed memory pool - Rework the scheduler; runner advances idle notifications outside the wait-condition loop
- Add
lp.IS_DEBUG/lp.IS_TEST; more consistent clock/timestamp use