[M3] Widget fx-canvas (WebView sandboxé) + protocole postMessage #207

Closed
opened 2026-04-06 08:54:14 +00:00 by charles · 0 comments
Owner

Contexte

Le bloc fx-canvas est le type de bloc le plus libre : un widget HTML/JS arbitraire sandboxé. Réutilise le CanvasRenderer de M2 (#196) dans le contexte des messages enrichis.

Critères d'acceptation

  • RichBlock::Canvas(String) délègue au CanvasRenderer (#196)
  • Le HTML est wrappé avec CSP strict avant rendu (pas de réseau, pas de DOM parent)
  • Protocole postMessage opérationnel : CanvasToHost::Resize ajuste la taille du WebView dynamiquement
  • HostToCanvas::ThemeChanged envoyé quand le thème GTK change (dark/light)
  • Le canvas est sandboxé : pas d'accès au DOM parent, pas de stockage, pas de réseau (SF-M3-04)
  • Fallback : lien "Voir le canvas" pour les clients non-compatibles

Notes techniques

  • Voir specs §5.3 (SF-M3-04, ST-M3-06)
  • Dépend de #196 (CanvasRenderer) et #201 (parser)
## Contexte Le bloc `fx-canvas` est le type de bloc le plus libre : un widget HTML/JS arbitraire sandboxé. Réutilise le `CanvasRenderer` de M2 (#196) dans le contexte des messages enrichis. ## Critères d'acceptation - [ ] `RichBlock::Canvas(String)` délègue au `CanvasRenderer` (#196) - [ ] Le HTML est wrappé avec CSP strict avant rendu (pas de réseau, pas de DOM parent) - [ ] Protocole `postMessage` opérationnel : `CanvasToHost::Resize` ajuste la taille du WebView dynamiquement - [ ] `HostToCanvas::ThemeChanged` envoyé quand le thème GTK change (dark/light) - [ ] Le canvas est sandboxé : pas d'accès au DOM parent, pas de stockage, pas de réseau (SF-M3-04) - [ ] Fallback : lien "Voir le canvas" pour les clients non-compatibles ## Notes techniques - Voir specs §5.3 (SF-M3-04, ST-M3-06) - Dépend de #196 (CanvasRenderer) et #201 (parser)
Sign in to join this conversation.
No milestone
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#207
No description provided.