diff --git a/context/impl/impl-overview.md b/context/impl/impl-overview.md index f08f255..a21dbd1 100644 --- a/context/impl/impl-overview.md +++ b/context/impl/impl-overview.md @@ -13,7 +13,7 @@ last_edited: "2026-06-30" | UI Shell | 3 | 4 | T-007/T-008/T-009 done; T-004(ui) R4 pending | | Engine Embedding & Build | 3 (T-010, T-013, T-019 demo) | 4 | libxul built; embed smoke passes; page loads; T-012 next | | Navigation, Loading & Events | demo | 6 | load lifecycle (START→…→STATE_STOP) observed end-to-end via embed_load; formal wiring to YAP msgs pending | -| Offscreen Rendering | **T-020+T-024 render→shmem** | 5 | **Goanna renders a page (docs/jihad-render-proof.png)** via BasicLayerManager CPU paint; GDK readback → **SysV shm ARGB32 + BrowserOffscreenInfo** (the BrowserServer framebuffer format); msgPainted wiring in the daemon next | +| Offscreen Rendering | **T-020+T-024 render→shmem** | 5 | **Goanna renders real web pages** — data: page (docs/jihad-render-proof.png) AND live **https://example.com over TLS** (docs/jihad-render-example-com.png) via BasicLayerManager CPU paint; GDK readback → **SysV shm ARGB32 + BrowserOffscreenInfo**; msgPainted wiring in the daemon next | | Offscreen Rendering | 0 | 5 | not started | | Input Bridging | 0 | 5 | not started | | Navigation, Loading & Events | 0 | 6 | not started | diff --git a/docs/jihad-render-example-com.png b/docs/jihad-render-example-com.png new file mode 100644 index 0000000..4e0cb4e Binary files /dev/null and b/docs/jihad-render-example-com.png differ diff --git a/render/goanna/test/embed_load.cpp b/render/goanna/test/embed_load.cpp index 33895b7..ed81f1d 100644 --- a/render/goanna/test/embed_load.cpp +++ b/render/goanna/test/embed_load.cpp @@ -275,11 +275,18 @@ int main(int argc, char** argv) { nsCOMPtr nav = do_QueryInterface(wb); if (!nav) { fprintf(stderr, "[embed_load] FAIL: QI nsIWebNavigation\n"); return 5; } - const char16_t* url = u"data:text/html,Jihad" + // URL is overridable via $JIHAD_URL (e.g. a real http(s):// site); defaults to + // a self-contained data: page so the test needs no network. + const char16_t* defUrl = u"data:text/html,Jihad" u"" u"

Goanna inside, webOS alive, inshallah.

"; + nsString urlStr; + const char* envUrl = getenv("JIHAD_URL"); + if (envUrl && *envUrl) urlStr = NS_ConvertUTF8toUTF16(envUrl); + else urlStr = defUrl; + printf("[embed_load] loading: %s\n", NS_ConvertUTF16toUTF8(urlStr).get()); chrome->mDone = false; // reset per-load (Codex P2: needed if browser reused) - rv = nav->LoadURI(url, nsIWebNavigation::LOAD_FLAGS_NONE, nullptr, nullptr, nullptr); + rv = nav->LoadURI(urlStr.get(), nsIWebNavigation::LOAD_FLAGS_NONE, nullptr, nullptr, nullptr); printf("[embed_load] LoadURI rv=0x%x\n", (unsigned)rv); // Pump the XPCOM thread event queue (canonical embedding loop) plus any