Commit Graph
944 Commits
Author SHA1 Message Date
ldm0 d66bc2167b Fix table cell baselines and float vertical alignment 2026-09-18 15:09:07 +08:00
ldm0 ceeae06387 Fix table cell containing blocks and measured baselines 2026-09-18 14:40:27 +08:00
ldm0 dd80db23ca 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 14:39:49 +08:00
ldm0 edc677c00a test(layout): verify native table heights and aligned painting 2026-09-18 14:39:49 +08:00
ldm0 895ffbf025 fix(layout): resolve table row and section block sizes before Grid 2026-09-18 14:39:49 +08:00
ldm0 973d80e6d0 test(layout): record Chromium table height distribution oracle 2026-09-18 14:39:49 +08:00
ldm0 0b4c7b10f6 fix(layout): refresh geometry after screen and media changes 2026-09-18 14:29:05 +08:00
ldm0 26ca39c382 fix: match curl no-proxy dot normalization 2026-09-18 14:13:58 +08:00
ldm0 493d50e8cf fix: align no-proxy port and wildcard matching with curl 2026-09-18 14:13:58 +08:00
ldm0 2faf89e5c5 fix: restore HTTPS proxy default port 2026-09-18 14:13:58 +08:00
ldm0 8980a1cb41 fix: align proxy DNS pinning with curl ports 2026-09-18 14:13:58 +08:00
ldm0 3363d9dc5f docs: explain DNS and proxy invariants 2026-09-18 14:13:58 +08:00
ldm0 f220ffc53a test: keep failed proxy DNS outside curl 2026-09-18 14:13:58 +08:00
ldm0 90c0ede829 fix: verify HTTPS proxy connections 2026-09-18 14:13:58 +08:00
ldm0 d70a30f92c fix: reject invalid blocked CIDRs 2026-09-18 14:13:58 +08:00
ldm0 7184290d9f fix: match Chromium SOCKS proxy semantics 2026-09-18 14:13:58 +08:00
ldm0 ad0599b6a9 fix: pin proxy endpoint resolution 2026-09-18 14:13:58 +08:00
ldm0 86d0f1c5c4 refactor: generalize shared DNS endpoints 2026-09-18 14:13:58 +08:00
ldm0 5417fe675e refactor: share proxy route selection 2026-09-18 14:13:58 +08:00
ldm0 fbb6e06874 fix: reject prefixed host resolve syntax 2026-09-18 14:13:58 +08:00
ldm0 6aff3c598f refactor: clarify shared DNS resolution state 2026-09-18 14:13:58 +08:00
ldm0 d0f4ec8a3e refactor: drop redundant curl DNS cache timeout 2026-09-18 14:13:58 +08:00
ldm0 0abe983cc1 fix: unify HTTP proxy route selection 2026-09-18 14:13:58 +08:00
ldm0 fcc7168925 fix: prevent DNS rebinding in network policy 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 fcdabf7385 fix(blob): generate UUIDs for object URL identifiers
Use collision-checked random UUIDs for object URL identifiers instead of a process-local counter. Reuse the existing UUID generation for Blob identity and cover URL format plus independent lifetime for multiple URLs referencing one Blob.
2026-09-18 04:45:50 +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 f082f8a95b fix(wpt): serve XHR request header fixtures
Serve raw XHR header inspection and echo endpoints with exact name/value filters, original ordering and duplicate fields. Reuse arbitrary-method routing and return early without reading unused uploads; cover CORS metadata, HEAD and discovery boundaries.
2026-09-17 20:39:27 +08:00
ldm0 005751612c fix(wpt): serve JSON module lifecycle fixtures
Serve JSON module load/error dependencies and the per-key JSON-to-JavaScript response sequence. Keep counters shared across fixture origins and isolated between servers, with exact resource discovery and HEAD behavior.
2026-09-17 20:38:34 +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 29b5a36d5f perf(layout): stream point hit candidates before ordering results 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 7d562fad12 fix(cookies): isolate partitioned cookie quotas
Exclude partitioned cookies from the unpartitioned global quota and scope
per-domain counting and eviction to the complete partition key. Loading a
Chrome profile with CHIPS cookies now preserves ordinary login cookies
such as V2EX A2.

Add regression coverage for independent global and partition quotas,
partition-local eviction, and replacement at the limit.

Validation: cargo fmt --all and workspace/all-targets/all-features clippy
with -D warnings passed. The three new regressions passed, and a real
Chrome profile retained A2 unchanged and restored the V2EX login.
The full nextest run was stopped at the user's request; an unrelated
non-UTF-8 SQLite filename test failed on this macOS filesystem before
cancellation.
2026-09-17 14:19:03 +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