code wiki / _hdl_build / nx_aw_browser_gate.nx
nx_aw_browser_gate.nx
buildroot/runtime/_hdl_build/nx_aw_browser_gate.nx
about
nx_aw_browser_gate.nx -- SOVEREIGN-BROWSER referee for the andelinwest client surfaces (operator:
"make sure that everything can work on the nishi os and nishi browser sovereign"). Drives the REAL
browser core (br_layout / br_draw_fb_at / br_hit_link -- the ONE core Linux/Windows/NishiOS ship)
over the REAL emitted pages (web_assets/sites/andelinwest, the same bytes nx_siteedit publishes):
T1 index.html LAYS OUT (ok=1, real page height)
T2 the whole-site NAV is CLICKABLE: a doc-coordinate sweep of br_hit_link finds ALL FOUR
/practice/<slug>.html links (what a NishiOS user can click to navigate -- GET-nav needs no JS)
T3 a practice page lays out (ok=1) -- the click target renders
T4 index RENDERS to a framebuffer with real ink (drawn px > threshold), receipt PNG written to
knowledge/status/aw_browser_index.png (eyeball evidence)
T5 NEG: a click in the dead gutter hits NO link (hit-testing is real, not always-true)
T6 HONEST GAP ROWS (documented, not asserted green): the portals' INTERACTIVE flows (login
typing, form POST, fetch/sessionStorage JS) are BROWSER-ENGINE rungs the core lacks today --
text-input + form-submit + a session carrier. Public GET surfaces (site pages, /search SERPs,
/doc views, portal shells as READ-ONLY pages) are what works now. This gate prints the map.
GREEN iff T1-T5 pass. Appends knowledge/status/aw_browser_gate.log. license_tier: ORIGINAL
expect_exit: 0
dependencies 1 imports · 0 importers
imports: nx_browser_render.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 33 | const AWB_W: i64 = 500 |
functions
| 20 | func g_w(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } |
| 21 | func g_n(v: i64) -> i64 { let b: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)} let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1} while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1} var i: i64=0; while i<k{b[i]=t[k-1-i];i=i+1} sys_write(1,b,k); return 0 } |
| 22 | func g_lw(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 } |
| 23 | func g_len(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n } called by 1: g_href_eq |
| 25 | func g_href_eq(buf: *u8, off: i64, len: i64, lit: *u8) -> i64 |
| 38 | func g_link_clickable(p: *Page, href: *u8) -> i64 |
| 64 | func d_probe(label: *u8, htm: *u8) -> i64 |
| 106 | func main() -> i64 |