github lexmount/moli v1.1.20
Moli v1.1.20

latest release: v1.1.21
4 days ago

What's Changed

IndexedDB & SQLite

  • feat(indexeddb): replace JSON storage with SQLite #2141
  • refactor(indexeddb): use Tokio owners and defer result loading #2153
  • feat(indexeddb): add transactional SQLite schema renames #2156
  • fix(indexeddb): preserve UTF-16 database name identity #2131
  • fix(indexeddb): preserve UTF-16 schema names through SQLite #2157
  • fix(indexeddb): expose native readonly schema attributes #2130
  • feat(indexeddb): store native DOMRect snapshots with shared codecs #2110
  • feat(indexeddb): extend native geometry snapshots with shared codecs #2135
  • test(indexeddb): retain live cursor mutation coverage on SQLite #2154

IndexedDB Transactions, Cursors & APIs

  • feat(indexeddb): admit transactions by scope and mode #1285
  • feat(indexeddb): add native FIFO connection request leases #1283
  • feat(indexeddb): coordinate native versionchange acknowledgements #1284
  • fix(indexeddb): isolate scoped commits and abort failed transactions #2083
  • fix(indexeddb): connect transaction admission across realms and workers #2085
  • fix(indexeddb): prepare writes before admitting requests #1956
  • fix(indexeddb): preserve native key types and conversion errors #2072
  • feat(indexeddb): support native records and bulk query options #2074
  • fix(indexeddb): protect cursor state and collect native snapshots #2076
  • fix(indexeddb): wait for upgrade requests before completing open #2077
  • fix(indexeddb): validate pending cursor iteration #2079
  • fix(indexeddb): store native DOMException payloads #2103
  • fix(indexeddb): preserve native database connection attributes #2099
  • fix(indexeddb): preserve native transaction attributes and abort reasons #2101
  • fix(indexeddb): preserve explicit committing transaction state #2105
  • fix(indexeddb): abort invalid unique index builds in request order #2109
  • fix(indexeddb): deduplicate multiEntry index keys per record #2096
  • fix(indexeddb): restore upgrade metadata and handle state on abort #1493
  • fix(indexeddb): release rejected synchronous write requests #1287
  • refactor(indexeddb): derive transaction scope and mode conversion #1998
  • fix(indexeddb): expose required argument counts in method lengths #1806
  • fix(indexeddb): expose a readonly worker prototype accessor #656
  • fix(indexeddb): reserve open results before upgrade completion callbacks #2114
  • fix(indexeddb): preserve native request attributes and factory result state #2115

Fonts & Font Loading

  • fix(fonts): reject malformed FontFace payloads #312
  • fix(fonts): share native FontFace loading across CSS and JS #492
  • fix(css): enable native variable font properties #1778
  • fix(cssom): serialize computed font from native longhands #1780
  • fix(css): use native font size adjustment shorthand semantics #1811
  • fix(fonts): bind FontFace requests to their creation Window #1886
  • fix(fonts): retain aggregate query Promise settlement state #1888
  • fix(fonts): normalize computed descriptor range endpoints #1889
  • fix(fonts): share full capability ranges with native layout #1890
  • fix(fonts): include resolved fallback sources in resource identity #1891
  • perf(fonts): reuse payloads and incrementally register faces #367
  • fix(fonts): retain pending loads across promise chains #1899
  • fix(fonts): retain registrations shared by CSS declarations #1900
  • fix(fonts): keep CSS-connected faces out of manual membership #1901
  • fix(fonts): admit local-only CSS font declarations #1902
  • fix(fonts): preserve generic families in font-set queries #1903
  • fix(fonts): share Chromium-compatible Unicode family matching #1904
  • perf(fonts): register validated font data without copying #1908
  • fix(fonts): separate declaration identity from shared sources #1909
  • refactor(fonts): reuse native descriptors for font queries #1910
  • perf(fonts): batch membership retirement and update priorities in place #1911
  • refactor(fonts): name font selection priorities #1913
  • fix(fonts): decouple automatic font loading from layout #1958
  • fix(fonts): skip discarded anonymous flex and grid text #2102
  • fix(layout): apply font-optical-sizing auto as opsz by @Supersynergy in #1821

WebIDL, Conversion & Native Templates

  • refactor(webidl): derive required RTCError payload arguments #1844
  • refactor(webidl): share native event dictionary ancestors #1852
  • refactor(webidl): complete audited dictionary derive migrations #1879
  • fix(webidl): preserve UTF-16 DOMException constructor arguments #1969
  • fix(webidl): build immutable Window prototype chains in native templates #1995
  • fix(webidl): isolate HTML constructor Proxy handlers from prototype pollution #1988
  • refactor(webidl): derive the required Touch initialization dictionary #2008
  • fix(webidl): derive restricted float conversion for SVGLength values #2010
  • fix(webidl): enforce native Uint8Array buffer policies #1301
  • feat(webidl): add Clamp unsigned long conversion #1243
  • refactor(webauthn): use shared dictionary conversions #1843
  • refactor(webrtc): derive required ICE error event payload arguments #1846

WebIDL Receiver Validation

  • fix(webidl): derive idb index receiver checks #1938
  • fix(webidl): derive audio param receiver checks #1939
  • fix(webidl): derive idb database receiver checks #1936
  • fix(webidl): derive idb object store receiver checks #1937
  • fix(webidl): derive idb cursor receiver checks #1935
  • fix(webidl): derive SVG image aspect ratio receiver checks #1934
  • fix(webidl): derive location own receiver checks #1933
  • fix(webidl): derive node reflection receiver checks #1932
  • fix(webidl): derive svg gradient receiver checks #1931
  • fix(webidl): derive svg text position receiver checks #1930
  • fix(webidl): derive svg animated value receiver checks #1929
  • fix(webidl): derive svg matrix receiver checks #1928
  • fix(webidl): derive svg transform list receiver checks #1926
  • fix(webidl): derive svg point list receiver checks #1925
  • fix(webidl): derive svg length list receiver checks #1921
  • fix(webidl): derive dom token list receiver checks #1918
  • fix(webidl): derive element animation receiver checks #1917
  • fix(webidl): derive touch receiver checks #1916
  • fix(webidl): derive data transfer receiver checks #1915
  • fix(webidl): validate XMLSerializer receivers through native bindings #1914
  • fix(webidl): derive svg transform receiver checks #1927
  • fix(webidl): derive svg number list receiver checks #1924
  • fix(webidl): derive svg length receiver checks #1920
  • fix(webidl): derive input value receiver checks #1919
  • fix(webidl): validate XMLHttpRequest members with native receivers #2025
  • fix(webidl): enforce Window global accessor and timer receivers #2050

DOM, HTML & XML

  • fix(dom): validate AbortController receivers with native brands #1853
  • fix(dom): convert MutationObserver options through WebIDL #1849
  • fix(dom): validate traversal receivers with native brands #1859
  • fix(dom): validate NamedNodeMap receivers and Attr arguments #1860
  • fix(dom): enumerate collection query methods #1869
  • fix(dom): derive getRootNode options conversion #1948
  • fix(dom): share native Node backing across registered proxies #1861
  • fix(dom): validate Range receivers with native brands #1862
  • fix(dom): convert Range arguments through native WebIDL brands #1863
  • fix(dom): preserve native Element identities when copying between documents #1960
  • fix(dom): resolve DOMImplementation in the Document realm #1991
  • fix(dom): allocate traversal objects in their Document realm #1990
  • fix(dom): retain the Document realm in Range factories #1996
  • fix(dom): allocate Attr factory results in the Document realm #1989
  • fix(dom): retain lossless DocumentType strings in native copies #2012
  • fix(dom): expose immutable MutationRecord prototype attributes #2031
  • fix(dom): allocate windowless nodes with owner realm intrinsics #2027
  • fix(dom): derive insertAdjacentElement argument validation #2034
  • fix(dom): allocate detached Document attributes in their realm #2124
  • fix(dom): preserve attribute identity and same-value mutation records #2123
  • fix(dom): construct internal objects through captured intrinsics #2125
  • fix(html): preserve child meta refresh with shared scheduling #1661
  • fix(domparser): stop recovering element trees after XML prologue errors #2052
  • fix(xml): reconcile namespace declarations during serialization #2126
  • fix(dom,svg): preserve template documents and SVGLength float semantics #2086
  • fix(dom,svg): complete template adoption and SVGLength float semantics #2089
  • fix(intl): preserve Unicode boundaries and simplify locale validation #2003
  • fix(errors): avoid synthetic stacks on script-created DOM exceptions #1997
  • fix(errors): deserialize exception data without native failure stacks #1999
  • fix(modules): snapshot the current Document completion owner #2030

Events, EventTarget & Input

  • refactor(events): use shared WebIDL conversion for native event dictionaries #1847
  • fix(dom): inherit EventTarget operations from its prototype #1858
  • refactor(events): separate target storage, handlers, and dispatch identity #1896
  • refactor(events): unify EventTarget inheritance, identities and native dispatch #1898
  • fix(events): preserve trust for native child Document events #2055
  • test(events): cover listener identity and handler changes during dispatch #2041
  • fix(window): dispatch focus and blur through native Window receivers #2042
  • fix(touch): protect native TouchList indexed entries #2009
  • fix(input): populate screenX/screenY on dispatched input events by @Supersynergy in #2081
  • fix(input): carry read-only DataTransfer through drop editing events #1836
  • fix(input): isolate DataTransfer event views from shared drag data #2097
  • fix(input): preserve root screen coordinates in iframe events #2100

CDP, BiDi, WebDriver & Cookies

  • feat(cdp): expose Moli-Version in /json/version #1897
  • fix(cdp): publish DOM node paths before returning frontend IDs #2060
  • feat(cdp): implement Input.setInterceptDrags and Input.dragIntercepted by @Supersynergy in #1822
  • fix(cdp): preserve prepared documents when enabling Page #2142
  • fix(webdriver): generate UUID v4 Classic session IDs #2021
  • fix(storage): preserve cookie identities in BiDi deletion #2073
  • fix(storage): honor BiDi cookie partition descriptors #2088
  • fix(bidi): resolve child-frame cookie storage owners #2091
  • fix(bidi): preserve iframe identity and event ownership #2093
  • fix(network): accept Network.deleteCookies with an unparseable partitionKey by @andersonrfsilva in #2065

Fetch, XHR, WebSocket & Networking

  • refactor(network): use anyhow for subresource startup errors #1905
  • refactor(network): distinguish stylesheet declarations from requests #1907
  • fix(xhr): keep open exceptions in the invoked method realm #1870
  • fix(xhr): preserve abort state transitions and reentrant requests #1961
  • refactor(xhr): centralize transitions and group pending state #1967
  • fix(xhr): cancel the previous Window request when reopening #2026
  • fix(xhr): decode BOM-prefixed JSON responses #2067
  • fix(multipart): normalize fields and encode selected form charsets #1944
  • fix(forms): serialize multipart submissions with their selected encoding #2028
  • fix(upload): derive selected file MIME types from extensions #2004
  • feat(fetch): support curl-style cookie inputs and jar export #186
  • fix(websocket): derive shared close info dictionary conversion #1952
  • fix(websocket): derive stream options conversion before validation #1951
  • fix(websocket): use intrinsic Promise capabilities for WebSocketStream #2037
  • fix(websocket): settle stream writes in their terminal owner task #2038
  • fix(workers): expose the native WebSocketError interface #1940
  • refactor(streams): derive writable writer interface argument conversion #1987

CSS, Layout, SVG & Geometry

  • fix(cssom): convert adopted stylesheets with WebIDL and receiver realms #1851
  • fix(layout): exclude hanging trailing spaces from scrollable overflow by @sicko7947 in #1946
  • feat(css): support CSS text stroke and paint order by @sicko7947 in #1922
  • fix(css): restore default hyperlink colors #2005
  • fix(paint): unify synthetic weight and prepared glyph ink bounds #2019
  • fix(svg): convert transform method arguments as restricted floats #1986
  • fix(geometry): implement DOMPointReadOnly construction and factory #464
  • feat(geometry): implement native DOMQuad bindings #873
  • fix(geometry): preserve DOMMatrix dimension state #874
  • feat(geometry): clone native point quad and matrix values #2133
  • fix(canvas): retain factory result realms across document adoption #1992

Storage & Profiles

  • fix(storage): use temporary disk backing without a profile #2158
  • fix(storage): handle long Windows paths and prevent CI hangs #2146

Security, CORS & MIME

  • fix(cors): expose literal star headers for credentialed requests #1959
  • fix(mime): trim only HTTP whitespace in nosniff tokens #1871
  • fix(dom): use the link Document for hyperlink audit requests #2053
  • test(trusted-types): cover javascript navigation policy outcomes #2043

Performance, V8 & Internals

  • feat(v8): expose per-regexp backtrack limits #1945
  • refactor(protocol): complete synchronous state owner migration #2122
  • perf(runtime): trim workflow query forwarding and clones #2132
  • refactor: use SIMD escaping for HTML and XML text #2023

Media & Web Platform APIs

  • feat(webcodecs): implement native encoded video chunk values #1496
  • refactor(webcodecs): derive required chunk initialization dictionary #1950
  • feat(webrtc): implement native encoded frame value semantics #1478
  • refactor(webrtc): unify encoded frame metadata schemas #1962
  • fix(webaudio): expose per-context AudioListener state #2068
  • fix(media): read cue bookkeeping from native state #2039
  • fix(media): validate volume and queue native volumechange tasks #2054
  • feat(midi): retain native message and connection event payloads #1303
  • feat(webtransport): implement native error values and cloning #2111
  • fix(performance): report observer drops in callback realm #1943

PDF & Content Extraction

  • fix(page): accept generateTaggedPDF in Page.printToPDF by @andersonrfsilva in #2064
  • fix(html2md): preserve media resources and readable controls by @lanyue-llk in #1334
  • fix(html2md): preserve mathematical and inline formatting semantics by @lanyue-llk in #1335
  • fix(html2md): retain complex tables and referenced fragments by @lanyue-llk in #1336

Testing, Benchmarks & CI

  • fix(benchmark): confirm target removal after close races #1854
  • fix(benchmark): run explicit CDP WPT input through native automation #1855
  • fix(benchmark): select CDP for WPT testdriver cases #1856
  • fix(benchmark): route WPT permission changes through CDP #1857
  • test(frontend): identify the CDP command and checkpoint that timed out #1838
  • ci(frontend): increase network/storage and observation timeout budgets #1876
  • test(cdp-smoke): retain pre-cleanup Browser.close timeout evidence #1877
  • ci: move Chromium smoke to self-hosted Playwright runners #1884
  • fix(smoke): synchronize Chromium navigation and target resource checks #1895
  • test(wpt): refresh cases from full release run #1955
  • fix(smoke): wait for the committed document and retain navigation failures #1957
  • fix(benchmark): retain browser context for native WPT input #1963
  • fix(smoke): make browser synchronization and CI failures explicit #1965
  • fix(ci): cancel unfinished validation when a PR closes #1966
  • fix(ci): accept repeated CDP smoke results in regression reports #2024
  • fix(ci): cancel superseded main branch validation #2090
  • test(svg): verify deselectAll clears the owner Document selection #2049
  • test(worker): await XHR completion and CSP reports independently #2040
  • test(webidl): preserve exceptions at each event dictionary member #2056
  • test(observers): cover CSS token based margin emptiness #2048
  • test(wpt): expand IndexedDB baseline and fix crashtest navigation #2134

Documentation & Community

  • docs(cli): clarify logging for readiness timeout warnings by @sumerchoudhary78 in #1826
  • docs: add WeChat community badge #2057
  • docs: add WeChat badge to translated READMEs #2058
  • docs: align translated community badges with main README #2059
  • docs: add Product Hunt daily winner badge #2094
  • docs: crop black corners from README banners #2095

New Contributors

Full Changelog: v1.1.19...v1.1.20

Don't miss a new moli release

NewReleases is sending notifications on new releases.