You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rewrite chromium-headful + chromium-headless wrapper as a Go binary
Replaces the bash wrapper.sh shipped in both browser images with a single
Go binary (server/cmd/wrapper) that detects the headful vs headless
profile from supervisor's conf.d at boot.
The Go wrapper preserves behaviour parity with the bash scripts but
removes serial dead time on the boot path:
- Phase A starts xorg/xvfb, dbus, and chromedriver in a single
supervisorctl invocation; readiness is then probed concurrently.
- Envoy bootstrap (cert generation, NSS DB, template render) runs
in a goroutine alongside Phase A. Phase B gates on it because
chromium reads the system CA trust store at process start.
- Phase B starts chromium, kernel-images-api, and (headful) mutter
+ optional neko in one call so their bring-up overlaps chromium boot.
- Final readiness waits on the union of CDP, chromedriver,
forward-proxy, and (when enabled) neko + envoy in parallel.
Per-service tweaks:
- supervisor confs: startsecs=2 → 0 so supervisorctl start returns
as soon as the program is launched (Go probes readiness directly).
- init-envoy.sh: drop the trailing 50-iteration port poll and
curl-through-proxy test; the Go wrapper's waitAllReady covers it.
- Kraftfile cmd updated from /wrapper.sh to /wrapper.
Cosmetic + non-critical work (pulseaudio, --no-sandbox infobar
dismissal) runs off the hot path.
0 commit comments