Das Unternehmen Google hat die Version 147 des Webbrowsers Chrome veröffentlicht. Gleichzeitig ist eine stabile Version des freien Projekts Chromium verfügbar, das die Basis für Chrome bildet. Der Browser Chrome unterscheidet sich von Chromium durch die Verwendung von Google-Logos, einem Benachrichtigungssystem im Falle eines Absturzes, Modulen zur Wiedergabe von kopiergeschützten Videoinhalten (DRM), einem System zur automatischen Aktualisierung, einer dauerhaften Sandbox-Isolierung, der Bereitstellung von Schlüsseln für die Google API und der Übertragung von RLZ-Parametern bei der Suche. Für diejenigen, die mehr Zeit für das Update benötigen, wird eine separate Extended Stable-Version unterstützt, die mit 8 Wochen Begleitzeit angeboten wird. Das nächste Release von Chrome 148 ist für den 5. Mai geplant.
Wesentliche Änderungen in Chrome 147 (1, 2, 3, 4):
- Ein Vertikalmodus für Tabs wurde hinzugefügt, der die obere horizontale Leiste mit Tab-Tasten durch eine seitliche Leiste mit vertikalen Tabs ersetzt. Vertikale Tabs können in expandiertem (Symbol + Teil der Beschreibung) und minimiertem Modus (nur Symbole) angezeigt werden. Wenn der Mauszeiger über einen Seitentab bewegt wird, wird eine Vorschau mit seinem Inhalt angezeigt. Die Verwaltung von Tab-Gruppen wurde vereinfacht. Im Kontextmenü, das beim Rechtsklick auf die Tab-Leiste erscheint, wurde die Option "Tabs vertikal anzeigen" hinzugefügt. Falls die Option nicht standardmäßig angezeigt wird, kann sie über die Einstellung "chrome://flags/#vertical-tabs" aktiviert werden.
- Der Lesemodus wurde überarbeitet, in dem nur der wesentliche Text der Seite angezeigt wird, während alle begleitenden Steuerelemente, Banner, Menüs, Navigationsleisten und andere nicht mit dem Inhalt verbundene Teile der Seite verborgen sind. In der neuen Version wird, analog zu Firefox, der wesentliche Inhalt im gesamten sichtbaren Bereich angezeigt, anstelle wie zuvor in einem schmalen Seitenfenster neben der Ursprungsseite. Falls der neue Modus nicht standardmäßig aktiviert ist, kann er über die Einstellung "chrome://flags/#read-anything-immersive-reading-mode" aktiviert werden.
- Im Menü "Hilfe" wurde eine Schaltfläche zum Einreichen von Beschwerden hinzugefügt, um Webseiten, die für Betrug oder Phishing erstellt wurden, auf die Sperrliste zu setzen. Die Schaltfläche wird angezeigt, wenn der "Safe Browsing"-Modus aktiviert ist.
- Die Schutzmaßnahmen gegen Zugriffe auf das lokale System beim Umgang mit öffentlichen Websites wurden erweitert. Zugriffe von Websites auf IP-Adressen Der Zugriff auf Ressourcen im lokalen Netzwerk (Intranet oder interne Adressen) oder über die Loopback-Schnittstelle (127.0.0.0/8) erfordert eine Bestätigung des Benutzers. Der Schutz erstreckt sich nun nicht nur auf Versuche, Ressourcen über HTTP/HTTPS zu laden, fetch()-Anfragen und iframe-Einbettungen, sondern auch auf Verbindungen über WebSockets und WebTransport sowie auf fetch-Anfragen, die über die Methode WindowClient.navigate() initiiert werden. Der Zugriff auf interne Ressourcen wird von Angreifern zur indirekten Identifizierung und Durchführung von CSRF-Angriffen auf Router, Access Points, Drucker, Unternehmens-Webschnittstellen und andere Geräte und Dienste genutzt, die Anfragen nur aus dem lokalen Netzwerk akzeptieren.
- Die Funktionalität zum Parsen von XML wurde von libxml2 auf eine neue Bibliothek umgestellt, die in Rust geschrieben wurde und mit Blick auf die Sicherheit entwickelt wurde. Diese Änderung betrifft nur XML; wie zuvor angekündigt, wird die Unterstützung für XSLT bald eingestellt.
- Die Möglichkeit, die Methode startViewTransition() nicht nur für die gesamte Seite, sondern auch für einzelne HTML-Elemente anzuwenden, wurde implementiert.
- Die CSS-Funktion contrast-color() wurde hinzugefügt, die die gegenteilige Variante für eine angegebene Farbe zurückgibt (für Weiß wird Schwarz zurückgegeben und für Schwarz Weiß). Diese Funktion kann verwendet werden, um eine Hintergrundfarbe für eine bestimmte Textfarbe und umgekehrt auszuwählen.
- Die CSS-Eigenschaft „border-shape“ wurde hinzugefügt, die es ermöglicht, nicht rechteckige Umrandungen für Elemente zu erstellen, beispielsweise runde oder polygonale Rahmen. Die CSS-Eigenschaft „border-shape“ akzeptiert die gleichen Formtypen wie die Eigenschaften „clip-path“, definiert jedoch im Gegensatz zu Letzterem die Kontur, dekodiert sie und schneidet den über die Kontur hinausgehenden Inhalt ab.
- Das Interface CSSPseudoElement wurde hinzugefügt, das die Arbeit mit Pseudo-Elementen von CSS aus JavaScript ermöglicht.
- Im link-Element wurde die Möglichkeit implementiert, das Attribut „rel=modulepreload“ für das vorzeitige Laden nicht nur von Skripten, sondern auch von Modulen mit CSS-Stilen (<link rel=„modulepreload“ as=„style“ href=„…“>) und JSON-Daten (<link rel=„modulepreload“ as=„json“ href=„…“>) anzuwenden.
- Das Verhalten bei der Berechnung der Breite von Rahmen und Konturen in CSS-Eigenschaften wie border-width, outline-width und column-rule-width wurde geändert und mit Firefox und Browsern, die auf der WebKit-Engine basieren, vereinheitlicht. Bisher wurde die Breite in den angegebenen Eigenschaften auf null gesetzt, unabhängig von den darin festgelegten Werten, wenn die Eigenschaften border-style, outline-style oder column-rule-style den Wert 'none' oder 'hidden' hatten. Jetzt setzen die Werte border-width, outline-width und column-rule-width immer die vom Entwickler festgelegten Werte, unabhängig vom Inhalt der '*-style' Eigenschaften.
- Die Methode Math.sumPrecise() wurde hinzugefügt, um die Summe der Elemente von Arrays und anderen aufzählbaren Objekten mit einer Genauigkeit zu berechnen, die die Genauigkeit der normalen Summierung in einer Schleife übersteigt (Verluste an Genauigkeit beim Zwischenspeichern der Ergebnisse werden ausgeschlossen).
- Das Attribut Request.isReloadNavigation wurde hinzugefügt, das es ermöglicht festzustellen, dass die Seite neu geladen wurde, beispielsweise nach dem Drücken der Taste 'Aktualisieren' oder dem Aufruf der Methoden location.reload() und history.go(0).
- Um die Genauigkeit der indirekten Identifizierung zu verringern, wurde die Logik zur Abrundung der von der API Device Memory zurückgegebenen Speichermenge geändert, die Informationen über die Größe des Arbeitsspeichers liefert. Diese Informationen können nützlich sein, um leichtgewichtige Varianten von Webanwendungen zu erstellen, die für Geräte mit geringem RAM geladen werden, oder um erweiterte Funktionen bei Vorhandensein großer Speichermengen zu aktivieren. In Builds für die Android-Plattform wird die Speichermenge jetzt auf 1, 2, 4 und 8 gerundet, während sie für andere Plattformen auf 2, 4, 8, 16 und 32 gerundet wird.
- Für isolierte Webanwendungen (IWA - Isolated Web Apps) wurde die API Web Printing implementiert, die Methoden zur Erkennung vorhandener Drucker, zum Senden von Dokumenten zum Drucken und zur Verwaltung der Druckwarteschlange bereitstellt. Die in der API verwendeten Attributnamen und deren Semantik entsprechen dem Internet Printing Protocol (IPP).
- Im Modus 'Origin trials' wurde die API WebNN implementiert, die die Verwendung der von der Betriebssystem angebotenen Dienste für maschinelles Lernen und der damit verbundenen Hardwarefähigkeiten ermöglicht.
- Verbesserungen wurden in die Werkzeuge für Webentwickler eingeführt. Im integrierten KI-Assistenten wurde eine automatische Kontextauswahl implementiert. Das Panel „Device Mode“, das zum Testen der Funktionalität von Websites auf verschiedenen mobilen Geräten verwendet wird, wurde modernisiert. Im Netzwerkpanel wird nun eine automatische Dekodierung von komprimierten Inhalten in Anfragen ermöglicht, die mit dem Header Content-Encoding: gzip oder deflate gesendet werden. Es besteht die Möglichkeit, reguläre Ausdrücke zum Filtern von CSS-Stilen zu verwenden.
Neben Neuerungen und Fehlerbehebungen wurden in der neuen Version 60 Schwachstellen behoben. Viele der Schwachstellen wurden durch automatisierte Tests mit den Tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL identifiziert. Zwei Probleme (Pufferüberlauf und Ganzzahlüberlauf in WebML) wurden als kritisch eingestuft, was bedeutet, dass die Schwachstellen alle Sicherheitsstufen des Browsers umgehen und Code außerhalb der Sandbox-Umgebung im System ausführen können. Im Rahmen des Programms zur Vergütung von Schwachstellenentdeckungen wurde für das aktuelle Release von Google 60 Belohnungen ausgelobt und insgesamt 118.000 US-Dollar ausgezahlt (zwei Belohnungen von 43.000 US-Dollar, zwei Belohnungen von 11.000 US-Dollar und jeweils eine Belohnung von 4.000, 3.000, 2.000 und 1.000 US-Dollar. Die Höhe von 52 Belohnungen wurde noch nicht festgelegt.
Quelle: opennet.ru
