You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c743835
Browse filesBrowse the repository at this point in the historyBrowse files
|`gosub_ipc`| Transport between the engine and its child processes |
36
40
37
41
For the full crate listing see [`docs/crates.md`](docs/crates.md).
38
42
@@ -41,76 +45,92 @@ For the full crate listing see [`docs/crates.md`](docs/crates.md).
41
45
42
46
The engine is under active development. What works today:
43
47
44
-
-**Multi-zone / multi-tab model** — zones isolate cookies and storage; tabs are controlled via `TabCommand`
45
-
-**Async networking** — streaming HTTP fetcher with priority queues, inflight coalescing, redirect handling, and per-zone cookie isolation
46
-
-**Event-driven UA interface** — `TabCommand` flows in; `EngineEvent` (navigation, downloads, redraw, crashes) flows out on a control bus, with per-resource detail on a separate opt-in stream
47
-
-**HTML5 and CSS3 parsing** — spec-compliant parsers for both, including shadow DOM (parsing, flat-tree traversal, CSS scoping)
48
-
-**Resource pipeline** — parser-driven sub-resource discovery; stylesheets, images, web fonts and data URLs all fetched through one fetcher, with hierarchical cancellation
49
-
-**Layout and paint** — block, inline, flex and grid via Taffy, floats, absolute and fixed positioning, and CSS tables via `gosub_lattice`
50
-
-**Form controls** — text editing, and colour / date / time pickers opened by the embedder through `EngineEvent::PickerRequested`
-**Conformance measurement** — a gated web-platform-tests run in CI, plus a reftest runner; see [docs/wpt.md](docs/wpt.md) for where the numbers stand
53
-
54
-
**[`docs/status.md`](docs/status.md) is the detailed version of this list** — per component,
48
+
-**Multi-zone / multi-tab model** - zones isolate cookies and storage; tabs are controlled via `TabCommand`
49
+
-**Async networking** - streaming HTTP fetcher with priority queues, inflight coalescing, redirect handling, and per-zone cookie isolation; `gemini`, `gopher` and `finger` next to `http(s)`, `data` and `file`
50
+
-**Process isolation** - on Linux, networking, cookies, image decoding, file-backed `localStorage` and rendering (with Parley or cosmic-text fonts) run in sandboxed child processes, on by default once the embedder calls `child_process::dispatch_with::<C>()` first in `main`; see [docs/process-isolation.md](docs/process-isolation.md)
51
+
-**Web security policies** - CORS, mixed content, referrer policy, ORB, an SSRF policy over address spaces, and per-document security state
52
+
-**Encrypted storage** - every SQLite store (cookies, localStorage, places, config) opens with an optional SQLCipher key
53
+
-**Event-driven UA interface** - `TabCommand` flows in; `EngineEvent` (navigation, downloads, redraw, crashes) flows out on a control bus, with per-resource detail on a separate opt-in stream
54
+
-**HTML5 and CSS3 parsing** - spec-compliant parsers for both, including shadow DOM (parsing, flat-tree traversal, CSS scoping)
55
+
-**Resource pipeline** - parser-driven sub-resource discovery; stylesheets, images, web fonts and data URLs all fetched through one fetcher, with hierarchical cancellation
56
+
-**Layout and paint** - block, inline, flex and grid via Taffy, floats, absolute and fixed positioning, and CSS tables via `gosub_lattice`
57
+
-**Mobile** - `<meta name="viewport">` layout width and pinch zoom through a visual viewport; the engine runs on Android, in-process
58
+
-**Form controls** - text editing, and colour / date / time pickers opened by the embedder through `EngineEvent::PickerRequested`
0 commit comments