Commit Graph
502 Commits
Author SHA1 Message Date
kevin 7985fcb7bc fix(fetch): preserve details and discard empty SVG placeholders 2026-09-20 20:50:03 +08:00
ldm0 b75e26fca2 fix(workers): inherit EventTarget across worker global scopes 2026-09-20 20:15:21 +08:00
ldm0 c6418d05e2 fix(xhr): normalize script-visible response headers 2026-09-20 20:11:50 +08:00
ldm0 81663c6650 refactor(navigation): preserve errors through document loading 2026-09-20 19:27:31 +08:00
ldm0 3a1d432acc fix(fetch): include required headers in Blob URL responses 2026-09-20 18:59:25 +08:00
ldm0 01e724d175 fix(csp): normalize base64url symbols in inline hashes
Extracted from 04b2aa7f0273ae5d63835c1ac466d8aa30dc57d3.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings. Runtime tests were not run for this split.
2026-09-20 17:25:41 +08:00
ldm0 082717a952 fix(dom): return empty shallow clones of detached HTML documents 2026-09-20 17:16:21 +08:00
ldm0 4ed30be874 fix(fetch): distinguish request header bytes from UTF-8 strings 2026-09-20 14:03:33 +08:00
ldm0 db615d78eb fix(webidl): validate remaining Document member receivers 2026-09-19 23:08:03 +08:00
ldm0 d4f5e2fc01 fix(profile): simplify file writes for Windows 2026-09-19 21:56:20 +08:00
ldm0 5727dc7dff fix(webidl): validate Document attribute receivers
Enable generated native receiver checks for Document metadata, view, focus and state attributes. Cover genuine cross-realm and windowless documents, author Proxies and forged receivers, callee-realm TypeError and validation before domain conversion. Preserve existing lenient mouse event handlers.
2026-09-19 02:36:28 +08:00
ldm0 39709370fd fix(xhr): allow repeated synchronous requests to the same URL
Remove the URL-based synchronous XHR repetition gate. Independent requests to the same resource must run normally, including failures followed by recovery, method changes and child-document requests.
2026-09-18 21:38:39 +08:00
ldm0 bc998c5748 fix(modules): preserve constructors through module trees
Retain Error and WebAssembly CompileError/LinkError kinds when translating module failures into and out of the shared module tree. Cover cached graph failures and malformed Wasm import rejection, including author-replaced constructors.
2026-09-18 20:26:35 +08:00
ldm0 393338d444 test(layout): cover resolution and reduced-motion changes 2026-09-18 16:19:28 +08:00
ldm0 984c20ec98 Fix table cell baselines and float vertical alignment 2026-09-18 16:19:13 +08:00
ldm0 d98b2255f1 Fix table cell containing blocks and measured baselines 2026-09-18 16:19:13 +08:00
ldm0 b1c012951c fix(layout): stabilize table layout and cache measurements
Index each row's cell range and row-group boundary to remove repeated
placement scans. Cache complete table measurement outputs, including
baselines, in an eight-entry LRU with layout cache invalidation.

Preserve caption minima, Flex table heights, percentage padding bases,
anonymous table behavior and the existing vertical layout path. Extend
the Chromium geometry fixtures and refresh the full WPT-cross case lists.

Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 18180 passed, 13 skipped
- WPT-cross all: 8779/12906 passed; table: 535/716 passed
- Table results unchanged by index/cache optimization; 28 full-run
  differences checked twice per binary with no stable new regression
2026-09-18 16:19:13 +08:00
ldm0 319f6c3615 test(layout): verify native table heights and aligned painting 2026-09-18 16:19:13 +08:00
ldm0 d05c1f7fee test(layout): record Chromium table height distribution oracle 2026-09-18 16:19:13 +08:00
ldm0 6dfc2258c1 fix(service-worker): reject async module evaluation graphs
Reject service worker module graphs containing top-level await before instantiation or execution. Traverse evaluation dependencies, including synthetic Wasm imports, while excluding source-only edges. Cover direct and transitive await, cycles and ordinary async functions.
2026-09-18 15:55:24 +08:00
ldm0 8fb77fbe97 fix(page-visibility): keep synthetic iframe documents hidden
Determine visibility from registered browsing-context ownership and page activity. Reading contentWindow on a detached iframe must preserve its hidden state while defaultView continues to expose the synthetic Window. Cover nested detached documents, getter order, live child realms and popups.
2026-09-18 14:51:05 +08:00
ldm0 cdf84d5dcf fix(canvas): preserve isolated realms for TextMetrics
Prefer the DOM wrapper creation context over the document default context when selecting a result realm. Keep Canvas TextMetrics in the isolated world and preserve separate default-world prototypes.

Source: e8105d5fc4
2026-09-18 14:39:45 +08:00
ldm0 929b3ac328 fix(wasm): retain child intrinsic prototype identities
Expose V8 intrinsic instance prototypes from child WebAssembly constructors so native modules, instances and errors retain correct constructor and instanceof identity. Preserve realm isolation and prototype descriptors; cover compile, link and runtime errors plus author exceptions.
2026-09-18 14:38:15 +08:00
ldm0 0b4c7b10f6 fix(layout): refresh geometry after screen and media changes 2026-09-18 14:29:05 +08:00
ldm0 ad0599b6a9 fix: pin proxy endpoint resolution 2026-09-18 14:13:58 +08:00
ldm0 0f3e3acd4d fix(layout): preserve inline clearance below floats
Move inline content that cannot fit beside floats to the first suitable slot,
and retain that clearance in CSS baseline and container-height calculations.
This places GitHub's full-width Show more activity button below its timeline.

Update Taffy to e4e8f77c for float segment extension and content-slot fallback.
Preserve whitespace collapsing around out-of-flow loading hints and cover
float placement, staggered heights, and pre/nowrap behavior in regressions.
2026-09-18 12:43:03 +08:00
ldm0 b74061eb63 test: make worker and frame error checks deterministic
Consume child-frame navigation before the Runtime.enable helper clears
collected events, avoiding an event-ordering race in the Fetch test.

Use a local connection-drop server to trigger nested worker script load
failure, removing external DNS timing from the asynchronous error-event test.
Preserve the constructor, event type, message, and filename assertions and
verify that the fixture receives the expected child script request.
2026-09-18 12:43:03 +08:00
ldm0 b89f09f781 fix(editing): preserve surrogate pairs in text control actions
Normalize native edit endpoints to complete UTF-16 scalar boundaries while preserving selection API code-unit offsets. Cover keyboard deletion, movement, shifted selections, execCommand, and boundary no-ops.

Source: 4417abe223
2026-09-18 12:19:15 +08:00
ldm0 b73d663a46 fix(style): extend table dimension presentation hints 2026-09-18 11:18:21 +08:00
ldm0 1fbc258d52 fix(layout): refresh cached geometry when viewport changes 2026-09-18 04:06:54 +08:00
ldm0 85d27b3e1c perf(storage): reuse serialized localStorage areas 2026-09-18 03:54:24 +08:00
ldm0 0ebc155cfd fix(resource-timing): record XMLHttpRequest entries
Record XMLHttpRequest response timing through the existing resource entry path for streaming and buffered responses. Cover the request URL, xmlhttprequest initiator type, native PerformanceResourceTiming identity, and exactly one network request.
2026-09-18 00:48:02 +08:00
ldm0 577aef69e0 fix(timers): retain the initiating script nonce
Snapshot the initiating script nonce when scheduling string timeouts and intervals, then restore it on the compiled timer source. Cover dynamic imports, nested timers, identical source scheduled under different nonces, and functions invoked by another script.
2026-09-18 00:34:11 +08:00
ldm0 bffa334608 fix(csp): match WebSocket sources against HTTP schemes
Allow ws sources to match http and https, and wss sources to match https.
Distinguish WebSocket-to-HTTP compatibility from exact scheme matching and
secure upgrades so same-security ports remain constrained and self does not
mistake distinct origins for the same origin.

Cover scheme sources and exact/wildcard hosts with wildcard ports in both
Window and Worker checks, plus numeric ports, host/path restrictions and
asymmetric scheme transitions.
2026-09-17 17:09:30 +08:00
ldm0 e2c0683c36 fix(csp): validate host sources and decode path segments
Parse CSP host-source syntax before matching, retaining raw host and path
components instead of normalizing them through the URL parser. Match paths
by percent-decoding individual segments for exact and wildcard sources.

Cover invalid tokens, encoded delimiters, distinct non-UTF-8 bytes, dot
segments, redirect restrictions, ports and hostname boundaries. Preserve
existing support for ordinary IPv4 sources.

(cherry picked from commit 889babcac9)
2026-09-17 17:09:30 +08:00
ldm0 96ee6e182d fix(csp): match wildcard ports on exact hosts
Source: bd80b3a832
2026-09-17 17:09:30 +08:00
ldm0 c7b9b52557 fix(csp): parse each policy in response header lists
Split response CSP and report-only fields into independent policies in wire order. Preserve policy disposition and CSP whitespace behavior, and enforce every policy in a field. Preserve source token whitespace after directive splitting so invalid vertical tabs cannot become wildcard permissions.

Source: dcb55392f5, 889babcac9
2026-09-17 17:04:25 +08:00
ldm0 9cd3789f23 perf(layout): reject out-of-viewport caret queries 2026-09-17 14:53:54 +08:00
ldm0 61669e8740 perf(layout): reject point misses before shared clip checks 2026-09-17 14:53:54 +08:00
ldm0 636d97e21c perf(layout): keep hit results free of unused box models 2026-09-17 14:53:54 +08:00
ldm0 43dd80a890 perf(layout): answer specialized geometry queries once 2026-09-17 14:53:54 +08:00
ldm0 c49d1b72ba fix(events): preserve detached Window receiver identity
Use the native Window brand to recognize child globals across method realms. Distinguish valid detached child Windows from invalid receivers when adding or removing event listeners; detachment has already cleared their event state.

Cover retained child references, borrowed EventTarget methods, invalid receivers, and parent listener isolation. Restore the verified iframe promise-rejection WPT to the passed list.
2026-09-17 14:17:33 +08:00
ldm0 f645752894 fix(parser): notify mutations when coalescing text
Return text mutation effects from parser sinks and deliver them through the shared notification pipeline after releasing the structural borrow. This keeps stylesheets and layout current when parser input is merged into existing text nodes, and delivers characterData records without replacing node identity.

Add main-document and iframe regressions for split stylesheet input, hit testing, and MutationObserver delivery. Restore the verified elementsFromPoint iframe WPT to the passed list.
2026-09-17 14:17:33 +08:00
ldm0 d56bbd7c28 fix(webidl): validate MessageChannel getter receivers
Enable the shared native receiver check for MessageChannel accessors. Cover genuine cross-realm receivers, forged and author Proxy receivers, callee-realm exceptions, and dedicated/shared workers.

Source: 9559bb123b
2026-09-17 03:39:08 +08:00
ldm0 91ce06dfd0 fix(csp): enforce worker module import policies
Source: 3727623bf2
2026-09-17 03:35:33 +08:00
ldm0 306e090e97 test(modulepreload): select the pending owner notification task
Source: d4c773ba93
2026-09-17 03:00:11 +08:00
ldm0 5897e0f94b test(stylesheet): select the pending dynamic link event
Source: 8b78dc4157
2026-09-17 02:14:17 +08:00
ldm0 94a7eaf864 fix(style): honor table cell dimension presentation hints 2026-09-17 01:30:53 +08:00
ldm0 0e521aa8a3 feat(markdown): render simple HTML tables as GFM
Synthesize empty headings for simple headerless tables and keep complex tables readable as blocks. Use owned output fragments to avoid repeated copying through nested fallback tables.

Cover escaping, alignment, layouts, CLI output and linear copy growth. Validated with cargo fmt, workspace Clippy, and 18,114 passing nextest tests (13 skipped).
2026-09-17 01:16:06 +08:00
ldm0 cff5927983 fix(clipboard): share byte snapshots across page realms
Store validated clipboard representations in the BrowserContext instead of retaining page-owned V8 objects. Reconstruct fresh items and blobs on reads, commit all representations together, and recheck write permission after pending data settles. Cover child realms, document teardown, independent contexts, and rejected writes.

Source: 331945eaf9
2026-09-17 01:15:10 +08:00