Repository navigation
Releases: cutetailbud/ff-ruyijs
Releases · cutetailbud/ff-ruyijs
Release list
v0.3.0
ruyijs 0.3.0 adds macOS arm64 and Linux x86_64 wheels to PyPI. GitHub Actions now builds the wheels for all three platforms from the official Firefox 159.0 source.
python -m pip install --upgrade ruyijs| Platform | Wheel | Notes |
|---|---|---|
| Windows x64 | win_amd64 |
js.exe and mozglue.dll built from the Firefox 159.0 source on CI; Necko transport as in 0.2.1 |
| macOS arm64 | macosx_26_0_arm64 |
macOS 26 or later; direct HTTPS through libnecko_core / libnecko_quic; no proxy support yet |
| Linux x86_64 | manylinux_2_39_x86_64 |
glibc 2.39 or later; #5 by @Starktomy; bundles its libraries and the Necko helper's Python |
- Source: the official Firefox source is the
firefox/submodule (mozilla-firefox/firefoxatFIREFOX_159_0_RELEASE). - Build: one run of
.github/workflows/wheels.ymlbuilds SpiderMonkey, Skia and NSS on each runner, then ruyijs and the wheel. - Tests: each installed wheel is tested offline and with one real page load.
- Fixes: this release also includes the Firefox 159 parity fixes made on
mainsince 0.2.1: CSSOM serialization, the cascade, iframe timing, layout, and canvas colour and text.
ruyijs-runtime-0.3.0-win-amd64.zip is the Windows runtime that runtime.json pins for source builds. The changes are listed in CHANGELOG.md.
v0.2.1
Fixed
- Timer precision is Firefox 159's:
performance.now(),timeOrigin,
Date.now(),Event.timeStampand every navigation / resource time are
clamped to 1 ms with Firefox's jittered rounding (nsRFPService), one seed
per document.Event.timeStampis on the document's performance timeline. - Navigation and resource timing report the measured DNS, connect and TLS
phases from Necko (a reused connection readsfetchStart, as in Firefox);
a browser-initiated load'sfetchStartprecedesnavigationStart.
deliveryTypeis in Firefox's member order; unreached milestones read 0. - Necko resolves IP literals without a lookup and caches names
(network.dnsCacheExpiration60 s, 1600 entries). - Layout: CSS margin collapsing, 17 px classic scrollbars on the viewport and
scroll containers, rootclientWidth/HeightandscrollWidth/Heightfrom
the scrollport,scrollTopMax/scrollLeftMax,clientTop/
clientLeft,window.scrollMaxX/Y. - Fonts: SimSun line height (bad-underline metrics), the Arial default when no
listed family is installed, Firefox's per-script system fallback list. - SVG text
getBBox: font box versus frame descent, and no glyph ink below
20 px (text-rendering: auto). - Example result files no longer ship in the wheel.
v0.2.0
Added
- Canvas 2D draws through Firefox 159's own Skia (
gfx/skia), set up like
Firefox'sDrawTargetSkia: fills, strokes, paths,clip, gradients,
patterns,roundRect,drawImage, shadows andfillText/strokeText. Context(tls="100".."159")selects the Firefox release whose TLS
ClientHello, HTTP/2 settings and HTTP/3 priorities Necko sends.DOMMatrix/DOMMatrixReadOnly: every operation,fromMatrix,
fromFloat32/64Array, CSS transform strings,transformPoint,toString.
Fixed
Originand the bodyContent-Typeon fetch / XHR /sendBeacon;
Sec-Fetch-Siteacross redirects;window.originAgentCluster.window.eventduring microtasks queued by an event listener.- Font fallback by language group, element
lang, SVG presentation
attributes and SVG textgetBBox;ctx.fontread-back. python -m ruyijs.exampleslists the examples that ship; DataDome output on
a Chinese Windows console; the Akamai example keeps its User-Agent and TLS
version together (--tls).
Changed
- The bundled runtime is rebuilt on Firefox 159 (SpiderMonkey, Necko, Skia).