Join Nostr
Kind 1621
Published at
2026-04-02 16:18:39 UTC
Kind type
1621
Event JSON
{ "id": "5f1249e43a7542beadcc9fb41e475ee8c68d391c29ac7a9e416bf3ea1b5d9a4e", "pubkey": "56e9936d5cb44ddd7ab8c506fbfc8cc621431a7e030f1c8b8bce52ca17ca9838", "created_at": 1775146719, "kind": 1621, "tags": [ [ "a", "30617:336f319763657d6b0e65a5b5876719e8c8dcdcf9396852be71ee26b73368b29b:iris-browser" ], [ "p", "336f319763657d6b0e65a5b5876719e8c8dcdcf9396852be71ee26b73368b29b" ], [ "subject", "Linux child webview renders only in lower half (top half black)" ], [ "t", "bug" ] ], "content": "# Linux child webview renders only in lower half (top half black)\n\n## Summary\n\nOn Linux, Iris child webviews render only in the lower half of the available content area. The upper half remains black/empty. This persists across window resizes and across Wayland/X11 runs.\n\n## Expected behavior\n\n- Child webview content starts directly below the toolbar.\n- Child webview fills the remaining content area.\n- Resize keeps child webview aligned and full-height.\n\n## Actual behavior\n\n- Child page appears only in lower half.\n- Top half of child area is black/empty.\n- Resizing does not correct the offset/split behavior.\n\n## Steps to reproduce\n\n1. Run:\n\n```bash\ncd /home/c03rad0r/hashtree/apps/iris\npnpm run tauri:dev\n```\n\n2. Open `https://google.com` (or another external page).\n3. Observe half-height rendering (black top area).\n\n## Environment\n\n- OS: Ubuntu 25.10 (Linux)\n- Session: Wayland (`XDG_SESSION_TYPE=wayland`)\n- Also tested: `GDK_BACKEND=x11` (same result)\n- App stack: Tauri v2 + WRY/WebKitGTK + Svelte frontend\n\n## Important test-method note (discovered late)\n\nReliable validation requires killing stale dev processes before each run:\n\n```bash\npkill -f \"pnpm run tauri:dev|target/debug/iris|vite\" || true\n```\n\nThis was introduced late in debugging. Before adding this step, some failed runs were confounded by stale process state (including Vite port conflicts and inconsistent runtime behavior).\n\nEven with this cleanup in place, the split-screen symptom still reproduces on the debug branch.\n\n## Notes from instrumentation\n\n- Frontend layout calculations are internally consistent:\n - `windowInnerHeight: 364`\n - `toolbarHeight: 48`\n - `childBoundsTop: 48`\n - `childBoundsHeight: 316`\n - `48 + 316 = 364`\n- So frontend bounds math appears correct.\n- Native behavior still looks inconsistent with requested bounds on Linux (requested y/height not reflected visually).\n\n## What we already tried\n\n### Runtime/env workarounds\n\n- `GDK_BACKEND=x11`\n- `WINIT_UNIX_BACKEND=x11 GDK_SCALE=1 GDK_DPI_SCALE=1`\n- `WEBKIT_DISABLE_DMABUF_RENDERER=1 WEBKIT_DISABLE_COMPOSITING_MODE=1`\n- Mandatory clean restart before each validation run:\n - `pkill -f \"pnpm run tauri:dev|target/debug/iris|vite\" || true`\n\nResult: no fix.\n\n### Native layout changes (`apps/iris/src-tauri/src/nip07.rs`)\n\n- Linux logical vs physical bounds strategies\n- Removed `.auto_resize()` builder usage\n- Forced `set_auto_resize(false)` + explicit bounds updates\n- Tried `set_position` + `set_size` path\n- Added hide/apply/show flow\n- Added delayed bounds retries (0ms, 80ms, 220ms)\n- Reused retry logic in `set_webview_bounds`\n- Tried zoom corrections (`scale`, `1/scale`)\n- Tried page-load `window.scrollTo(0,0)` reset\n\nResult: no fix.\n\n### Frontend checks\n\n- Verified toolbar/viewport inset logic and automation updates\n- Confirmed URL bar is not taking half the space (toolbar ~48px)\n\nResult: no frontend bug identified.\n\n## Minimal hypothesis\n\nLikely Linux child-webview geometry/compositor issue in Tauri/WRY/WebKitGTK path where child bounds are overridden or misapplied at runtime.\n\n## Request for guidance\n\n1. Are there known Linux child-webview issues matching this exact symptom?\n2. Is there a canonical Linux-safe attach/resize sequence for `window.add_child(...)` on HiDPI?\n3. Is this tied to specific WebKitGTK versions/regressions?\n4. Should Linux fallback to single-webview+iframe mode for stability?\n\n## Related local report\n\n- Detailed report with chronology: `apps/iris/WEBVIEW_LOWER_HALF_DEBUG_REPORT.md`", "sig": "baaa473290f03066a76c30d434e9025bc7faf2b3be878275b4e910b0c963a49281666fff08d606770c84cca05836993961739cfa320704e2eec92887fb068460" }