WEFT_OS/crates
Marco Allegretti ed5a69bb74 feat(servo-shell): per-app WebView lifecycle driven by appd events (servo-embed only)
Task 10 -- App WebView lifecycle.

appd_ws module (servo-embed gated):
  Background thread connects to the appd WebSocket on startup.
  Sends QUERY_RUNNING to receive initial running sessions.
  Translates LAUNCH_ACK -> AppdCmd::Launch and APP_STATE stopped
  -> AppdCmd::Stop, then wakes the winit event loop via the
  shared EventLoopWaker.

embedder changes:
  App struct gains app_rx (mpsc receiver), app_webviews
  (HashMap<session_id, WebView>), active_session, and a stored
  rendering_context used when creating app WebViews later.

  create_app_webview(): resolves weft-app://<app_id>/index.html
  to a file URL, creates a dedicated UserContentManager with the
  weftIpc bridge injected (includes window.weftSessionId), builds
  and registers a new WebView.

  about_to_wait() drains app_rx: creates WebViews for Launch
  commands, removes and clears active_session for Stop commands.

  active_webview() returns the active-session WebView when one
  exists, falling back to the system-ui WebView. Rendering,
  keyboard, and mouse events all route through active_webview().

  Resize propagates to both the system WebView and all app WebViews.

  run() creates the mpsc channel and spawns the appd listener
  before entering the winit event loop.
2026-03-11 17:59:12 +01:00
..
weft-appd feat(appd): MountOrchestrator -- EROFS+dm-verity image mount on app launch 2026-03-11 15:47:23 +01:00
weft-build-meta Initialize Rust workspace and repository metadata 2026-03-10 18:47:06 +01:00
weft-compositor feat(protocol): add wl_surface arg to create_window in weft-shell-unstable-v1 2026-03-11 14:33:17 +01:00
weft-file-portal feat(servo-shell): input forwarding, weft-app URL resolution, weftIpc JS bridge (servo-embed only) 2026-03-11 17:52:37 +01:00
weft-ipc-types feat: weft-mount-helper -- setuid helper for EROFS+dm-verity mounts 2026-03-11 15:43:59 +01:00
weft-mount-helper feat: weft-mount-helper -- setuid helper for EROFS+dm-verity mounts 2026-03-11 15:43:59 +01:00
weft-pack feat(pack): install accepts .app.tar.zst archives directly 2026-03-11 15:49:34 +01:00
weft-runtime feat(runtime): seccomp blocklist filter via optional seccomp feature 2026-03-11 15:34:21 +01:00
weft-servo-shell feat(servo-shell): per-app WebView lifecycle driven by appd events (servo-embed only) 2026-03-11 17:59:12 +01:00