Replace --cdp-screencast-fps with --screencast-interval. Accept positive
integer milliseconds, retain the --layout requirement, and default to
1000 ms. Pass the interval through server configuration and multiply the
Duration by everyNthFrame without converting through integer FPS.
Update CLI help and English/Chinese docs. Cover parsing, defaults, rejected
values and the removed flag, precise deadlines, and interval multiplication.
Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast
Own callback microtask nesting in with_webidl_callback_contexts so operation
lookup, invocation, and return conversion share one boundary. Exit the
incumbent scope before Scoped-policy checkpoints and preserve Auto timing.
Route scripts, functions, modules, and constructors through named renderer
entry points, including worker execution. Keep the generic scope helper
private and remove manual callback wrappers from callers.
Cover microtask policies, exception cleanup, and incumbent cleanup ordering
with regression tests. Guard script and module execution entry points with
the existing source inventory checks.
Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast
Cached child-document wrappers reapplied their current owner's native prototype,
overwriting JavaScript changes and changing prototypes during adoption. Return
cached wrappers directly and remove the custom-element exceptions and the
owner-document prototype correction from wrapper creation.
Create child Document wrappers in their owning context, deferring creation for
unmaterialized initial empty frames. Choose the receiver's creation context at
DOM return boundaries, including splitText, shadow and template access, forms,
Range and XPath results, and named Window access. Collection indexing and named
access use the collection's context. Keep traversal results and NodeFilter
arguments in the node document's realm as required by NodeWrapInOwnContext.
Wrapper creation uses the selected context's intrinsic interface prototype
without reading author-visible constructors or repairing prototypes later.
Cover changed and null prototypes, adoption, child Document and Range realms,
borrowed DOM methods, property interceptors, collections, replaced public
constructors, and isolated-world wrapper identity. Exercise first access before
other APIs can hide an incorrect creation realm by populating the wrapper cache.
Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (17,776 passed, 13 skipped)
Remove constructor-name-based prototype repair after creation and upgrade.
Keep the prototype set by JavaScript, including null and changes made before
an upgrade fails, and synchronize that actual value across bridge wrappers.
Cached wrappers must retain it during construction and after failure; new
fallback wrappers still receive their owner-realm native prototype.
Add regression coverage for constructor-selected prototypes in the main
document and iframes, plus failed creation's original and fallback objects.
Only finalize failed upgrade wrappers if the construction stack shows that HTMLElement construction consumed the pending wrapper. Throwing or returning a different object before super must leave the original prototype intact.
Add main-window and iframe regressions for both failure paths, including discarded attribute and connected reactions.
Expose native MicrotasksScope bindings and use them explicitly at Moli script, module, callback, constructor, and popup execution boundaries. Keep rusty_v8 call APIs unchanged.
Checkpoint custom element constructors before validation only when no outer script or microtask is active. Cover parser, document.write, createElement, and host-owned popup execution; update the document.write reaction-order regression.
Apply maxlength to user text insertion, preserve complete surrogate pairs,
and keep selection and replacement offsets in UTF-16 units. Cover CDP
input, execCommand insertText, and setRangeText.
Keep keyboard movement and deletion, including execCommand deletion, on
complete surrogate-pair boundaries while exposing UTF-16 offsets.
Source: 3be5eb5e37
Upgrade wuff to 0.2.9 with compatible version requirements in the layout
and renderer test dependencies. Add a regression proving that corrupt
Brotli data returns a decode error and preserves an existing font.
Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast: 17574 passed, 13 skipped
- Release verification: the previous SIGABRT sample renders with fallback;
valid-font screenshots remain byte-identical
Read Chrome localStorage snapshots through moli-leveldb-parser with
zerocopy layouts. Keep the LevelDB engine in test dependencies and port
Chromium reader scenarios with reproducible native fixtures.
Share WAL-aware SQLite snapshots and merge localStorage by origin and
UTF-16 key. Read all sources and required destination files before
replacing cookie or localStorage data.
Validation:
- cargo fmt --all
- cargo clippy --workspace --all-targets --all-features -- -D warnings
- cargo nextest run --no-fail-fast (17573 passed, 13 skipped)
Decode text and JSON consumers with UTF-8 BOM removal while retaining the existing JSON parser and all binary consumers. Cover constructed Request/Response bodies and asynchronously split Response streams, repeated and misplaced BOMs, malformed UTF-8, UTF-16 markers, MIME charset independence, SyntaxError, and raw binary/form values.
Source: 3c3bd08064
Accept the 253-header WPT fixtures using the same bounded 512-header limit as wptserve. Exercise both request and response parsing while retaining count and line-length rejection.
Source: 8aa635acc5
Serve the dynamic stylesheet counter and consume counts when queried. Share counts across fixture ports while isolating them from Fetch stash entries. Cover HEAD requests, per-ID separation, and read-and-clear behavior.
Source: 79a997c10d