Die Google GmbH hat die Veröffentlichung des Web-Browsers Chrome 105 vorgestellt. Gleichzeitig steht die stabile Version des Open-Source-Projekts Chromium zur Verfügung, auf dem Chrome basiert. Der Browser Chrome unterscheidet sich von Chromium durch die Verwendung von Google-Logos, das Vorhandensein eines Systems zur Benachrichtigung im Falle eines Absturzes, Module zur Wiedergabe von urheberrechtlich geschütztem Videoinhalt (DRM), ein automatisches Update-System, ständig aktivierte Sandbox-Isolierung, die Bereitstellung von Schlüsseln für die Google-API und die Übertragung von RLZ-Parametern bei der Suche. Für diejenigen, die mehr Zeit für die Aktualisierung benötigen, wird eine gesonderte Extended Stable-Version angeboten, die mit 8 Wochen Unterstützung einhergeht. Die nächste Veröffentlichung von Chrome 106 ist für den 27. September geplant.
Hauptänderungen in Chrome 105:
- Die Unterstützung für spezielle Webanwendungen, die als Chrome-Apps bekannt sind, wurde eingestellt. Stattdessen wurden eigenständige Webanwendungen auf Basis von Progressive Web Apps (PWA) und standardisierten Web-APIs eingeführt. Ursprünglich kündigte Google im Jahr 2016 an, die Unterstützung für Chrome-Apps bis 2018 zu beenden, verschob diesen Plan jedoch später. Ab Chrome 105 wird beim Versuch, Chrome-Apps zu installieren, eine Warnung über die Beendigung der Unterstützung angezeigt, die Anwendungen selbst werden jedoch weiterhin ausgeführt. In Chrome 109 wird die Ausführung von Chrome-Apps deaktiviert.
- Eine zusätzliche Isolierung des Rendering-Prozesses wurde implementiert. Dieser Prozess wird nun in einem zusätzlichen Container (App-Container) ausgeführt, der über dem bestehenden Sandbox-Isolationssystem realisiert wurde. Im Falle einer Ausnutzung einer Sicherheitsanfälligkeit im Rendering-Code verhindern die hinzugefügten Einschränkungen, dass ein Angreifer auf das Netzwerk zugreifen kann, da der Zugriff auf systembedingte Aufrufe, die mit Netzwerkfähigkeiten verbunden sind, untersagt ist.
- Ein gemeinsames, einheitliches Speicher für die Root-Zertifikate der Zertifizierungsstellen (Chrome Root Store) wurde implementiert. Dieses neue Speicher ist derzeit noch nicht standardmäßig aktiviert, und bis die Implementierung abgeschlossen ist, werden die Zertifikate weiterhin unter Verwendung des betriebssystemspezifischen Speichers überprüft. Die getestete Lösung ähnelt dem Ansatz von Mozilla, welches ein separates unabhängiges Speicher für Root-Zertifikate für Firefox unterstützt, das als erster Schritt zur Überprüfung der Zertifizierungskette beim Öffnen von HTTPS-Webseiten verwendet wird.
- Die Vorbereitungen zum Ende der Unterstützung des nicht standardisierten Web SQL API haben begonnen, das kaum verwendet wird und einer Überarbeitung zur Erfüllung moderner Sicherheitsanforderungen bedarf. In Chrome 105 ist der Zugriff auf Web SQL aus Code, der ohne HTTPS geladen wurde, nicht mehr erlaubt, und es wird eine Warnung zur Veraltung der Technologie in den DevTools ausgegeben. Für 2023 ist die geplante Entfernung des Web SQL API vorgesehen. Für Entwickler, die eine ähnliche Funktionalität benötigen, wird eine Alternative auf Basis von WebAssembly vorbereitet.
- In Chrome wurde die Unterstützung für die Synchronisation mit Chrome 73 und früheren Versionen eingestellt.
- Für die Plattformen macOS und Windows wurde ein integrierter Zertifikatsbetrachter aktiviert, der den Aufruf der systemeigenen Schnittstelle ersetzt. Zuvor wurde der integrierte Betrachter nur in den Versionen für Linux und ChromeOS verwendet.
- In die Android-Version wurden Einstellungen zur Steuerung der API "Topics & Interest Group" aufgenommen, die im Rahmen der Privacy Sandbox-Initiative gefördert wird. Diese erlaubt es, Benutzerinteressenkategorien zu definieren und diese anstelle von Tracking-Cookies zu verwenden, um Gruppen von Nutzern mit ähnlichen Interessen zu bilden, ohne einzelne Nutzer zu identifizieren. Im letzten Release wurden solche Einstellungen auch in den Versionen für Linux, ChromeOS, macOS und Windows hinzugefügt.
- Bei aktivierter erweiterter Browserschutz (Safe Browsing > Erweiterter Schutz) wird Telemetriedaten über installierte Erweiterungen, API-Zugriffe und Verbindungen zu externen Websites gesammelt. Diese Daten werden auf Google-Servern verwendet, um bösartige Aktivitäten und Verstöße gegen die Richtlinien durch Browsererweiterungen zu identifizieren.
- Die Verwendung von Nicht-ASCII-Zeichen in Domänen, die im Cookie-Header angegeben sind, wurde in die Kategorie veraltet eingestuft und wird in Chrome 106 blockiert. Für IDN-Domänen sollten die Domänen im Punycode-Format angegeben werden. Diese Änderung wird den Browser an die Anforderungen von RFC 6265bis und das Verhalten, das in Firefox umgesetzt wurde, anpassen.
- Eine API für benutzerdefinierte Hervorhebungen wurde vorgeschlagen, die es ermöglicht, den Stil von hervorgehobenen Textbereichen beliebig zu ändern. Dadurch sind Sie nicht auf die vom Browser bereitgestellten festen Stile für Hervorhebungen (::selection, ::inactive-selection) und die Markierung von Rechtschreibfehlern (::spelling-error, ::grammar-error) beschränkt. Im ersten Entwurf der API wird die Unterstützung zur Änderung der Text- und Hintergrundfarbe über die Pseudo-Elemente color und background-color bereitgestellt, und es werden in Zukunft weitere Anpassungsmöglichkeiten hinzukommen.
Ein Beispiel für Aufgaben, die mit der neuen API gelöst werden können, ist die Integration eigener Textmarkierungsmechanismen in Web-Frameworks, die Werkzeuge zur Textbearbeitung bereitstellen. Dazu gehören verschiedene Hervorhebungen für gleichzeitige Bearbeitungen durch mehrere Benutzer, die Suche in virtualisierten Dokumenten und die Markierung von Fehlern während der Rechtschreibprüfung. Früher erforderten Benutzungen von nicht standardmäßigen Hervorhebungen komplexe Manipulationen am DOM-Baum. Die API Custom Highlight bietet nun fertige Operationen zum Hinzufügen und Entfernen von Hervorhebungen, die die DOM-Struktur nicht beeinflussen und Stile in Bezug auf Range-Objekte anwenden.
- In CSS wurde die Regel „@container“ hinzugefügt, die es ermöglicht, den Stil von Elementen basierend auf der Größe des übergeordneten Elements zu gestalten. „@container“ ähnelt den „@media“-Abfragen, bezieht sich jedoch nicht auf die Größe des gesamten sichtbaren Bereichs, sondern auf die Größe des Blocks (Containers), in den das Element eingefügt wurde. So können für untergeordnete Elemente eigene Logiken zur Stilwahl festgelegt werden, die unabhängig davon sind, wo genau das Element auf der Seite platziert ist.

- Der CSS-Pseudoklasse „:has()“ wurde hinzugefügt, um das Vorhandensein eines Kindelements im Elternelement zu überprüfen. Zum Beispiel erfasst „p:has(span)“ Elemente <p>die ein Element enthalten <span>.
- Die API für den HTML-Sanitizer wurde hinzugefügt, um Elemente, die die Anzeige und Ausführung beim Ausgeben über die Methode setHTML() beeinflussen, aus dem Inhalt zu entfernen. Die API kann nützlich sein, um eingehende Daten auf HTML-Tags zu überprüfen und diese zu entfernen, die für XSS-Angriffe verwendet werden könnten.
- Die Möglichkeit zur Nutzung der API Streams (ReadableStream) wurde bereitgestellt, um fetch-Anfragen zu senden, noch bevor der Antwortkörper geladen wird. Das bedeutet, dass Daten gesendet werden können, ohne auf den Abschluss der Seitengenerierung zu warten.
- Für installierbare, autonome Webanwendungen (PWA, Progressive Web App) wurde die Möglichkeit geschaffen, das Design des Fenstertitels mit den Komponenten Window Controls Overlay zu ändern. Diese erweitern den Anzeigebereich der Webanwendung auf das gesamte Fenster und ermöglichen es, der Webanwendung das Aussehen einer herkömmlichen Desktopanwendung zu verleihen. Die Webanwendung kann die Darstellung und die Eingabeverarbeitung im gesamten Fenster steuern, abgesehen von dem überlagerten Block mit den Standardfenstersteuerungsbuttons (Schließen, Minimieren, Maximieren).

- Die Möglichkeit, auf Media Source Extensions aus dedizierten Workern (im Kontext von DedicatedWorker) zuzugreifen, wurde stabilisiert. Dies kann beispielsweise verwendet werden, um die Leistung des gepufferten Multimedia-Streamings zu verbessern, indem ein MediaSource-Objekt in einem separaten Worker erstellt und die Ergebnisse in das HTMLMediaElement im Haupt-Thread übertragen werden.
- Im API Client Hints, das sich zur Ablösung des User-Agent-Headers weiterentwickelt und es ermöglicht, spezifische Daten über Browser- und Systemparameter (Version, Plattform usw.) nur auf Anfrage bereitzustellen, dem Server durchwurde die Unterstützung für die Eigenschaft Sec-CH-Viewport-Heigh hinzugefügt, die Informationen über die Höhe des sichtbaren Bereichs bereitstellt. Das Format der Markup für die Angabe der Client Hints-Parameter in einem „meta“-Tag für externe Ressourcen wurde geändert: Vorher: Nachher:
- Es wurde die Möglichkeit hinzugefügt, globale onbeforeinput-Ereignishandler (document.documentElement.onbeforeinput) zu erstellen, mit denen Webanwendungen das Verhalten beim Bearbeiten von Text in ,
- Die Möglichkeiten der API Navigation wurden erweitert, die es Webanwendungen ermöglicht, Navigationsoperationen im Fenster abzufangen, Übergänge zu initiieren und die Historie der Interaktionen mit der Anwendung zu analysieren. Neue Methoden intercept() zum Abfangen des Übergangs und scroll() zum Scrollen zu einer bestimmten Position wurden hinzugefügt.
- Es wurde eine statische Methode Response.json() hinzugefügt, die es ermöglicht, den Antwortinhalt basierend auf Daten des Typs JSON zu erstellen.
- Verbesserungen wurden an den Tools für Webentwickler vorgenommen. Im Debugger ist es nun möglich, die obersten Funktionen im Stack zu bearbeiten, ohne die Debugging-Sitzung zu unterbrechen, wenn ein Haltepunkt ausgelöst wird. Im Recorder-Bereich, in dem Benutzeraktionen auf der Seite aufgezeichnet, wiedergegeben und analysiert werden können, wurde die Unterstützung für Haltepunkte, schrittweises Abspielen und das Aufzeichnen von Hover-Ereignissen implementiert.
Im Performance-Analysetool wurden Metriken für LCP (Largest Contentful Paint) hinzugefügt, um Verzögerungen beim Rendern großer, für den Nutzer sichtbarer Elemente in der Ansicht, wie Bilder, Videos und Blockelemente, zu erkennen. Im Elements-Bereich wurde eine Markierung für die obersten Ebenen, die über anderem Inhalt angezeigt werden, mit einem speziellen Symbol eingeführt. Für WebAssembly wurde die Möglichkeit zur Bereitstellung von Debug-Daten im DWARF-Format bereitgestellt.
Neben Neuerungen und Fehlerbehebungen wurden in der neuen Version 24 Sicherheitsanfälligkeiten behoben. Viele dieser Anfälligkeiten wurden durch automatisierte Tests mit den Tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL aufgedeckt. Kritische Probleme, die es ermöglichen würden, alle Schutzebenen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung auf dem System auszuführen, wurden nicht festgestellt. Im Rahmen des Programms zur Vergabe von Geldprämien für das Auffinden von Sicherheitsanfälligkeiten hat Google für die aktuelle Version insgesamt 21 Prämien in Höhe von 60.500 US-Dollar ausgezahlt (eine Prämie in Höhe von 10.000 US-Dollar, eine Prämie in Höhe von 9.000 US-Dollar, eine Prämie in Höhe von 7.500 US-Dollar, eine Prämie in Höhe von 7.000 US-Dollar, zwei Prämien in Höhe von je 5.000 US-Dollar, vier Prämien in Höhe von je 3.000 US-Dollar, zwei Prämien in Höhe von je 2.000 US-Dollar und eine Prämie in Höhe von 1.000 US-Dollar). Die Höhe von sieben Prämien ist derzeit noch nicht festgelegt.
Quelle: opennet.ru


