Multi-page sessions
- Concurrent page navigations in the script runtime
- Runner and session support for multiple pages
cli: fetch multiple URLs in one invocation
New Web APIs
Navigator.sendBeaconHTMLSelectElement.addNode.moveBeforeHashChangeEvent+Windowhashchangeeventdocument.domainsetterWorkeris now a properDedicatedWorkerGlobalScope
Web API behavior / fixes
replaceWithwith aDocumentFragmentappends its childreninnerHTMLparsing respects the target element- Reject
XMLHttpRequest.send()when a send is already active - Cookie accessor moved from
HTMLDocumenttoDocument innerTextuses theStyleManager's visibility
CSS / styling
getComputedStyleresolves inlinestyle=declarations- Normalize fractions without a leading
0 - Skip inline-style allocation for elements without inline styles (perf)
- Skip
CSSStylePropertycreation when there is nostyleattribute (perf)
URL
- Reworked
URL.resolveon top of the new URL implementation
CDP (Chrome DevTools Protocol)
- Follow redirects on request-interception fulfillment
- Fix
Page.frameAttachedparams double-wrapping that broke sub-frame interception Page.getLayoutMetricsreturns the browser's viewport- Store viewport override at the browser level
HTTP / Networking
- Update libcurl and nghttp2
- Work around libcurl Brotli trailing-byte rejection (
CURLE_WRITE_ERROR) - Fix cross-origin
MessageEvent.sourceWindowProxyidentity
Telemetry
- Smaller telemetry payload
- Telemetry worker moved to its own thread
Stability / crash fixes
- Fix handlescope corruption on iframe load
- Prevent double-free on
BrowserContextdeinit with pending interception (UAF) - Fix crash on
requestAnimationFramefrom aWorker - Flush deferred transfers after a synchronous stylesheet fetch
CLI / Ops
LIGHTPANDA_DISABLE_CORE_DUMPto suppress crash core dumps- New
--strip-mode invisible
Build / CI
- Update V8
- Generate a
versions.jsonfile - Release: Docker registry login + read permissions, homebrew workflow fixes, trigger homebrew-browser formula update after release