Lightpanda: Ein Browser für Maschinen statt Menschen
Lightpanda hat Version 1.0.0 seines Headless-Browsers veröffentlicht. Der Classic-WebDriver lässt sich nun für grundlegende Automatisierungsaufgaben nutzen. Zugleich setzt der Browser den Sicherheitsmechanismus Cross-Origin Resource Sharing (CORS) standardmäßig durch. Hinzu kommen neue Web-APIs sowie Verbesserungen bei der Verarbeitung der Formatierungssprache Cascading Style Sheets (CSS), beim Scrollen und in der Speicherverwaltung.
Hinter dem Namen Lightpanda versteckt sich ein in Zig entwickelter Browser ohne grafische Oberfläche. Er richtet sich an Anwendungen, die Webseiten automatisiert aufrufen und auswerten – etwa Crawler, Tests und KI-Agenten. Anders als ein Headless-Chromium ist er keine Abwandlung eines Browsers für Menschen. Für die Steuerung unterstützt das Projekt unter anderem das Chrome DevTools Protocol (CDP), über das sich beispielsweise Playwright verbinden kann.
Mehr Funktionen für die Browsersteuerung
Wie die Entwickler in den Release Notes der Version 1.0.0 erklären, deckt der Classic-WebDriver jetzt Sitzungen, Navigation sowie Vor- und Zurückblättern ab. Automatisierungsskripte können JavaScript ausführen, Elemente anklicken, Eingaben löschen oder Text senden. Auch Endpunkte für Cookies und den Viewport sind hinzugekommen. Damit eignet sich der bisher nur eingeschränkt nutzbare HTTP-WebDriver besser für typische Abläufe; eine vollständige Unterstützung aller WebDriver-Funktionen wird aber nicht versprochen.
Auch beim CDP bessert das Projekt nach. Unter anderem ordnet es Antworten auf Inspector-Befehle nun der Sitzung zu, von der die Anfrage stammt. Das ist vor allem dann wichtig, wenn mehrere Sitzungen mit dem Browser arbeiten.
CORS ist jetzt eingeschaltet
Die folgenreichste Verhaltensänderung betrifft Cross-Origin Resource Sharing: Lightpanda blockiert fetch- und XHR-Anfragen an andere Origins nun standardmäßig, wenn sie die CORS-Prüfung nicht bestehen. Wer das bisherige Verhalten benötigt, kann CORS mit --disable-features cors abschalten. Der bisherige Schalter --experimental-features cors entfällt. Zudem begrenzt der Browser Weiterleitungen, die Zugangsdaten mitführen.
Bei den Web-APIs ergänzt Version 1.0.0 unter anderem WebAssembly.compileStreaming() und WebAssembly.instantiateStreaming(), TextEncoder.encodeInto() sowie Unterstützung für srcset bei Bildern. Eine erste Implementierung der Sanitizer API ist enthalten. Service Worker bleiben experimentell und müssen ausdrücklich aktiviert werden.
Darüber hinaus korrigieren die Entwickler die Behandlung von <template>-Inhalten und CSS-Regeln. Sie haben Fehler behoben, die unter anderem beim Scrollen, in IndexedDB und beim Verarbeiten verschobener Knoten des Document Object Model (DOM) zu Abstürzen führen konnten. getComputedStyle() liefert jetzt schreibgeschützte Ergebnisse. Außerdem richtet sich die Spracheinstellung nicht mehr nach einem festen englischen Fallback, sondern nach --locale.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.