code wiki / _hdl_build / nx_aw_browser_gate.nx

nx_aw_browser_gate.nx

buildroot/runtime/_hdl_build/nx_aw_browser_gate.nx

11283 B212 linesdepth 9pulls 29 transitivereach 0 importersview sourcekind gate/prooftopic aw
docsdependenciesstructsconstsfunctions

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

nx_browser_render.nx nx_aw_browser_gate.nx

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

main g_w d_probe br_layout br_slen sys_mmap rh_extract_styles sys_mmap ↻ nx_html_cursor_init nx_html_next_token _scan_name _is_name _is_void_element _lc nx_html_is_raw_text_tag _lc ↻ nx_html_consume_raw_text _lc ↻ _is_ws _lfd_name_eq _lfd_lc _rh_copy_css rh_filter_media sys_mmap ↻ rh_find rh_media_matches rh_find ↻ rh_num_after rh_digit cx_expand sys_mmap ↻ cx_collect cx_ch cx_is_ws cx_find cx_emit_span cx_ch ↻ cx_is_ws ↻ cx_emit_name cx_emit_span ↻

structs

none

consts

33const AWB_W: i64 = 500

functions

20func 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 }
called by 2: d_probemain
21func 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 }
called by 2: d_probemain
22func 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 }
23func 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
25func g_href_eq(buf: *u8, off: i64, len: i64, lit: *u8) -> i64
called by 2: g_link_clickabled_probe calls 1: g_len
64func d_probe(label: *u8, htm: *u8) -> i64
106func main() -> i64