# zebkit 0.3.0 Chromium 157, and with it HTML in canvas: a page draws its own elements into a 2D canvas, turned, scaled or reflected, and they stay elements, typed into and clicked where they are drawn. Pages are in the system's locale again on every system. | Archive | System | Unpacked | `.tar.xz` | |---|---|---:|---:| | `zebkit-0.3.0-x86_64-unknown-linux-gnu.tar.xz` | Linux x86-64, glibc 2.17 or newer | 183.7 MiB | 62.3 MiB | | `zebkit-0.3.0-aarch64-apple-darwin.tar.xz` | macOS, Apple silicon | 153.1 MiB | 41.8 MiB | | `zebkit-0.3.0-x86_64-pc-windows-msvc.tar.xz` | Windows 10 or newer, x64 | 252.2 MiB | 75.6 MiB | The Rust crates `zebkit`, `zebkit-rs` and `zebkit-build` 0.3.0 download these archives, each checked against its SHA-256 in `bindings/rust/zebkit-rs/engines.txt`. The Python binding `zebkit` 0.3.0 is the binding alone; its engine is this release's archive. ## What changed since 0.2.1 **Chromium 157.0.8103.38** (from 155.0.8059.84). The 61 patches of `patches/series` carried forward, sixteen of them written again where 157 changed the code they touch, and one new (1083, below). The user agent is Chrome 157's. **HTML in canvas** ([the proposal](https://github.com/WICG/html-in-canvas), on in Chrome 157): `` with `drawable` children, `drawElementImage()` in the canvas's `paint` event, `requestPaint()`. `tests/engine/html_in_canvas.py` checks that a drawn button is in the view's pixels where it is drawn, that hit testing, the view's own mouse and Playwright's `click()` reach it there, and that it moves with its drawing. `examples/html-in-canvas.html` is a form drawn turned, with its reflection, that still types and submits: ./window file://$PWD/examples/html-in-canvas.html **The system's locale.** Chromium 157 starts its default locale at en-US until the embedder sets one, as Chrome does from its language packs; on 157 pages would have been in English everywhere. `patches/1083` starts it at the system's, en-US without one, which also replaces the Windows-only workaround of 0.2.x. `tests/engine/system_locale.py` checks a Japanese and a C locale. **Fullscreen needs focus.** As in Chrome 157, only a focused view may go fullscreen. `View.focus()` is in Python and `zebkit-js` too, as it was in C and Rust. **Popups at their view's scale.** Under `--headless`, a `