feat: CanvasRenderer sandboxe + protocole postMessage (#21) #125
No reviewers
Labels
No labels
module:M0-setup
module:M1-stt
module:M1-stt
module:M2-ai
module:M2-ai
module:M3-rich
module:M3-rich
module:M4-bridge
module:M4-bridge
module:M5-bonus
module:M5-bonus
module:setup
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:chore
type:chore
type:feature
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/my-fractal!125
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/21-canvas-renderer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #21
Ce qui est implemente
Modele Rust pur pour le canvas agent, sans dependance webkit2gtk directe. Le backend WebView sera branche via le trait
CanvasBackendquand l'infrastructure GTK sera prete.Nouveaux types (
crates/fractal-gtk/src/canvas.rs)CanvasSize— dimensions clampees aMAX_CANVAS_WIDTH=640/MAX_CANVAS_HEIGHT=480CANVAS_CSP—default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:;(pas de reseau, pas de JS externe)CanvasToHost— protocole canvas -> host :Resize,Action,ReadyHostToCanvas— protocole host -> canvas :ThemeChanged,Data+ helperto_js_post_message()wrap_canvas_html(body_html)— injecte le CSP meta tag, le listenerfractal-host-messageetfractalSend()RenderedCanvas— resultat derender_canvas(html, max_size)CanvasBackendtrait —render()+send_message(),Send + SyncNoopCanvasBackend— stub pour tests / builds sans GTKCanvasRenderer— point d'entree haut niveau aveccanvas_enabledflag ;render_canvas()retourne une erreur si desactiveModifications
Cargo.toml: ajout deserdeetserde_json(workspace)lib.rs:pub mod canvas+ re-exports des types publicsTests (7)
canvas_size_clamped_to_max,wrap_canvas_html_includes_csp,wrap_canvas_html_includes_body,render_canvas_disabled_returns_err,render_canvas_enabled_succeeds,host_to_canvas_js_post_message,canvas_to_host_serializesPull request closed