Commit Graph
1792 Commits
Author SHA1 Message Date
LeandroPG19 d4e635cd52 style(scheduler): drop explanatory comments from dialog wait fix 2026-10-11 06:48:09 +08:00
LeandroPG19 5a50f45b85 fix(webdriver): stop sync alert during page load from hanging the session
While a JavaScript dialog is open, the scheduler no longer waits for the
page load to finish. WebDriver Classic commands using the normal and eager
page load strategies now return, and the session stays usable.

Fixes #809
2026-10-11 06:48:09 +08:00
ldm0 631d4704ca feat(credentials): expose the secure CredentialsContainer interface 2026-10-11 06:38:17 +08:00
ldm0 f70ebff0a1 fix(svg): resolve detached font lengths with initial style
Resolve em and ex SVG lengths in disconnected documents using the initial computed font style. Keep live styled elements on their existing resolved-style path. Regressions cover detached HTML and XML documents, child realms, and inherited fonts. Extract the existing context resolver for reuse by the initial-font path; preserve live-element resolution unchanged. Factory-created lengths have no associated element, so their font basis remains initial when the factory is styled or removed.
2026-10-11 06:15:23 +08:00
ldm0 0487827c0b feat(fetch): retain explicit referrer state independently of request identity
Add native Fetch referrer selection and inheritance without changing request origin, cookie initiator or network partition. Apply the effective policy to the selected referrer when building outgoing headers, preserve explicit omission and about:client fallback, and copy policy to derived requests without copying integrity. Unit tests cover header selection, sanitization and request identity.
2026-10-11 06:05:43 +08:00
lanyue-llk 7e87eef4f4 fix(renderer): follow navigation queued at reached load milestone 2026-10-11 04:55:23 +08:00
lanyue-llk b52701f2fa fix(fetch): discard interaction results and follow navigation before dump 2026-10-11 04:55:23 +08:00
lanyue-llk 96218551c4 feat(fetch): allow explicit interaction before page dump 2026-10-11 04:55:23 +08:00
ldm0 5f5e1fff36 fix(window): retain the name of closed auxiliary windows
Validation on the original split base: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings.
Nextest and WPT reruns omitted at the user's request.
2026-10-11 01:44:57 +08:00
ldm0 f7a49daf6a refactor(performance): use generated native receiver checks 2026-10-11 01:39:25 +08:00
ldm0 9b726d5821 fix(accessibility): use descendant text alternatives in control names 2026-10-11 01:35:41 +08:00
ldm0 b2b51a5525 chore(release): bump version to 1.1.16 2026-10-10 19:24:34 +08:00
ldm0 af86134376 fix(xhr): preserve upload-listener preflight requirements 2026-10-10 19:03:01 +08:00
ldm0 dffbbd7bc6 feat(svg): retain transform functions and rotation centers 2026-10-10 18:50:39 +08:00
ldm0 a6a2f3fddd feat(svg): honor fill rules and reject nonfinite fill points 2026-10-10 18:45:28 +08:00
ldm0 daded0b420 feat(forms): model input value attribute modes in the core 2026-10-10 18:36:41 +08:00
ldm0 b4aa3aaea6 feat(forms): distinguish button Auto state in the core 2026-10-10 18:36:22 +08:00
ldm0 0ebd7fa9d6 feat(url): classify about srcdoc URLs precisely 2026-10-10 18:35:52 +08:00
ldm0 55159e2669 feat(url): compare and restore native origin values 2026-10-10 18:35:31 +08:00
ldm0 2d38fd438d feat(webidl): support EnforceRange signed long long 2026-10-10 18:34:31 +08:00
ldm0 f1e5bf23a3 fix(svg): preserve distance paths for shapes with one zero axis
Use a separate equivalent path for distance queries on rectangles and ellipses with one zero axis. Preserve their starting points and sweep while retaining empty rendered bounds. Core regression tests verify total length, endpoint and intermediate point queries, and distinguish fully empty geometry from a shape collapsed along one axis.
2026-10-10 18:33:52 +08:00
ldm0 f9fd34422a feat(dom): add lossless native DOM string values
Add the native DOMString value representation that preserves unpaired UTF-16 code units and exposes a scalar projection for native consumers. Equality and hashing retain original units; parser scalar appends preserve allocation capacity. Unit coverage includes surrogate identity and append boundaries. This PR provides the native value API; migrating all DOM producers is separate work.
2026-10-10 18:30:37 +08:00
ldm0 4c13737bc8 feat(webidl): add unrestricted binary32 float conversion
Add an explicit unrestricted_float converter to the shared WebIDL value and derive infrastructure. Preserve signed zero, NaN and infinities while rounding finite numbers to binary32; required arity, conversion side effects and original exceptions retain the existing contracts. Cross-realm tests compare Math.fround and check callee-realm TypeError.
2026-10-10 18:23:49 +08:00
ldm0 20b9a7a33c fix(runtime): allow removing bindings while debugger is paused 2026-10-10 17:51:54 +08:00
ldm0 60ad884d00 fix(runtime): preserve active bindings on disable 2026-10-10 17:51:54 +08:00
ldm0 980c7adcd8 test(fetch): stabilize HTTP failure output comparisons 2026-10-10 17:51:54 +08:00
ldm0 0b11db6cd2 fix(runtime): order binding mutations with subscription delivery
A delayed addBinding adapter could repersist and reapply bindings after a
later Runtime.disable had cleared them. Commit persistent add/remove
mutations in the renderer turn and project their frozen state with the
NativeTerminal, alongside enable/disable. Adapter completion no longer
writes a stale binding snapshot back to either owner.

Unregister V8 bindings during disable as well as clearing restore metadata,
so re-enabling cannot reactivate a removed binding. Include the retained
binding output and metadata in transport memory accounting.

Cover delayed addBinding, unpolled and reversed binding completions, and
binding calls after re-enabling. Document and test the existing committed
SessionSink disable success policy after owner retirement, including
ordered delivery and no duplicate terminal on late adapter completion.
2026-10-10 17:51:54 +08:00
ldm0 8d58d0fd59 fix(runtime): unify turn output and Runtime subscription delivery
Append ready command records directly to the Page journal and publish them
at the common owner-turn settlement boundary. Replace continuation-owned
record batches with exact cursors for internal completion dependencies.

Publish loaded-page frontend Runtime.enable/disable, frozen Inspector output,
and session updates through NativeTerminal. Apply subscriptions and replay
at ordered ingress so delayed adapters cannot reverse newer enable/disable
state. Complete disable binding updates in the originating renderer turn.
Retain exact predecessors for internal/collector completion success and
projection errors, and charge replay/V8 state to the transport memory budget.

Cover unpolled and reversed completions, cancellation after publication,
owner retirement, unresolved Promise output and concurrent ready replies,
and navigation handoff with controlled regression tests.
2026-10-10 17:51:54 +08:00
ldm0 cf8e4fcab6 fix(runtime): publish owner output during awaited expressions 2026-10-10 17:51:54 +08:00
ldm0 fce2d27fdc feat(indexeddb): add native UTF-16 name values
Add native IndexedDB name values with exact UTF-16 identity, ordering and hashing. Unpaired surrogates remain distinct even when diagnostic strings look identical, and storage usage accounting retains UTF-8 sizes with WTF-8 accounting for lone surrogates. Unit coverage checks cloned identity, hash/equality consistency, code-unit ordering and usage boundaries. Migrating all database producers and persistence paths is separate work.
2026-10-10 17:44:29 +08:00
ldm0 7d7189c897 fix(svg): reject invalid length mutations before changing state 2026-10-10 15:22:22 +08:00
ldm0 67fd39fb4a fix(webidl): finish dictionary ordering migration
Convert inherited EventInit fields before ICE error event payload members. Update the video decoder getter trace to match lexical dictionary member ordering.
2026-10-10 14:36:55 +08:00
ldm0 a3784688b7 fix(fetch): cancel raw downloads for unsupported output 2026-10-10 14:36:55 +08:00
lanyue-llk cc6c5ab684 test(canvas): use the default runtime context 2026-10-10 13:44:31 +08:00
ldm0 a423ba43b1 feat(webidl): derive dictionary member order and inheritance
Derive dictionary member conversion in lexical order and add explicit #[webidl(inherit)] support that converts ancestor dictionaries before derived members. Migrate the existing native EventInit-based dictionaries together so sorting does not mix inherited and own members. Reject incompatible inheritance attributes and duplicate own member names. V8 integration tests cover aliases, nested and inherited dictionaries, Proxy/getter traces, early exceptions and coercion ordering. Native renderer regressions cover twelve event constructors in two realms, flag preservation, and ancestor getter exceptions preventing all derived reads.
2026-10-10 13:43:23 +08:00
ldm0 7e93cca631 fix(indexeddb): validate native schema key paths before mutation
Validate native object-store and index schema key paths using Unicode identifier rules, including dotted paths and sequences. Preserve syntax/duplicate/invalid-option precedence and reject invalid metadata before mutating the backend. Map native Syntax and InvalidAccess errors to their DOM names. Tests cover Unicode paths, invalid sequences and failed creations leaving metadata unchanged. Renderer argument/receiver migration is separate.
2026-10-10 12:09:13 +08:00
ldm0 aaa5e747af fix(canvas): apply transforms and native conversion to fillRect
Validate fillRect receivers with shared brands before required numeric conversion. Rasterize transformed rectangles through the existing paint path, preserving the default path and compositing/alpha behavior; nonfinite or zero-area inputs and singular transforms draw nothing. Tests cover Window, child realm and Worker OffscreenCanvas, conversion order, negative sizes and transformed pixels.
2026-10-10 12:07:55 +08:00
ldm0 74b0a83ec2 fix(abort): release native roots after signal termination
Keep completed AbortSignal objects weakly referenced in native Window and Worker registries, and read Worker abort reasons from the signal's native private slot. Keep the synchronous dispatch snapshot alive through abort steps, reuse the controller's already initialized signal identity, and preserve live reasons and dependent signal behavior. GC regressions cover abandoned reference cycles and reasons still reachable from JavaScript.
2026-10-10 12:01:33 +08:00
ldm0 ae20434893 perf(accessibility): build request projections on demand 2026-10-10 11:53:21 +08:00
ldm0 5a87700637 test(puppeteer): cover accessibility visibility workflows 2026-10-10 11:53:21 +08:00
ldm0 4997e6d0d3 fix(accessibility): project computed visibility and composed names 2026-10-10 11:53:21 +08:00
ldm0 10fa77c49f test(puppeteer): cover shadow accessibility workflows 2026-10-10 11:53:21 +08:00
ldm0 37e8bf746c fix(accessibility): include shadow controls in AX snapshots 2026-10-10 11:53:21 +08:00
ldm0 aeabb8b9e8 fix(cssom): convert declaration values before mutation
Perform WebIDL string conversion before mutating live, detached, rule, and computed CSS declarations. Preserve thrown coercion values and run conversion before readonly errors; re-resolve native state after reentrant author code. Regressions cover named attributes, cssText, setProperty ordering, null and undefined, and exception identity. Resolve regression bindings from actual CSS object prototypes so legacy popup facades are exercised without requiring the separate popup-global constructor feature.
2026-10-10 04:00:56 +08:00
ldm0 579e180545 fix(indexeddb): preserve first primary keys in reverse unique cursors
Deduplicate the ascending index entries before reversing unique cursor traversal. Previously prevunique chose the last primary key in each duplicate index-key group. Preserve ordinary reverse traversal and cover multiple duplicated index keys in native cursor tests. Update the existing JavaScript cursor and collection regressions to assert the corrected primary-key choice.
2026-10-10 03:59:29 +08:00
ldm0 2c8f19277b fix(xml): validate numeric references using the XML Char production
Validate XML numeric character references using the XML Char production rather than HTML recovery rules. Keep carriage returns and C1/noncharacter values which XML permits, and reject forbidden controls/surrogates. Parser regressions cover decimal and hexadecimal references and retain strict failures.
2026-10-10 03:44:51 +08:00
ldm0 658bc8fcb4 fix(fonts): settle document fonts ready after loading and layout invalidation
Validation on this branch: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings.
Nextest and WPT reruns omitted at the user's request.

Includes the ablation-confirmed cleanup from 0e3ce99dcf.
2026-10-10 03:39:54 +08:00
ldm0 e87d039017 fix(dom): require owning hosts for native bridge identity
Fail reflector lookup when the wrapper's creation context has no native host,
instead of resolving its local ID through the caller's bridge. Require a host
for the current context before reading the wrapper cache or creating wrappers.

Cover colliding reflector IDs from an unowned V8 context and wrapper
materialization without a host, while preserving genuine wrapper identity.
The existing opener/popup adoption regression also passes.

Compared Chromium ScriptState::ForRelevantRealm and ToScriptWrappable: native
identity remains attached to the object and missing context data does not
select the caller's identity store.

Validation: cargo fmt --all; cargo clippy --workspace --all-targets
--all-features -- -D warnings; cargo nextest run --no-fail-fast.
Nextest: 19705 passed, 16 skipped, 32 threads, no retries.
2026-10-10 03:34:22 +08:00
ldm0 78f43c201b fix(dom): resolve foreign reflectors in their owning page
Validation on this branch: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings.
Nextest and WPT reruns omitted at the user's request.

Includes the ablation-confirmed cleanup from c1fe3ea895.
2026-10-10 03:34:22 +08:00
ldm0 6f2a5b1505 feat(webtransport): expose secure owned stream interface objects 2026-10-10 01:06:14 +08:00