Commit Graph
788 Commits
Author SHA1 Message Date
ldm0 51df4fcde0 fix(table): span zero row spans to section end 2026-09-13 22:32:49 +08:00
ldm0 53f790c13a fix(fetch): require browser origins and unify SW request state
Keep request origin independent of URL resolution and referrer context,
including local blob fetches and inherited or sandboxed srcdoc documents.
Reject missing browser origins at the resource client boundary and retain
one Request across Service Worker redirects and network fallback.

Cover dispatch rejection, wire Origin/Cookie headers, memory-cache
partitioning and preserved Service Worker request metadata.

Validation: workspace fmt and Clippy passed; Nextest passed 17,517 tests
with 13 existing skips. Renderer test debug symbols were disabled to fit
available build memory; tests and debug assertions were unchanged.
2026-09-13 16:14:50 +08:00
ldm0 77783ece9d fix(fetch): enforce request modes and CORS before redirects 2026-09-13 16:14:50 +08:00
ldm0 92737248a6 chore(release): update version to 1.1.6 2026-09-13 06:55:25 +08:00
ldm0 3a5cf7f123 refactor(emulation): clarify environment invalidation contracts
Name coalesced work by the native caches it invalidates, and document that the Worker armed bit tracks the outstanding fallback message rather than mailbox contents.

Consolidate Date/Intl options regressions into named cases and fold time-first legacy dates into the shared parsing matrix, retaining their inputs and native-semantic assertions.
2026-09-13 05:55:27 +08:00
ldm0 2d249b069c refactor(emulation): coalesce process environment notifications
Publish typed invalidation flags under the environment lock and wake isolate owners only after releasing it. Bound page and worker notification work while preserving command FIFO, teardown safety, and observation ordering.

Remove stale wrapper-era dependencies and terminology, and add mailbox race and CDP burst regressions.
2026-09-13 05:55:27 +08:00
ldm0 4a1e6fd196 fix(fetch): unify script headers and CORS response validation
Generate Origin independently of browser destination metadata, and attach script
metadata at classic, module, and preload request builders. Share redirect URL-list
rules across request generation and response validation, and remove final-only
CORS validation from manifests, stylesheets, and request interception.

Reject failed CORS checks even without supported integrity metadata. Preserve CSP
reporting before dynamic script fetches and use committed Window origins for
srcdoc and sandboxed child script/module requests.

Add wire-level Origin, Cookie, and Fetch Metadata regressions, plus manifest,
stylesheet CSSOM, CSP, and child module/preload coverage.
2026-09-13 04:46:51 +08:00
ldm0 b63197ff8a fix(fetch): retain redirect state across service worker fallback
Keep redirect history in Request so Service Worker handoffs, network
redirects, preflights, Origin serialization, cookies, and TLS credentials
share the same state. Avoid reusing another request's response URL list
from the renderer memory cache.

Validate and filter network responses using their full history while
preserving readable Service Worker response filters across streaming and
buffered delivery. Returning to the initiating origin keeps network CORS
tainting; worker-produced responses retain their own filtering.

Add wire-header, credentials, cache, and worker response regressions, and
correct the local Fetch/XHR redirect fixtures to authorize and expose CORS
responses after a cross-origin round trip.
2026-09-13 04:46:51 +08:00
ldm0 c1412b76b9 fix(fetch): preserve redirect response provenance
Distinguish network, service worker, and browser-internal redirects so synthetic responses are not subjected to network CORS checks. Preserve every hop for redirect taint and Origin validation, including across navigation response conversions.

Add seven cross-origin service worker script scenarios and guard CORS checks for cached network redirects without ExtraInfo. The new integration regression fails before the fix and passes afterward.

Validated with cargo fmt --all, workspace Clippy across all targets and features with warnings denied, and cargo nextest run --no-fail-fast: 17459 passed, 13 skipped. Used one build job for the full test run after a parallel-build rustc process was killed.
2026-09-13 04:46:51 +08:00
ldm0 8562d5ae76 test(wpt): refresh full cross-engine case lists after SRI fixes
Refresh the all profile on 59e1af954 against WPT db95fafd1 using CDP, 50 workers, and an 800x600 viewport at DPR 1.

Record all 12,668 cases: 8,558 pass, 3,760 fail, 284 timeout, 52 harness-stalled, and 14 error; no crashes or missing cases. Compared with the previous lists, 36 cases became passing and 8 became non-passing.

Preserve the full-run observations. In two focused runs at parallelism 8 and one serial run, seven of the eight previously passing cases passed each time. The CSP javascript URL inheritance case failed all three rechecks because the expected report was absent; its underlying cause remains undiagnosed.
2026-09-13 04:46:51 +08:00
ldm0 a4364bf149 fix(scripts): validate response eligibility before SRI
Preserve response filtering through script and service worker loading, validate CORS authorization across redirects, and reject opaque responses before computing supported integrity digests. Keep empty and unsupported metadata behavior unchanged.

Add parser, dynamic script, module, and service worker regressions covering 39 scenarios. Validated with cargo fmt --all, full workspace Clippy, and cargo nextest run --no-fail-fast (17457 passed, 13 skipped).
2026-09-13 04:46:51 +08:00
ldm0 19e5667fe3 refactor(emulation): notify isolate owners without environment generations 2026-09-13 01:07:35 +08:00
ldm0 63143f6283 refactor(emulation): tighten process environment ownership
Make process environment owners non-cloneable RAII authorities, share session admission while preserving failed and no-op outcomes, and consolidate duplicate isolate-entry handling. Keep read-only owner queries side-effect-free and add lifecycle regressions.
2026-09-13 01:07:35 +08:00
ldm0 3bead42808 refactor(emulation): use native process-wide ICU defaults
Remove the Date/Intl wrappers, custom date parser and per-Page replay state. Keep exclusive locale/timezone ownership in a process controller and refresh existing Page and Worker isolates through generation-bound notifications and observation boundaries, including nested Inspector pauses.

Release claims on session/target/context retirement, retain native coercion and locale matching, and cover lifecycle restoration with Rust, BiDi and process-isolated CDP regressions.
2026-09-13 01:07:35 +08:00
ldm0 007519d616 fix(emulation): preserve Date coercion and locale fallback semantics 2026-09-13 01:07:35 +08:00
ldm0 9fda0f808e refactor(renderer): declare Date and Intl wrapper bindings 2026-09-13 01:07:35 +08:00
ldm0 156e16873d fix(emulation): preserve Date and Intl input semantics
Handle Unicode and legacy date inputs without unsafe slicing or timezone corruption. Normalize ICU locale IDs with the bundled ICU library and forward Intl options without violating frozen-object invariants. Add renderer regressions and process-isolated CDP input coverage.
2026-09-13 01:07:35 +08:00
ldm0 ae7e1067e6 fix(emulation): preserve locale and timezone semantics 2026-09-13 01:07:35 +08:00
ldm0 6f686b88f9 fix(url): honor base URLs in parsing APIs
Source-commit: 0b024cbe7d
2026-09-12 06:57:21 +08:00
ldm0 da38689cc5 fix(window): resolve API URLs against entry realms
Source-commit: 58b40add02
2026-09-12 06:50:23 +08:00
ldm0 c3224fe6d1 fix(dom): reflect link integrity for modulepreloads 2026-09-12 06:40:39 +08:00
ldm0 e559cff157 fix(preload): start links queued by completion callbacks 2026-09-12 06:40:39 +08:00
ldm0 416936f732 fix(modules): enforce import-map integrity
Source-commit: 259f7aaa46
2026-09-12 06:40:39 +08:00
ldm0 52e84d5fec fix(modules): report invalid import types as TypeError
Source-commit: ce5586c822
2026-09-12 06:01:44 +08:00
ldm0 09257c15cf refactor(fonts): extract system font matching crate
Move Fontconfig matching, substitution policy, and the Fontique lookup cache into moli-system-fonts. Keep CSS family adaptation in moli-layout, migrate tests and fixtures, and retain the Skia notice in source comments.
2026-09-12 04:13:15 +08:00
ldm0 df78925d9c fix(dom): keep child document base URI live 2026-09-12 04:06:27 +08:00
ldm0 d9d7c272ad refactor(streams): isolate transform finish algorithms 2026-09-12 02:37:54 +08:00
ldm0 4e5e5f7c68 refactor(streams): simplify transform terminal settlement 2026-09-12 02:37:54 +08:00
ldm0 a734b20478 refactor(streams): type transform finish callback data 2026-09-12 02:37:54 +08:00
ldm0 4f5e3af391 fix(streams): settle transform cancellation at promise reaction 2026-09-12 02:37:54 +08:00
ldm0 a7160b75ac refactor(webapi): rename record role to plain 2026-09-12 01:38:23 +08:00
ldm0 961eac7f7c refactor(webapi): share accessor preparation and validation 2026-09-12 01:38:23 +08:00
ldm0 2e6167f127 refactor(webapi): make object roles and receiver identity explicit 2026-09-12 01:38:23 +08:00
ldm0 c1679b1b25 refactor(webapi): share generated interface descriptors 2026-09-12 01:38:23 +08:00
ldm0 9b6ce47b98 refactor(webapi): share member and object code generation 2026-09-12 01:38:23 +08:00
ldm0 ed3321a3ee refactor(webapi): normalize field roles and inherited defaults 2026-09-12 01:38:23 +08:00
ldm0 c35acc033d refactor(webapi): retire unused interface object derive 2026-09-12 01:38:23 +08:00
ldm0 04fb84ce40 fix(fonts): reject unrelated system font substitutions
Split from window.chrome onto origin/main at 4b35bbc968. No other unmerged feature groups included.

Original-commits: 5f14c020f
2026-09-11 22:57:15 +08:00
ldm0 8e121e3b0e fix(streams): freeze transform cancel settlement
Source-commit: 3048ede0f0
2026-09-11 19:12:04 +08:00
ldm0 3a9acf2e19 test(wpt): refresh full cross-engine case lists
Refresh the all profile on a33217690 against WPT db95fafd1, using CDP,
50 workers, and an 800x600 viewport at DPR 1.

Record all 12,668 cases: 8,530 pass, 3,783 fail, 295 timeout,
50 harness-stalled, and 10 error; no crashes or missing cases.

Include fetch/api/abort/destroyed-context.html and resolve three iframe
cases previously listed under both pass and error. Preserve the full-run
observations, including 16 cases that changed from pass to fail.
v1.1.5
2026-09-11 18:32:44 +08:00
ldm0 86b2e9a645 refactor(webapi): complete identity migration and codec dispatch 2026-09-11 18:32:44 +08:00
ldm0 967a0d03d8 refactor(webapi): replace legacy brands with generated receiver checks 2026-09-11 18:32:44 +08:00
ldm0 c5cf57ff76 fix(structured-clone): dispatch all platform objects through native identity 2026-09-11 18:32:44 +08:00
ldm0 9f2e9632ac refactor(webapi): migrate native construction paths to shared identity 2026-09-11 18:32:44 +08:00
ldm0 25d7b63e06 feat(webapi): generate private platform object identity 2026-09-11 18:32:44 +08:00
ldm0 5b5015df6f fix(wpt): model Fetch status, trickle and abort fixtures
Source-commit: d60753677c
Source-commit: aec5df04d9
Source-commit: d5919885a4
2026-09-11 12:12:08 +08:00
ldm0 6956e5cf3c fix(curl): resume eligible HTTP jobs after completions
Include queued HTTP work in the owner's runnable decision after completions release active slots. Share the global and per-origin eligibility checks with the startup path so blocked queues still allow the owner to wait.

Add native owner regressions that consume submission wakeups before releasing a held request, then require the queued request to finish within its short deadline. Cover both scheduler limits and priority queues whose head is blocked by an origin cap.
2026-09-11 11:43:15 +08:00
ldm0 3f2e2fedd8 fix(csp): report eval source locations
Source-commit: 0bc8cbd5bc
2026-09-11 05:50:19 +08:00
ldm0 c1661a2c3a fix(geometry): serialize DOMMatrix numbers like ECMAScript
Source-commit: 715995c959
2026-09-11 04:24:08 +08:00
ldm0 ffe2805e08 fix(csp): validate Trusted Types directive name tokens
Source-commit: 621fd8d010
2026-09-11 04:18:03 +08:00