umbau 1.1
This commit is contained in:
@ -1325,6 +1325,15 @@
|
||||
});
|
||||
const fitAddon = new FitAddon.FitAddon();
|
||||
term.loadAddon(fitAddon);
|
||||
// Bug-Fix (Live-Test, F.6/Aufgabe#11, siehe terminal.js _setupTerminal()
|
||||
// fuer die ausfuehrliche Begruendung): DOM-Renderer-Faerbung wird durch
|
||||
// die strikte CSP (style-src 'self') stillschweigend verworfen. Canvas-
|
||||
// Renderer zeichnet stattdessen direkt auf <canvas> und ist CSP-unabhaengig.
|
||||
try {
|
||||
term.loadAddon(new CanvasAddon.CanvasAddon());
|
||||
} catch (err) {
|
||||
console.warn("CanvasAddon konnte nicht geladen werden, Fallback auf DOM-Renderer:", err);
|
||||
}
|
||||
term.open(container);
|
||||
fitAddon.fit();
|
||||
|
||||
@ -1427,6 +1436,15 @@
|
||||
});
|
||||
const fitAddon = new FitAddon.FitAddon();
|
||||
term.loadAddon(fitAddon);
|
||||
// Bug-Fix (Live-Test, F.6/Aufgabe#11, siehe terminal.js _setupTerminal()
|
||||
// fuer die ausfuehrliche Begruendung): DOM-Renderer-Faerbung wird durch
|
||||
// die strikte CSP (style-src 'self') stillschweigend verworfen. Canvas-
|
||||
// Renderer zeichnet stattdessen direkt auf <canvas> und ist CSP-unabhaengig.
|
||||
try {
|
||||
term.loadAddon(new CanvasAddon.CanvasAddon());
|
||||
} catch (err) {
|
||||
console.warn("CanvasAddon konnte nicht geladen werden, Fallback auf DOM-Renderer:", err);
|
||||
}
|
||||
term.open(container);
|
||||
fitAddon.fit();
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user