[M3] Widget fx-canvas : WebKitWebView sandboxé avec protocole postMessage #41

Closed
opened 2026-04-06 01:36:10 +00:00 by charles · 0 comments
Owner

Contexte

Widget HTML/JS libre sandboxé pour les blocs "n'importe quoi" — réutilise l'implémentation CanvasRenderer de M2.

Critères d'acceptation

  • Réutilise CanvasRenderer de #21 (même sandbox webkit2gtk, même CSP)
  • Enum CanvasToHost : Resize { width, height }, Action { name, data: serde_json::Value }
  • Enum HostToCanvas : ThemeChanged { dark_mode }, Data(serde_json::Value)
  • Bridging postMessage ↔ Rust via WebKit::UserContentManager scripts
  • L'action Resize redimensionne le widget GTK dynamiquement
  • L'action Action est loggée et peut déclencher une commande Matrix (opt-in)
  • ThemeChanged envoyé automatiquement quand le thème GNOME change

Notes techniques

  • Dépend de : #21 (CanvasRenderer M2), #27 (RichMessageParser)
  • Partage le code de sandbox avec #21 via une lib interne commune dans fractal-rich
  • max_canvas_size dans config limite la taille initiale
## Contexte Widget HTML/JS libre sandboxé pour les blocs "n'importe quoi" — réutilise l'implémentation `CanvasRenderer` de M2. ## Critères d'acceptation - [ ] Réutilise `CanvasRenderer` de #21 (même sandbox webkit2gtk, même CSP) - [ ] Enum `CanvasToHost` : `Resize { width, height }`, `Action { name, data: serde_json::Value }` - [ ] Enum `HostToCanvas` : `ThemeChanged { dark_mode }`, `Data(serde_json::Value)` - [ ] Bridging `postMessage` ↔ Rust via `WebKit::UserContentManager` scripts - [ ] L'action `Resize` redimensionne le widget GTK dynamiquement - [ ] L'action `Action` est loggée et peut déclencher une commande Matrix (opt-in) - [ ] `ThemeChanged` envoyé automatiquement quand le thème GNOME change ## Notes techniques - Dépend de : #21 (CanvasRenderer M2), #27 (RichMessageParser) - Partage le code de sandbox avec #21 via une lib interne commune dans `fractal-rich` - `max_canvas_size` dans config limite la taille initiale
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/my-fractal#41
No description provided.