Supported features
Jint.Browser is intended for script-driven DOM automation and extraction.
Documents and script
- HTML parsing with inline, external,
defer, andasyncclassic scripts - Module scripts, import maps, and dynamic
import() document.writeduring parsing- External style sheets and native CSS parsing with a browser-owned CSSOM
- Image loading without a decoder:
complete,currentSrc,naturalWidth/naturalHeight, theloadanderrorevents,srcset/sizes/<picture>selection, andimg.decode(), all from the container header - Emulated viewport, media type, and supported preferences such as colour scheme, reduced motion, contrast, and pointer capabilities in both
matchMediaand stylesheet@mediarules about:blank,data:text/html, direct content, and HTTP(S) navigation- Custom elements, shadow DOM, templates, ranges, traversal, selection, DOMParser, and XMLSerializer
- Geometry Interfaces:
DOMPoint,DOMRect,DOMQuadandDOMMatrixwith their read-only parents andWebKitCSSMatrix, including transform-list strings; layout answers such asgetBoundingClientRectareDOMRectinstances - CSS Font Loading:
FontFacefrom asrcstring or a buffer, with its descriptors parsed and serialized,load()fetchingurl()sources in order, anddocument.fontsas a set-likeFontFaceSetwithcheck(),load(),readyand theloading/loadingdone/loadingerrorevents - Web Animations:
document.timeline,DocumentTimeline,Animation,KeyframeEffect,element.animate()and element/documentgetAnimations(), with frame-driven playback, timing and easing calculations, ready/finished promises, playback events, replacement/persistence, and discretecommitStyles() - The HTML Sanitizer API:
Sanitizer,setHTML/setHTMLUnsafe,getHTMLandDocument.parseHTML/parseHTMLUnsafe, including declarative shadow roots (sanitizing runs after parsing, see the DOM divergences)
Canvas (non-rendering)
HTMLCanvasElement.getContext('2d')andOffscreenCanvas.getContext('2d')return stable, per-canvas contexts. Other supported context modes return null; no renderer or GPU is involved.- Drawing state, validated colors/styles and line dashes,
save/restore/reset, and 2D transforms with independentDOMMatrixresults. Assigning width or height resets the drawing state and save stack, including same-value and content-attribute writes. Path2D, gradients, patterns, the 2D path/drawing operations, and approximateTextMetricslet scripts prepare charts without rasterization.- Real
ImageDatawithUint8ClampedArraystorage; canvas reads return transparent-black data and writes validate without retaining pixels. - Valid transparent PNG data URLs and asynchronous PNG
Blobresults fromtoBloband offscreenconvertToBlob. See Limitations for text heuristics, encoding/allocation limits and deliberate no-rendering behavior.
SVG DOM (non-rendering)
- SVG 2 element brands and prototype chains for roots, groups, basic shapes, text, gradients, patterns, clips, masks, markers, images, links, scripts, views and filters. Unknown SVG names remain
SVGElement; names are case-sensitive. - Live animated attributes, lengths, angles, numbers, rectangles, aspect ratios, points and transform lists. Base-value edits serialize into content attributes; retained objects observe attribute changes. Animated values mirror the base values through read-only objects, without SMIL.
- SVG list inspection and mutation methods, constants on both interface objects and prototypes, root value factories, and
SVGMatrix/SVGPoint/SVGRectaliases of the Geometry interfaces. - Attribute-derived basic-shape bounding boxes, lengths and points along outlines, plus ancestor-transform
getCTM/getScreenCTM. See Limitations for the synthetic geometry and text policies.
Runtime
- Timers, promises, microtasks, animation-frame callbacks, and
postMessage fetch,XMLHttpRequest, WebSocket, EventSource, blobs, and FileReader- Forms, validation, history, location, cookies, local/session storage
- IndexedDB databases, transactions, indexes and cursors, shared by same-origin pages and dedicated workers within a context, including plain HTTP. In-memory data survives navigation;
BrowserOptions.MaxIndexedDbByteslimits committed storage to 50 MiB per origin by default. An additionalBrowserOptions.MaxTotalStorageBytesbudget defaults to 100 MiB per context across origins, pages and workers, counting committed IndexedDB plus built-in localStorage and live Cache Storage;BrowserContextOptions.MaxTotalStorageBytescan override it. Custom local/cache partitions, session storage, cookies, empty partition maps and peak allocations are excluded. See IndexedDB. - Origin-partitioned
cachesin secure contexts (HTTPS and HTTP loopback/localhost), shared by a context's pages and dedicated workers and retained across same-origin navigations. The default in-memory partition enforcesBrowserOptions.MaxCacheStorageBytesper origin (5 MiB); customStoragePartitionProvider.GetCacheStorageimplementations can persist or refuse storage. - Resource Timing for completed
fetch/XHR bodies, scripts/modules, stylesheets/CSS imports, images, frame documents, and explicit font/media loads. Entries supportPerformanceObserver, buffered replay, the 250-entry resource buffer, resizing, clearing, andresourcetimingbufferfull. - Navigation Timing for top-level documents, including fetch/body and DOM/load milestones, navigation type and same-origin redirect counts. Same-document navigations keep the existing entry.
window.openand anchor/area/form targets open or reuse pages in the same context, including form POST bodies, window names,noopener/noreferrer, opener relationships, script closing and cross-page structured-clonedpostMessage. Remote WindowProxy objects support the cross-origin window/location surface; see the isolation limits below.- Navigation API: lazy
window.navigation, history entries with stable keys/IDs and independently structured-cloned state,navigate/reload/traversal result promises, SPA interception, transitions and activation. Native history/location changes, anchors, forms and CDP history traversals share the page's session history and navigation events; cross-document loads preserve same-origin contiguous entries. HostPage.NavigateAsync/ReloadAsyncand CDPPage.navigate/Page.reloadare browser-UI navigations: as in HTML they fire nonavigateevent and a page cannot intercept or cancel them, but a script navigation before they commit still aborts them. - Cookie Store:
window.cookieStorewith promise-basedget,getAll,set,delete,onchangeandCookieChangeEvent, sharing the context jar withdocument.cookie, network responses and CDP - Dedicated module workers and classic/module
SharedWorker, including entangledMessagePortconnections,onconnect, classicimportScripts, and context-scoped sharing by constructor origin, script URL and name. See Workers for lifetime and limits. - Mutation, intersection, and resize observers, with documented no-layout semantics
- Constructible event interfaces beyond UI Events:
ToggleEvent(fired by<dialog>and<details>),CommandEvent,AnimationEvent,TransitionEvent,GamepadEvent,DragEvent,StorageEvent,TouchEventand the device events, plus the legacyTextEventthroughdocument.createEvent;ClipboardEventis absent - The navigator's system state: HTML's compatibility constants, empty
plugins/mimeTypes,userAgentData(UA Client Hints, following a CDPuserAgentMetadataoverride),permissions.query,storage.estimate,registerProtocolHandlerargument validation,Notification,screen/screen.orientationandvisualViewportfollowing the emulated viewport — see Limitations for what they answer
Automation and reading
- CSS selectors and accessibility-snapshot
ref=targets - Click, focus, typing, key presses, select controls, form submission, and virtual scrolling
- Markdown, text, serialized HTML, and accessibility snapshots
- Request, console, page-error, response, and dialog inspection
Page.Popupannounces registered popups off the page loop, andPage.Openerexposes their opener. Popups joinBrowserContext.Pagesand CDP target discovery/attachment, withopenerIdwhen an opener exists.- CDP connections for supported Puppeteer and Playwright operations
Feature support is intentionally narrower than a graphical browser. Check Limitations before depending on layout, frames, media, or full client compatibility.