Die Google Company hat die Veröffentlichung des Web-Browsers Chrome 95 vorgestellt. Gleichzeitig ist die stabile Version des Open-Source-Projekts Chromium, das die Grundlage für Chrome bildet, verfügbar. Der Browser Chrome unterscheidet sich durch die Verwendung von Google-Logos, ein System zur Benachrichtigung im Falle eines Absturzes, Module zur Wiedergabe von geschützten Videoinhalten (DRM), ein automatisches Update-System und die Übertragung von RLZ-Parametern bei der Suche. Im Einklang mit dem neuen vierwöchigen Entwicklungszyklus ist die nächste Version, Chrome 96, für den 16. November geplant. Für diejenigen, die mehr Zeit zum Aktualisieren benötigen, wird eine separate Extended Stable-Version mit acht Wochen Unterstützung angeboten, in der das Update für die vorherige Version Chrome 94 erstellt wurde.
Hauptänderungen in Chrome 95:
- Benutzern von Linux, Windows, macOS und ChromeOS steht eine neue Seitenleiste zur Verfügung, die rechts vom Inhalt angezeigt wird und durch einen Klick auf ein spezielles Symbol in der Adressleiste aktiviert werden kann. In der Seitenleiste wird eine Zusammenfassung mit Lesezeichen und einer Leseliste angezeigt. Diese Änderung ist nicht für alle Benutzer aktiviert; zur Aktivierung kann die Einstellung „chrome://flags/#side-panel“ verwendet werden.

- Eine explizite Anforderung zur Berechtigung zum Speichern von in Webformularen eingegebenen Adressen wurde umgesetzt, um diese für die spätere Nutzung im System zur automatischen Vervollständigung bereit zu halten. Bei der Ermittlung von Adressen in Formularen wird dem Benutzer nun ein Dialog angezeigt, der es ermöglicht, die Adresse zu speichern, zu bearbeiten, eine zuvor gespeicherte Adresse zu aktualisieren oder die Speicherung abzulehnen.
- Der Code zur Unterstützung des FTP-Protokolls wurde entfernt. In Chrome 88 wurde die FTP-Unterstützung standardmäßig deaktiviert, aber ein Flag zur Wiederherstellung wurde belassen.
- Die Unterstützung für URLs mit Hostnamen, die mit einer Zahl enden, aber nicht mit IPv4-Adressen übereinstimmen, wurde eingestellt. Beispielsweise werden die URLs "http://127.1/", "http://foo.127.1/" und "http://127.0.0.0.1" jetzt als ungültig betrachtet.
- Für WebAssembly wurde die Möglichkeit implementiert, Ausnahmebehandler zu erstellen, die die Ausführung im Falle einer Ausnahme beim Ausführen bestimmter Codes abfangen können. Sowohl der Umgang mit bekannten Ausnahmen aus dem WebAssembly-Modul als auch Ausnahmen beim Aufruf importierter Funktionen werden unterstützt. Um Ausnahmen abfangen zu können, muss das WebAssembly-Modul mit einem Compiler wie Emscripten erstellt werden, der Ausnahmen unterstützt.
Es wird berichtet, dass die Ausnahmebehandlung auf der WebAssembly-Ebene die Größe des generierten Codes im Vergleich zur Ausnahmebehandlung durch JavaScript erheblich reduziert. Zum Beispiel führt die Optimizer-Build von Binaryen mit Ausnahmebehandlung über JavaScript zu einer Codeerhöhung von 43 %, während dies bei WebAssembly nur 9 % beträgt. Darüber hinaus unterscheidet sich der Code mit Ausnahmebehandlung über WebAssembly im Optimierungsmodus „-O3“ praktisch nicht in der Leistung von Code ohne Ausnahmebehandler, während die Ausnahmebehandlung über JavaScript die Ausführungszeit um 30 % verlangsamt.
- Die gemeinsame Nutzung von WebAssembly-Modulen zwischen verschiedenen Domains (cross-origin) ist bei der Verarbeitung einer einzigen Website untersagt.
- Im Origin Trials-Modus (experimentelle Funktionen, die eine separate Aktivierung erfordern) wurden mehrere neue APIs hinzugefügt. Der Origin Trial ermöglicht die Nutzung der angegebenen API aus Anwendungen, die von localhost oder 127.0.0.1 geladen werden, oder nach Registrierung und Erhalt eines speziellen Tokens, das für einen bestimmten Zeitraum für eine bestimmte Website gültig ist.
- Die Beschneidung der Informationen im HTTP-Header User-Agent sowie in den JavaScript-Parametern navigator.userAgent, navigator.appVersion und navigator.platform ist aktiviert. Im Header sind nur Informationen über den Namen des Browsers, die Hauptversion, die Plattform und den Gerätetyp (Mobiltelefon, PC, Tablet) enthalten. Um zusätzliche Daten wie die genaue Version und erweiterte Plattforminformationen zu erhalten, sollte die API User Agent Client Hints verwendet werden. Der Beginn der User-Agent-Beschneidung für reguläre Nutzersysteme ist mit der Veröffentlichung von Chrome 102, die in einem halben Jahr erscheinen wird, geplant.
- Es wird die Möglichkeit zur Erstellung von Zugriffs-Deskriptoren (Access Handles) für die API File System Access angeboten, die es Webanwendungen erlaubt, Daten direkt in Dateien und Ordner auf dem Endgerät des Benutzers zu lesen und zu schreiben. Um die Zugriffswege von Webanwendungen auf das Dateisystem zu reduzieren, plant Google die Zusammenführung der API File System Access mit der Storage Foundation. Als vorbereitender Schritt für eine solche Zusammenführung wird die Unterstützung von Zugriffs-Deskriptoren angeboten, die die Datei-Descriptor-Methoden um erweiterte Funktionen ergänzt, wie etwa das Setzen von Schreibsperren durch andere Prozesse und die Erstellung separater Ströme für Lese- und Schreibvorgänge, einschließlich der Unterstützung für Lese- und Schreibvorgänge aus Workern im synchronen Modus.
- Die API für die sichere Zahlungsbestätigung wurde standardmäßig stabilisiert und mit einer neuen Erweiterung namens 'payment' implementiert, die eine zusätzliche Bestätigung der Zahlungsoperation ermöglicht. Die prüfende Partei, beispielsweise eine Bank, hat die Möglichkeit, einen öffentlichen Schlüssel PublicKeyCredential zu generieren, der vom Verkäufer für eine zusätzliche sichere Zahlungsbestätigung über die API Payment Request angefordert werden kann, indem die Zahlungsmethode 'secure-payment-confirmation' verwendet wird.
- In den Callback-Aufrufen, die über den PerformanceObserver-Konstruktor eingerichtet wurden, wird das Attribut droppedEntriesCount übermittelt, welches aufzeigt, wie viele Leistungsmetriken der Website aufgrund des begrenzten Puffers verworfen wurden.
- Die API EyeDropper wurde hinzugefügt, die es ermöglicht, die vom Browser bereitgestellte Schnittstelle aufzurufen, um die Farbe beliebiger Pixel auf dem Bildschirm zu bestimmen, was beispielsweise in Grafikeditoren, die als Webanwendungen implementiert sind, Anwendung finden kann. const eyeDropper = new EyeDropper(); const result = await eyeDropper.open(); // result = {sRGBHex: '#160731'}
- Eine neue Funktion self.reportError() wurde hinzugefügt, die es Skripten ermöglicht, Fehler in der Konsole auszugeben, indem sie ein nicht abgefangenes Exception-Szenario simulieren.
- Die API URLPattern wurde hinzugefügt, um die Übereinstimmung von URLs mit einem bestimmten Muster zu überprüfen, was beispielsweise zum Parsen von Links und zum Umleiten von Anfragen an Handler im Service Worker verwendet werden kann. const p = new URLPattern({ protocol: 'https', hostname: 'example.com', pathname: '/:folder/*/:fileName.jpg', });
- Die API Intl.DisplayNames wurde erweitert, um lokalisierten Bezeichnungen für Sprachen, Länder, Währungen, Datumsangaben usw. zu erhalten. In der neuen Version wurden neue Typen von Bezeichnungen "calendar" und "dateTimeField" hinzugefügt, über die lokalisierten Bezeichnungen für Kalender und Datums- sowie Zeitfelder (z.B. Monatsnamen) abgerufen werden können. Für den Typ "language" wurde die Unterstützung für die Verwendung von Dialekten hinzugefügt.
- In der API Intl.DateTimeFormat wurde die Unterstützung neuer Werte für den Parameter timeZoneName hinzugefügt: «shortGeneric» für die Ausgabe einer kurzen Zeitzonen-ID (z.B. «PT», «ET»), «longGeneric» für eine lange ID («Pacific Time», «Mountain Time»), «shortOffset» mit einer kurzen Abweichung von GMT («GMT+5») und «longOffset» mit einer langen Abweichung von GMT («GMT+0500»).
- Die U2F-API (Cryptotoken) wird als veraltet angesehen und sollte durch die Web-Authentifizierungs-API ersetzt werden. Die U2F-API wird standardmäßig in der Chrome-Version 98 deaktiviert und in Chrome 104 vollständig entfernt.
- Verbesserungen wurden an den Werkzeugen für Webentwickler vorgenommen. Im Styles-Bereich wurde die Anpassung von CSS-Eigenschaften, die mit der Größe zu tun haben (height, padding usw.), vereinfacht. In der Issues-Registerkarte besteht die Möglichkeit, einzelne Probleme auszublenden. In der Web-Konsole sowie in den Bereichen Sources und Properties wurde die Darstellung der Eigenschaften optimiert (benutzerdefinierte Eigenschaften werden jetzt fett hervorgehoben und stehen oben auf der Liste).

Neben den Neuerungen und Fehlerbehebungen in der neuen Version wurden 19 Schwachstellen behoben. Viele dieser Schwachstellen wurden durch automatisierte Tests mit den Tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL entdeckt. Kritische Probleme, die alle Sicherheitsebenen des Browsers umgehen und Code außerhalb der Sandbox-Umgebung ausführen können, wurden nicht gefunden. Im Rahmen des Programms zur Vergütung von Sicherheitsforschern wurden für die aktuelle Version von Google insgesamt 16 Prämien in Höhe von 74.000 US-Dollar ausgezahlt (eine Prämie von 20.000 $, zwei Prämien von 10.000 $, eine Prämie von 7.500 $, eine Prämie von 6.000 $, drei Prämien von 5.000 $ sowie je eine Prämie von 3.000 $, 2.000 $ und 1.000 $). Die Höhe von 5 Prämien ist noch nicht festgelegt.
Quelle: opennet.ru


