Commit Graph
2749 Commits
Author SHA1 Message Date
ldm0 5d193eb730 fix(canvas): apply fillRect transforms and native receiver conversion 2026-10-11 18:06:48 +08:00
ldm0 a9bc0ef27b feat(canvas): implement native Path2D geometry and drawing 2026-10-11 18:06:48 +08:00
ldm0 9a6a7d1940 fix(canvas): expose native transform snapshots 2026-10-11 18:06:48 +08:00
ldm0 27953cc9f1 fix(performance): validate observer options and retain observe mode 2026-10-11 18:06:48 +08:00
ldm0 68e47c85cd refactor(cache): derive inherited query options 2026-10-11 18:06:48 +08:00
ldm0 3379329c4e fix(geometry): convert matrix dictionary ancestors first 2026-10-11 18:06:48 +08:00
ldm0 6e6dfd4349 fix(webidl): preserve dictionary ordering and inherited members 2026-10-11 18:06:48 +08:00
ldm0 9061097f36 fix(geometry): preserve point dictionary conversion order
Declare DOMPointInit members in WebIDL lexicographic order so w is read and converted before x, y and z. Derive the optional dictionary argument of getCharNumAtPosition and correct its function length to zero. Cover inherited and Proxy dictionaries, getter and numeric-conversion exceptions, empty dictionaries, receiver-before-conversion checks, and the shared DOMPoint, DOMMatrix, DOMQuad and SVG entrypoints.
2026-10-11 18:06:48 +08:00
ldm0 ad5afb8e4d fix(dom): expose the native SVG document root
Implement Document.rootElement using the current native document element, returning it only for an SVG-namespaced svg root. Preserve owner-realm identity without reading author-overridable properties. Cover root replacement, removal, adoption, cloning, namespace and case sensitivity, cross-realm access, and registered native Document Proxies.
2026-10-11 18:06:48 +08:00
ldm0 29dee6b0cb fix(svg): implement deprecated redraw method semantics
Expose the four SVG2 redraw operations with native receiver validation. Derive required unsigned-long argument conversion for suspendRedraw and unsuspendRedraw, preserve conversion errors and return the specified constant handle 1 without DOM effects. Cover cross-realm and windowless roots, observable conversion, forged receivers, and registered native Proxies.
2026-10-11 18:06:48 +08:00
ldm0 90ea322602 fix(svg): resolve geometry lengths in their SVG user space
Share native SVG length resolution between geometry and animated values. Resolve physical units, independently specified viewport dimensions, nested percentage viewports and viewBox user coordinates. Cover live/windowless owner and callee realms, absolute-unit detached geometry and viewport mutations without a layout backend.
2026-10-11 18:06:48 +08:00
ldm0 c58817e80a fix(svg): preserve precision in geometry distance queries
Derive restricted float conversion for getPointAtLength before reading geometry and return getTotalLength in its IDL float precision. Read cascaded native path coordinates instead of rounded CSSOM text, promoting binary32 values before handing them to double-precision geometry. Cover finite overflow, rounding, underflow, path commands, conversion exceptions, mutation during conversion and native receiver validation across realms and document types.
2026-10-11 18:06:48 +08:00
ldm0 a56c6bed4b fix(svg): reflect CORS attributes with native receiver validation
Expose nullable DOMString crossOrigin on SVG image/script and readonly SVGAnimatedString crossOrigin on filter images. Reuse canonical CORS keywords, UTF16 attribute writes and reaction scopes. Derive strict receiver and nullable argument conversion, preserve registered native proxy identity, ignore non-null namespaces, and create filter value objects in their owner realm.
2026-10-11 18:06:48 +08:00
ldm0 e92e93c066 fix(svg): distinguish empty paths in distance queries
Throw InvalidStateError after WebIDL argument conversion when geometry has no path point. Keep zero-length line/moveto/point-list geometry valid and compute distance paths for rectangles and ellipses with one zero axis. Preserve rendered bounds/fill behavior. Cover live/windowless and cross-realm queries, conversion exceptions and conversion-triggered path mutation. Give the existing DOMPoint type smoke test a nonempty rectangle while retaining every assertion.
2026-10-11 18:06:48 +08:00
ldm0 e5a566253e fix(svg): reflect filter enumerations with native receiver validation
Expose GaussianBlur edgeMode with its none default and shared edge-mode keywords/constants. Preserve arithmetic as composite operator 6 and keep the existing lighter extension at 7. Use derived SVGAnimatedEnumeration receiver and argument validation, canonicalize registered native proxies, and reflect mutations back to native owner attributes. Cover live/windowless documents, invalid keywords, cross-realm bindings, conversion order, and registered/author proxies.
2026-10-11 18:06:48 +08:00
ldm0 4e340095e2 test(navigation): await popup cancellation observers before snapshots
Observe cancellation through the four existing navigation Promise callbacks before capturing the closed popup state. Preserve late handler release and every lifecycle, Promise, and error-identity assertion, avoiding a fixed 100ms delay as proof that cancellation callbacks have settled.
2026-10-11 18:06:48 +08:00
ldm0 7b78f4df01 fix(svg): implement native viewport and descendant ID queries
Implement SVGElement.viewportElement and SVGSVGElement.getElementById with native DOM traversal. Exclude the root and shadow trees from ID lookup, preserve UTF-16 ID equality and existing node identities, and use derived WebIDL argument and receiver validation. Cover borrowed methods, windowless documents, tree mutations, forged receivers, and registered native proxies.
2026-10-11 18:06:48 +08:00
ldm0 3f0238a92f fix(storage): build dense result arrays without inherited setters 2026-10-11 18:06:48 +08:00
ldm0 225195cdd6 fix(streams): initialize readable algorithms without inherited setters 2026-10-11 18:06:48 +08:00
ldm0 f057027576 fix(events): remove obsolete error setter export after rebase 2026-10-11 18:06:48 +08:00
ldm0 3de91a4a4c fix(cache): preserve native request state across storage and realms 2026-10-11 18:06:48 +08:00
ldm0 883352f85a fix(fonts): retain element-use loads through empty style followups 2026-10-11 18:06:48 +08:00
ldm0 58439a1d78 fix(cache): return native query results in the owner realm 2026-10-11 18:06:48 +08:00
ldm0 a4f0453be4 fix(cache): persist CacheStorage creation order 2026-10-11 18:06:48 +08:00
ldm0 c18be27d66 fix(test): include redirect mode in body teardown fixture 2026-10-11 18:06:48 +08:00
ldm0 d3e19f1931 fix(cache): derive query arguments and preserve DOMString names 2026-10-11 18:06:48 +08:00
ldm0 3878ca8f82 fix(renderer): adapt main fetch and document-start changes 2026-10-11 18:06:48 +08:00
ldm0 ebc60d0833 fix(media): install TimeRanges template bindings once 2026-10-11 18:06:48 +08:00
ldm0 39dfe6014b fix(renderer): trace body metadata and retire module fetch owners 2026-10-11 18:06:48 +08:00
ldm0 111a8022bd feat(cache): implement native add and addAll fetch batches 2026-10-11 18:06:48 +08:00
ldm0 b994f7a903 fix(cache): preserve response stream rejection reasons 2026-10-11 18:06:48 +08:00
ldm0 170933c5b9 fix(cache): preserve ordered vary variants in atomic storage batches 2026-10-11 18:06:48 +08:00
ldm0 5ffd83fedd feat(webapi): implement media and transport error values 2026-10-11 18:06:48 +08:00
ldm0 16ba5c733e fix(dom): capture native exception stacks and preserve proxy identity 2026-10-11 18:06:48 +08:00
ldm0 a596bbb0ab feat(webidl): add clamped unsigned long conversion 2026-10-11 18:06:48 +08:00
ldm0 861a796993 feat(webapi): implement native MIDI event payloads 2026-10-11 18:06:48 +08:00
ldm0 329bc6ad16 fix(webidl): enforce Uint8Array buffer policy and TextEncoder progress 2026-10-11 18:06:48 +08:00
ldm0 43dbd25095 feat(webapi): implement native speech synthesis event payloads 2026-10-11 18:06:48 +08:00
ldm0 880eaa6738 fix(dom): unload child documents in their registered execution realm 2026-10-11 18:06:48 +08:00
ldm0 f697ba31a3 fix(eme): implement native encrypted media event payloads 2026-10-11 18:06:48 +08:00
ldm0 40674036d8 fix(svg): validate geometry methods with native receivers 2026-10-11 18:06:48 +08:00
ldm0 361af4f1a7 fix(svg): reject nonfinite fill points and support fill rules 2026-10-11 18:06:48 +08:00
ldm0 199b8ee144 fix(fetch): enforce blob URL storage-key access
Authorize captured entries using pinned Window/XHR owners and Worker storage keys. Preserve Request entries when another environment is denied, and use Basic responses for authorized reads, including opaque origins and integrity checks.

Keep Document creation URLs stable across history, transport replacement, and document.open() so self-fetch exemptions remain tied to the original environment.

Validation: cargo fmt --all; strict workspace/all-targets/all-features Clippy; 21465 nextest tests passed, 16 skipped, 32 threads and zero retries.
2026-10-11 18:06:48 +08:00
ldm0 c0d6ca4fdc feat(file-api): capture blob URL creator access keys
Snapshot Blob or MediaSource data together with the creator access key under the store lock. Preserve the data-only API and retain parsed entries independently of revocation.
2026-10-11 18:06:48 +08:00
ldm0 20e92e7ede test(runtime): gate inflight replacement reservation 2026-10-11 18:06:48 +08:00
ldm0 489eaeb4c5 test(events): preserve inherited pointer dictionary order 2026-10-11 18:06:48 +08:00
ldm0 e558a2a015 fix(webidl): clean up rebased binding imports 2026-10-11 18:06:48 +08:00
ldm0 1102c4d88c fix(dom): preserve UTF-16 token list operations
Preserve DOMTokenList token identities, indexed values, mutations and stringification as UTF-16 across every reflected token-list kind. Add explicit dom_string16 conversion to WebIDL derives and reuse the existing lossless converter for scalar and variadic arguments. Enable native receiver validation, normalize registered native proxies, and correct the variadic operation lengths while retaining Array iterator intrinsic identities. Correct the local smoke IDL parser to exclude variadic arguments from required arity and cover fixed/variadic combinations. Cover cross-realm, live and windowless documents, reentrant conversion and adoption, and registered versus author-created proxies.
2026-10-11 18:06:48 +08:00
ldm0 4e29ef8326 fix(svg): implement anchor hyperlink attributes
Expose SVG anchor target as a live owner-realm SVGAnimatedString, reflect download/ping/rel/hreflang/type/referrerPolicy through existing DOMString and USVString bindings, and share native hyperlink component callbacks under generated SVGAElement receiver checks. Apply SVG2 href/xlink namespace rules when reading and updating URL components, preserve token-list PutForwards UTF-16, and cover live/windowless documents, both realms, reentrant conversion and registered native Proxies.
2026-10-11 18:06:48 +08:00
ldm0 f6941eb5da fix(geometry): validate rectangle receivers with native brands
Use generated WebIDL receiver checks for DOMRect, DOMRectReadOnly, SVGRect and SVGAnimatedRect accessors, including the SVG root rectangle factory. Distinguish mutable rectangles from readonly instances before numeric conversion, normalize registered native Proxies to their shared state, and normalize native rectangle clone payloads without granting Proxy serialization capability. Convert legacy SVGRect Float values before checking animation readonly state, propagate conversion exceptions, and retain viewBox synchronization across reentrant conversions. Cover cross-realm and live/windowless HTML/XML behavior plus registered native Proxy regressions.
2026-10-11 18:06:48 +08:00