Render real web pages: Goanna renders https://example.com over TLS

Make the test URL overridable via $JIHAD_URL. Rendered live https://example.com
end-to-end — real network + TLS (currentURI=https://example.com/) + layout +
fonts + link styling — captured to docs/jihad-render-example-com.png ("Example
Domain" heading, body text, blue "Learn more" link). Confirms UXP/Goanna renders
real web content in the Jihad render backend, not just data: URLs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
NotAlexNoyleandClaude Opus 4.8 committed 2026-06-30 23:38:08 -04:00
1 parent 2be7943273
commit bc363f6c24
3 files changed
+10 -3

No files matched your search

+1 -1
View File
@@ -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 |
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+9 -2
View File
@@ -275,11 +275,18 @@ int main(int argc, char** argv) {
nsCOMPtr<nsIWebNavigation> nav = do_QueryInterface(wb);
if (!nav) { fprintf(stderr, "[embed_load] FAIL: QI nsIWebNavigation\n"); return 5; }
const char16_t* url = u"data:text/html,<title>Jihad</title>"
// 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,<title>Jihad</title>"
u"<body style='background:%23224488;color:white;font-family:sans-serif;font-size:48px'>"
u"<h1>Goanna inside, webOS alive, inshallah.</h1></body>";
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