Route CDP Page.printToPDF and CLI PDF dumps through an owned snapshot PDF
backend with embedded subset fonts and logical text cluster mappings.
Preserve print layout isolation, page selection, and bounded local raster
fallbacks. Pin Krilla to upstream Git and share its font parsing dependencies
with the existing rendering stack where version constraints allow.
Add PDF extraction, pagination, graphics, and print lifecycle regressions,
fixed font fixtures, and reader and CDP smoke checks.
Refs #279.
Keep press and current mouse targets in host-owned state so synchronous
DOM removals invalidate or retarget them before click dispatch. Resolve
click and auxclick targets through the flat tree, preserve captured click
targets, and dispatch mouseup before lostpointercapture.
Cover sibling targets, Shadow DOM, slots, removal and reinsertion, and
pointer capture with deterministic input regressions.
Retain the referrer selected for each completed hop before applying the redirect response policy. A later permissive policy cannot restore an omitted referrer or stripped path. Apply this to buffered, HTML streaming, raw streaming and cached redirects, with native HTTP regressions for policy changes, manual redirects and request identity preservation.
Add the shared WebIDL octet converter and derive support for explicit octet and inferred u8 fields. Convert through JavaScript numeric coercion and modulo arithmetic. Regressions cover negative/fractional/large values, nonfinite numbers, thrown conversion identity, argument sequence order, dictionaries, and unsupported primitives. MIDI bindings are separate.
Vendor rust-url 2.5.8 with narrowly documented file-URL parsing fixes. Preserve leading empty path segments, retain non-local hosts while normalizing Windows drive letters, and apply the same rules to relative resolution and pathname setters. Include licensing, the upstream fixtures, native URL regressions, and JavaScript URL property regressions.
Build on the shared SVG animated-length getter ownership fix to validate geometry and graphics receivers through native brands. Keep producer-realm identity for cold borrowed getters and registered native proxies; reject forged and author-proxy receivers without invoking traps. Cover live, windowless and foreign-document geometry attributes, transforms and path lengths.
Validate SVGFilterElement and SVGMarkerElement getters through generated native receiver brands. Canonicalize registered native proxies before caching animated length, enumeration, and angle tear-offs, and create those values in the owner realm. Regression matrices cover forged and author proxy receivers, borrowed getters, windowless documents, and registered native proxy identity.
Use typed WebIdlArgs for destinations and port numbers, leaving receiver
validation in the shared AudioNode declaration. Complete disconnect
argument conversion before checking graph state or removing edges.
Move choose-_parent-001/002/004 to passed after receiver-based target
resolution. Each passed five isolated release runs on this main-based
branch. Refresh only these three cases and preserve all other recorded
outcomes; this is not a new full-suite run.
Resolve window.open _parent/_top targets from its receiver Window instead
of re-reading the ambient dispatch scope. Recognize child receivers on
these target paths, including borrowed Window.open methods. Preserve the
entered Window fallback for other receivers and the existing dispatch
scope used by element/form navigation.
Cover nested receivers, mixed-case _parent targets, borrowed methods, and
empty/nonempty URLs. Fix choose-_parent-001/002/004 without depending on
other popup or storage fixes.
Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 19,937 passed, 17 skipped
- release WPT: each affected case passed five isolated attempts
- nearby cases: 10 pass, 5 timeout; the five timeouts match the checked-in
case statuses at the main base, with no new failing classifications
Carry received HTTP reason phrases from the parser through buffered and streaming responses, disk and memory caches, page responses, Fetch, and XHR. Preserve custom and empty HTTP/1 phrases and report empty text for HTTP/2 and HTTP/3. Synthesized responses retain canonical fallback. Regressions cover whitespace, non-ASCII bytes, and cache round trips.
Validation on this branch: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings.
Nextest and WPT reruns omitted at the user's request.
Includes the ablation-confirmed cleanup from e5491f4b65.
Validation on this branch: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings.
Nextest and WPT reruns omitted at the user's request.
Validation on this branch: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings.
Nextest and WPT reruns omitted at the user's request.
Propagate an unhandled nested worker exception to the parent worker with ErrorEvent.error set to null, as required by omitError reporting. Update the existing end-to-end parent onerror regression to inspect the null value while retaining filename, line, column, and message checks.
Convert getComputedStyle Element and nullable pseudo-element arguments through the shared WebIDL derive path in main, iframe and popup windows. Preserve conversion exception identity and prevent pseudo-element conversion for invalid element receivers. Regression fixtures cover cross-realm genuine elements, author proxies and thrown coercions. Retain current window receiver and scrolling infrastructure. Determine expected intrinsics from the actual binding function realm while retaining main, iframe and legacy popup document coverage. Treat disconnected child-frame and popup targets as empty before consulting cached context state. Retained style objects update across connection and removal; the 318-assertion matrix keeps all original conversion checks.
Validate DOMImplementation native receivers before argument conversion, and convert createDocument qualifiedName before its nullable DocumentType argument. Allocate factory results in the owner Document relevant realm after conversion, preserving the callee realm for conversion errors. Cross-realm regressions cover genuine and forged doctypes, author proxies, conversion order, and factory result ownership.