Assesses the original concern that the weft-appd UI endpoint for the
system-ui.html page would require custom SpiderMonkey bindings injected
into Servo.
Conclusion: custom SpiderMonkey bindings are not required. Servo's
standard WebSocket API satisfies all UI endpoint requirements (send
requests, receive push notifications, structured JSON payloads).
Documents:
- What the UI endpoint needs (send/receive structured messages,
session-scoped, local transport).
- Servo's relevant capabilities: WebSocket implemented, fetch
implemented, custom embedder APIs not stable/not needed.
- Proposed implementation: tokio-tungstenite WebSocket listener in
weft-appd on 127.0.0.1; port published to XDG_RUNTIME_DIR for
discovery; broadcast channel for APP_READY push to all connected
clients; JSON framing (same Request/Response types via serde_json).
- Scope boundaries: does not replace the Unix socket path (servo-shell
native IPC); does not require Servo modification.