umbau 1.1

This commit is contained in:
2026-09-02 21:38:22 +02:00
parent 5c95b21be7
commit 8b0c35fc8b
7 changed files with 106 additions and 0 deletions

View File

@ -299,6 +299,26 @@
});
this.fitAddon = new FitAddon.FitAddon();
this.term.loadAddon(this.fitAddon);
// Bug-Fix (Live-Test, F.6/Aufgabe#11): xterm.js' Standard-DOM-Renderer
// faerbt Zellen (inkl. Markierungs-Hintergrund) teils per dynamisch
// erzeugtem <style>-Element, teils per element.setAttribute("style", ...).
// Beides sind "inline styles" im Sinne der CSP (style-src 'self', kein
// 'unsafe-inline'/Nonce/Hash) -- der Browser verwirft diese Regeln
// stillschweigend (element.sheet bleibt null), wodurch u.a. die
// Text-Markierung unsichtbar bleibt, obwohl die Auswahl-Logik selbst
// funktioniert. Der Canvas-Renderer zeichnet Zeichen/Farben stattdessen
// direkt auf ein <canvas> (Pixel statt CSS) und ist von style-src nicht
// betroffen -- CSP bleibt dadurch unveraendert strikt.
try {
this.canvasAddon = new CanvasAddon.CanvasAddon();
this.term.loadAddon(this.canvasAddon);
} catch (err) {
// Faellt der Canvas-Renderer aus irgendeinem Grund aus (z.B. sehr
// altes/eingeschraenktes Canvas-2D-Umfeld), bleibt der DOM-Renderer
// als Fallback aktiv -- Faerbung/Markierung waeren dann wieder vom
// CSP-Fix abhaengig, aber die Sitzung funktioniert weiterhin.
console.warn("CanvasAddon konnte nicht geladen werden, Fallback auf DOM-Renderer:", err);
}
this.term.open(this.terminalContainer);
if (this.themeSelect) this.themeSelect.value = this._themeName;