Every number on this site was measured on the development machine; the notes behind them are in
the repository history.
The web platform, from its specifications
The JavaScript bindings are generated from the official
Web IDL (webref) with Web IDL's rules: DOM, CSSOM,
events, observers, custom elements, script loading with ES modules, fetch, XHR, streams, storage,
WebSocket, workers, crypto.subtle. 2,630 of 4,991 members are implemented; the
others are absent, so feature detection sees the truth.
Measured against the standards
The engine in WebAssembly passes 99.92 % of
test262. 4,494
web-platform-tests files run with every change,
106,188 subtests pass, and any regression fails the test suite.
Shadow DOM
Declarative shadow roots that render even without JavaScript, slots, encapsulated styles with
:host, ::slotted(), ::part() and :state(),
constructable stylesheets, event retargeting: web components, such as MDN's, show up.
Nothing runs outside the sandbox
Every call from the browser into a module, JavaScript included, has a deadline
(wasm.max_call_ms), and each module's memory is capped. A loop that never returns is interrupted;
a crashed engine loses the page's scripts, not the browser.
Wasm pages, any number of modules
Modules are fetched concurrently and run in document order, each in its own instance sharing the DOM.
Wasmtime 49 with Cranelift, a memory
cache and an authenticated disk cache of compiled code.
Effects on the GPU
filter,
backdrop-filter, the 16 blend modes
plus plus-lighter and plus-darker, clip-path, masks,
background-clip: text, linear, radial and conic gradients interpolated in sRGB, Oklab, Oklch,
Lab and more.
Text on DirectWrite
Per-character font fallback, OpenType shaping and features, bidirectional text, line breaking with
dictionaries for Thai, Lao, Khmer and Burmese, variable fonts, WOFF2, colour emoji in every font format.
Images
PNG, JPEG, GIF, BMP, ICO and TIFF through Windows; WebP, AVIF and SVG built in, whatever Windows has
installed, with ICC colour management. Decoding runs on its own threads.
At the display's refresh rate
Frames follow the monitor's exact rate, with a budget of 1000/Hz. Wheel scrolling a page of 10,000
paragraphs: 1.4 ms CPU and 2.3 ms GPU at the
99th percentile, under the 5.56 ms of a 180 Hz screen. The start page is drawn
0.3 s after launch.
Security from the standards
One policy layer for every request: CORS with preflights,
cookies (RFC 6265bis, third-party cookies
blocked by default), Content Security Policy for
scripts and Wasm modules, HSTS, mixed content blocking,
referrer policy.
Everything is configurable
about:config lists every setting with its description, default, bounds and unit:
rendering, scrolling, fonts, network limits, Wasm and JavaScript limits. Nothing is hard-wired.
Frame statistics built in
The status bar draws a graph of every frame by phase. A click opens CPU and GPU percentiles, compositor,
layout, memory and the time spent in Wasm.
A native window
Tabs in the title bar with favicons and Snap Layouts, error pages, downloads, local folders and dropped
files, pages that follow Windows' light or dark mode, selection, find in page, zoom,
view-source: and a keyboard path through all of it.