Commit Graph
1457 Commits
Author SHA1 Message Date
ldm0 e8cdc8fa1c fix(fetch): inherit document policy for empty request referrers 2026-10-03 15:53:03 +08:00
ldm0 8f7598a30f test(wpt): refresh full release case status lists
Run the unfiltered all profile with release Moli 1.1.12 built from
cbb41950af, using WPT
db95fafd1fcef8428805e41eb5705d444e8c67ce and 50 CDP workers.
All 13,631 cases have exactly one recorded Moli attempt.

Moli: 9,583 pass, 3,727 fail, 259 timeout, 9 error, 1 crash,
and 52 harness-stalled. The case set matches the previous refresh;
51 cases gain pass and eight lose pass, for a net gain of 43.
Keep the raw full-run outcomes.

Validate all eight status lists against the raw results and matrix:
sorted, disjoint, exhaustive, with no setup errors, missing cases,
unknown statuses, or unexecuted recovery placeholders.
git diff --check passes.
2026-10-03 13:38:59 +08:00
ldm0 0a6a6e3fa0 fix(dom): mask AX password values per UTF-16 code unit
Count UTF-16 code units when masking password values to match Chromium.
Cover initial and live values across ASCII, BMP, supplementary characters,
combining sequences, ZWJ emoji, and empty passwords, verified against
Chromium 145 in 14 cases.
2026-10-03 13:35:10 +08:00
Maxim M 8c3cc22e87 fix(dom): expose password inputs as textbox with a masked AX value
Fixes #1082.
2026-10-03 13:35:10 +08:00
ldm0 3d4da651f7 fix(csp): enforce worker string timer policy after conversion 2026-10-03 05:00:48 +08:00
ldm0 3638aa0d0b feat(media): expose native stream, session and playback interfaces 2026-10-03 04:21:43 +08:00
ldm0 4b71c1628a feat(svg): expose native switch and mpath interface objects 2026-10-03 04:04:27 +08:00
ldm0 48bcabe141 test(cdp): lock scoped queries and mutations during pause 2026-10-03 03:30:39 +08:00
ldm0 9cbdd35da5 refactor(emulation): apply navigator and activity policy together 2026-10-03 03:30:39 +08:00
ldm0 828658d9d4 refactor(renderer): resolve scoped nodes within owner-only DOM operations 2026-10-03 03:30:39 +08:00
ldm0 330b8c6381 refactor(renderer): resolve scoped nodes within read operations 2026-10-03 03:30:39 +08:00
ldm0 04d465959f refactor(cdp): simplify renderer call envelopes and unit replies 2026-10-03 03:30:39 +08:00
ldm0 3fb36899cd refactor(cdp): project ordered output from canonical slots 2026-10-03 03:30:39 +08:00
ldm0 28e79e9ac8 test(network): isolate image ownership checks from scheduler sweeps 2026-10-03 03:30:39 +08:00
ldm0 3fd1259f5f feat(media): expose the RemotePlayback interface object 2026-10-03 03:03:31 +08:00
ldm0 e1d9b7a918 feat(payment): expose the secure PaymentResponse interface object 2026-10-03 03:03:06 +08:00
ldm0 2f0d1d4848 feat(midi): expose secure non-constructible MIDI owner interfaces 2026-10-03 03:00:38 +08:00
ldm0 0b7081a51a feat(svg): expose native animation element interface objects 2026-10-03 03:00:13 +08:00
ldm0 90ffad4035 feat(svg): expose remaining filter element interfaces 2026-10-03 02:58:43 +08:00
ldm0 4ca389adb2 fix(geometry): align DOMRect factory descriptors and dictionary order 2026-10-03 01:46:03 +08:00
ldm0 ff4bc3aa04 fix(audio): convert offline sample rates with WebIDL float 2026-10-03 01:44:44 +08:00
ldm0 c491a11885 fix(dom): clear root handlers without invoking author setters 2026-10-03 01:43:53 +08:00
ldm0 96442e437b fix(events): preserve event constructor type code units 2026-10-03 01:43:00 +08:00
ldm0 c1893e0599 fix(fetch): use captured origins for Request referrers 2026-10-02 05:41:37 +08:00
ldm0 43c72601f3 refactor(fetch): separate request ownership from API base URLs
Keep frame ownership independent of mutable document bases, share the Request and XHR API base lookup, and validate referrers against the Window origin.

Cover live base changes in initial about:blank, srcdoc, and HTTP iframes from both parent and child realms.
2026-10-02 05:41:37 +08:00
ldm0 10eaff5801 fix(clone): deserialize Window clones in the receiver realm 2026-10-02 02:24:56 +08:00
ldm0 a05bb9287c fix(fonts): validate font set queries with Stylo 2026-10-02 02:23:18 +08:00
ldm0 bda82c8123 fix(forms): wrap textarea submission values 2026-10-02 02:22:02 +08:00
ldm0 dc5574676f fix(navigation): reload idle initial-empty iframe documents 2026-10-02 02:20:52 +08:00
ldm0 bac28518ff fix(html): reveal details for fragment navigation 2026-10-02 02:16:34 +08:00
ldm0 9a81b5695f fix(forms): honor range input constraints 2026-10-02 02:13:13 +08:00
ldm0 0a87c564fc fix(webidl): validate observer Element arguments with native brands
Use native Web API identity for ResizeObserver and IntersectionObserver targets and roots, accepting genuine cross-realm objects and registered native proxies while rejecting forged, inherited and author-Proxy values. Validate root membership during dictionary conversion, before later getters, and resolve native targets without reading public nodeType properties.

A 204-case regression matrix covers both observer interfaces and realms, native proxy acceptance, invalid targets, poisoned properties, option conversion order and original exception identity.

Expose the backing-object lookup from the existing native brand layer rather than unwrapping author Proxies in DOM callbacks. Extend its existing identity tests for cross-realm objects, forged objects, registered native Proxies, outer author Proxies and revocation.
2026-10-02 01:10:35 +08:00
ldm0 f776d539bb test(fetch): preserve explicitly empty author header values
Verify that explicitly empty request headers remain present while omitted Content-Type stays absent. Cover native HTTP transports and renderer Fetch/XHR requests, including bodyless, empty and non-empty uploads. No production transport behavior is changed.
2026-10-02 00:44:35 +08:00
ldm0 ff5361ae31 feat(webaudio): expose native audio event payloads
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.
2026-10-02 00:43:14 +08:00
ldm0 c3b5a3e765 fix(fetch): resolve Request URLs against the live document base 2026-10-01 23:00:59 +08:00
ldm0 6aeffcf522 test(css): cover completed parser style contents and CSP checks 2026-10-01 22:49:41 +08:00
ldm0 86f5f3d6ff test(cdp): bind failed navigation lifecycle to its document commit 2026-10-01 22:48:27 +08:00
ldm0 e52e9fd5e6 fix(dom): return only SVG documents from getSVGDocument 2026-10-01 22:48:00 +08:00
ldm0 20254be685 fix(dom): expose getSVGDocument on frame owner interfaces 2026-10-01 22:48:00 +08:00
ldm0 a7b8f43d77 fix(events): initialize native lifecycle trust and transition flags 2026-10-01 22:47:05 +08:00
ldm0 f8edead3f6 fix(workers): prevent recursive local error reporting 2026-10-01 22:46:20 +08:00
ldm0 b6f43fa61c fix(indexeddb): preserve ImageData when cloning stored values 2026-10-01 22:39:46 +08:00
ldm0 4c264b2d92 fix(indexeddb): preserve factory conversion and request ownership
IDBFactory.cmp preserves exceptions from key getters and reports invalid keys as DataError instead of rewriting both cases to TypeError. The generated receiver check continues to run before key conversion.

Schedule open/delete operations in the factory receiver’s realm after completing argument conversions in the callee realm. Borrowing an iframe method previously created a correctly branded request but scheduled its upgrade in the wrong context, leaving it pending.

Expand the factory regression fixture to exercise key conversion and request completion after removing the genuine factory prototype, using main Window, child Window and worker factories. Correct the ported cmp(undefined, key) expectation to DataError.
2026-10-01 18:24:57 +08:00
ldm0 3b35e5fa0f fix(fetch): separate manual hop lookup from transport redirect limits
Keep redirect URL lookup available when the renderer follows HTTP hops itself. A transport request with follow_redirects=false must not reapply the automatic transport redirect limit to the renderer’s already-recorded URL chain; automatically followed requests retain their existing limit. CORS checks still run for every browser-managed hop.

The regression verifies manual lookup at the transport limit, rejection for automatic following at the same limit, and rejection when the manual hop lacks CORS permission.
2026-10-01 16:57:00 +08:00
ldm0 e6e9a3309c feat(webidl): add lossless DOMString conversion
Add an explicit UTF-16 DOMString converter for bindings that must preserve lone surrogates. Reuse the existing UTF-16 extraction helper and keep this change additive, without rerouting the existing DOMString converter.

Regressions cover code-unit preservation, scalar conversion, null-to-empty options, single string-hint coercion, exception identity and callee-realm TypeErrors. Existing DOMString and USVString behavior is also checked.
2026-10-01 16:54:03 +08:00
ldm0 e03f6a71c5 feat(webidl): support restricted float conversion
Add the WebIDL restricted float converter and f32 inference in generated argument and dictionary bindings. Round finite numbers to binary32, reject values that become nonfinite, and preserve exceptions from numeric conversion.

Regression coverage compares rounding with V8 Math.fround, including signed zero, subnormals and overflow, and checks implicit/explicit derived argument conversion, single coercion, exception identity and the callee TypeError realm. Extracted from the AudioBuffer commit without an audio runtime dependency.
2026-10-01 16:53:47 +08:00
ldm0 5c19ed1006 refactor(dom): resolve attribute references in the renderer handler 2026-10-01 16:51:46 +08:00
ldm0 eb2d679e44 refactor(automation): name semantic commands and renderer CDP calls 2026-10-01 16:51:46 +08:00
ldm0 f2cd0fd488 refactor(cdp): pass preload commands directly between phases 2026-10-01 16:51:46 +08:00
ldm0 28e40e5287 refactor(renderer): publish nested prefixes with their retention fences 2026-10-01 16:51:46 +08:00