Implement native WebTransportError values with generated dictionary, enum and clamped integer conversion. Keep lossless UTF-16 messages, branded readonly source/code accessors, DOMException inheritance, subclass and relevant-realm behavior. Reuse the shared structured-clone wire payload and intrinsic factory while preserving the geometry codecs on main. Retain the full secure Window/Worker, native Proxy, constructor poisoning and cross-realm cloning regressions. The shared WebIDL Clamp prerequisite is already merged; this frontend PR is based directly on main.
Convert Event, UIEvent, FocusEvent, CompositionEvent and CustomEvent inputs
before initializing state. Preserve getter exceptions and WebIDL long and
interface conversion; retain the legacy which input on KeyboardEvent only.
Validate the shared regression fixture against Chromium 145, then pass fmt,
workspace/all-targets/all-features Clippy and 20,530 nextest tests (18 skipped).
Return DOMRectList from Element and Range geometry queries, including empty results. Provide the prototype, item lookup, indexed property descriptors, and rejection of structured cloning. Preserve pending layout exceptions while constructing fallback results.
Source: 6d603dfc03
Expose Gamepad, GamepadButton and GamepadHapticActuator native interface shells, with shared GamepadEvent construction and a branded gamepad payload retained by identity. Polling continues to report no connected devices; actuator operations reject because there is no device backend.
Regressions cover exposure in Window and child realms, worker absence, descriptors, dictionary conversion order, native and registered-proxy brands, rejection of forged receivers, event dispatch and Promise/error realms.
Expose AudioNode as the shared native EventTarget parent of the existing audio node interfaces. Move context, port/channel properties and connect/disconnect to its branded prototype, and keep node state in private slots. Validate graph arguments before checking connection state and define native edge-array entries without invoking author setters.
Regressions cover inherited descriptors, genuine and forged receivers, cross-realm nodes, conversion order, channel options and worker absence. The existing audio graph implementations continue to provide node creation and rendering.
Completes native SVG value and element interface exposure in one independently mergeable PR against main, refreshing the former SVG constructor PR. Animated scalar values, angles, preserve-aspect-ratio values and live point/string/number/length/transform lists provide the shared native DOM foundation for the added elements.
Adds the remaining component-transfer, flood, image, merge, merge-node and tile filter interfaces; SVGSwitchElement and SVGMPathElement; and the animation, animate, set, animate-motion and animate-transform interfaces. Native factories, inheritance, SVGTests lists, attribute reflection, receiver validation and animation event handlers use native objects and the existing DOM backend.
Tests cover main/iframe realms, live and windowless documents, native identity, value/list mutation, units, Trusted Types, animation target resolution, handlers and timing argument validation. All internal SVG dependencies are included here, with no external PR merge order.
Filter raster rendering and SMIL scheduling remain unimplemented. Timing controls reject NotSupportedError, getStartTime reports no interval, and getCurrentTime remains zero. The separate SVG path parser changes and animated-string UTF-16 storage migration are excluded. The retained length synchronization is included; a separate ignored regression records the lone-surrogate limitation in the current DOM attribute storage.
SVG event-handler properties reuse main's existing shared event backend. Tests verify replacement, clearing, canonical event types, cancellation and realm/receiver identity; complete handler/listener registration-order semantics remain part of the separate event-handler backend migration.
Expose secure Document.modelContext APIs with document-owned registrations,
callback realm and input validation, task-based result delivery, and independent
caller cancellation and target completion. Preserve cancellation reasons and
emit lifecycle events only for live owners.
Register native declarative forms in light and shadow trees through indexed
mutation candidates. Track schema changes to valid forms even before a
registration succeeds, including controls associated through a form attribute.
Use changed containers only for ancestor and form-owner checks; inspect added
and removed subtrees for discovery. Retire registrations at actual removal and
owner transitions while preserving submit handling and captured pending responses. Apply validated
fill intents to current options and checkable values in control event order.
Compute tools delegation from committed security origins, ancestor header
allowlists, container declarations, redirects, and combined sandbox policies.
Carry invocation identity, original origin, and resolved target through form
navigation; accept same-origin JSON-LD results and reject cross-origin commits.
Connect typed renderer observations to CDP discovery, invocation, cancellation,
and Runtime result projection. Include renderer and protocol regression coverage
for document lifetime, reentrancy, permissions, dynamic controls, and cancellation.
Validation on this commit tree: cargo fmt --all;
cargo clippy --workspace --all-targets --all-features -- -D warnings;
cargo nextest run --no-fail-fast.
Summary [ 100.619s] 19320 tests run: 19320 passed, 16 skipped
Expose AudioProcessingEvent and OfflineAudioCompletionEvent as native Event subclasses with readonly branded payloads and WebIDL dictionary conversion. OfflineAudioContext emits a trusted completion event in its own realm, including when public constructors are replaced.
The regression matrix covers the main Window and same-origin child Window, subclassing, UTF-16 event types, malformed buffers, conversion order, callee-realm TypeErrors, dispatch identity and completion flags. This branch uses the AudioBuffer and OfflineAudioContext already on main.