Die Firma Google hat die Veröffentlichung des Webbrowsers Chrome 95 vorgestellt. Gleichzeitig ist eine stabile Version des freien Projekts Chromium verfügbar, das die Grundlage für Chrome bildet. Der Browser Chrome unterscheidet sich durch die Verwendung von Google-Logos, eine Benachrichtigungssystem im Falle eines Absturzes, Module zum Abspielen von geschützten Video-Inhalten (DRM), ein automatisches Update-System und das Übertragen von RLZ-Parametern bei der Suche. Entsprechend dem neuen 4-wöchigen Entwicklungszyklus ist die nächste Veröffentlichung von Chrome 96 für den 16. November geplant. Für diejenigen, die mehr Zeit für das Update benötigen, wird gesondert der Zweig Extended Stable unterstützt, der 8 Wochen begleitet und ein Update für die vorherige Version Chrome 94 bereitstellt.
Die wichtigsten Änderungen in Chrome 95:
- Für Benutzer von Linux, Windows, macOS und ChromeOS wurde eine neue Seitenleiste eingeführt, die rechts vom Inhalt angezeigt wird und durch einen Klick auf ein spezielles Symbol in der Adressleiste aktiviert wird. In der Leiste wird eine Zusammenfassung von 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.

- Es wurde eine ausdrückliche Aufforderung zur Erlaubnis zur Speicherung von in Webformularen eingegebenen Adressen für die zukünftige Verwendung im automatischen Ausfüllsystem implementiert. Wenn Adressen in Formularen festgestellt werden, wird dem Benutzer jetzt ein Dialog angezeigt, der es ermöglicht, die Adresse zu speichern, zu bearbeiten, eine zuvor gespeicherte Adresse zu aktualisieren oder das Speichern abzulehnen.
- Der Code zur Unterstützung des FTP-Protokolls wurde entfernt. In Chrome 88 wurde die Unterstützung von FTP standardmäßig deaktiviert, jedoch gab es einen Schalter für die Wiederherstellung.
- Die Unterstützung von URLs mit Hostnamen, die mit einer Zahl enden, aber nicht den IPv4-Adressen entsprechen, wurde eingestellt. Zum Beispiel gelten die URLs "http://127.1/", "http://foo.127.1/" und "http://127.0.0.0.1" jetzt als ungültig.
- Für WebAssembly wurde die Möglichkeit zur Erstellung von Ausnahmebehandlern implementiert, die das Ausführen bei Auftreten einer Ausnahme während der Ausführung bestimmter Codes abfangen können. Sowohl das Abfangen bekannter Ausnahmen des WebAssembly-Moduls als auch Ausnahmen beim Aufruf importierter Funktionen werden unterstützt. Um Ausnahmen abfangen zu können, muss das WebAssembly-Modul mit einem Compiler, der Ausnahmen unterstützt, wie Emscripten, erstellt werden.
Es wird angemerkt, dass die Behandlung von Ausnahmen auf WebAssembly-Ebene die Größe des generierten Codes im Vergleich zur Ausnahmebehandlung durch JavaScript erheblich reduzieren kann. Beispielsweise führt die Binaryen-Optimierung mit Ausnahmebehandlung durch JavaScript zu einer Codeerhöhung um 43 %, während dies bei WebAssembly nur 9 % beträgt. Darüber hinaus unterscheidet sich der Code mit Ausnahmebehandlung durch WebAssembly bei Verwendung des Optimierungsmodus „-O3“ in der Leistung praktisch nicht von dem Code ohne Ausnahmebehandler, während die Ausnahmebehandlung durch JavaScript zu einer Verlangsamung von 30 % führt.
- Die gemeinsame Nutzung von WebAssembly-Modulen zwischen verschiedenen Domänen (Cross-Origin) ist bei der Verarbeitung einer Website verboten.
- Im Modus der Origin Trials (experimentelle Funktionen, die eine separate Aktivierung erfordern) wurden mehrere neue APIs hinzugefügt. Origin Trial bedeutet die Möglichkeit, mit der angegebenen API aus Anwendungen zu arbeiten, die von localhost oder 127.0.0.1 geladen werden, oder nach erfolgreicher Registrierung und Erhalt eines speziellen Tokens, der für eine begrenzte Zeit für eine bestimmte Website gültig ist.
- Die Komprimierung von Informationen im HTTP-Header User-Agent und den JavaScript-Parametern navigator.userAgent, navigator.appVersion und navigator.platform ist aktiviert. Im Header sind nur Angaben zum Namen des Browsers, zur Hauptversion des Browsers, zur Plattform und zum Gerätetyp (Mobiltelefon, PC, Tablet) enthalten. Um zusätzliche Daten wie die genaue Version und erweiterte Plattformdaten zu erhalten, müssen die API User Agent Client Hints verwendet werden. Der Beginn der Komprimierung des User-Agent bei Systemen normaler Benutzer ist für die Veröffentlichung von Chrome 102 vorgesehen, die in sechs Monaten herauskommt.
- Die Möglichkeit zur Erstellung von Zugriffshandles (Access Handles) für die API File System Access wurde vorgeschlagen, die es Webanwendungen ermöglicht, Daten direkt in Dateien und Verzeichnisse auf dem Gerät des Benutzers zu lesen und zu schreiben. Um die Methoden für den Zugriff von Webanwendungen auf das Dateisystem zu reduzieren, plant Google die Zusammenführung von API File System Access und Storage Foundation. Als Vorbereitung auf eine solche Zusammenführung wird die Unterstützung von Zugriffshandles vorgeschlagen, die die Methoden der Arbeit mit Datei-Deskriptoren um erweiterte Funktionen ergänzen, wie das Setzen von Schreibsperren durch andere Prozesse und die Erstellung separater Ströme für das Schreiben und Lesen, einschließlich der Unterstützung für das synchrone Lesen und Schreiben aus Workern.
- Die API zur Bestätigung von sicheren Zahlungen wurde stabilisiert und standardmäßig vorgeschlagen, mit der Einführung einer neuen Erweiterung 'payment', die eine zusätzliche Bestätigung der durchgeführten Zahlungsoperationen ermöglicht. Die prüfende Seite, zum Beispiel die Bank, hat die Möglichkeit, einen öffentlichen Schlüssel PublicKeyCredential zu generieren, der vom Verkäufer für eine zusätzliche sichere Bestätigung der Zahlung über die API Payment Request angefordert werden kann, unter Verwendung der Zahlungsmethode 'secure-payment-confirmation'.
- In den Callback-Aufrufen, die über den PerformanceObserver-Konstruktor festgelegt werden, wurde die Übertragung der Eigenschaft droppedEntriesCount implementiert, die es ermöglicht zu verstehen, wie viele Leistungsmetrik-Daten der Webseite aufgrund von Platzmangel im bereitgestellten Puffer verworfen wurden.
- Die API EyeDropper wurde hinzugefügt, die es ermöglicht, die Schnittstelle des Browsers aufzurufen, um die Farbe beliebiger Pixel auf dem Bildschirm zu bestimmen, was zum Beispiel in Grafikeditoren angewendet werden kann, die als Web-Anwendungen implementiert sind. const eyeDropper = new EyeDropper(); const result = await eyeDropper.open(); // result = {sRGBHex: '#160731'}
- Die Funktion self.reportError() wurde hinzugefügt, die es Skripten ermöglicht, Fehler in der Konsole auszugeben und dabei das Auftreten einer nicht abgefangenen Ausnahme zu emulieren.
- 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 Weiterleiten 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, über die lokalisierte Bezeichnungen von Sprachen, Ländern, Währungen, Datumsangaben usw. abgerufen werden können. In der neuen Version wurden die neuen Typen 'calendar' und 'dateTimeField' hinzugefügt, über die lokalisierte Bezeichnungen für Kalender und Felder von Datum und Zeit (zum Beispiel die Namen der Monate) abgerufen werden können. Für den Typ 'language' wurde die Unterstützung für die Verwendung von Dialekten ergänzt.
- 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 Zeitzonenkennung (zum Beispiel 'PT', 'ET'), 'longGeneric' für die lange Version ('Pacific Time', 'Mountain Time'), 'shortOffset' für eine kurze Offset-Angabe im Vergleich zu GMT ('GMT+5') und 'longOffset' für eine lange Offset-Angabe im Vergleich zu GMT ('GMT+0500').
- Die U2F-API (Cryptotoken) wurde als veraltet erklärt, und stattdessen sollte die API für Web-Authentifizierung verwendet werden. Die U2F-API wird in der Version Chrome 98 standardmäßig deaktiviert und in Chrome 104 vollständig entfernt.
- Verbesserungen wurden in den Werkzeugen für Webentwickler vorgenommen. In der Styles-Leiste wurde die Anpassung von CSS-Eigenschaften in Bezug auf die Größe (Höhe, Padding usw.) vereinfacht. Im Tab Issues gibt es die Möglichkeit, einzelne Probleme auszublenden. In der Webkonsole sowie in den Panels Sources und Properties wurde die Darstellung der Eigenschaften verbessert (benutzerdefinierte Eigenschaften werden jetzt fett hervorgehoben und stehen ganz oben auf der Liste).

Neben neuen Funktionen und Fehlerbehebungen wurden in der neuen Version 19 Sicherheitsanfälligkeiten behoben. Viele der Sicherheitsanfälligkeiten wurden durch automatisierte Tests mit den Werkzeugen AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL aufgedeckt. Kritische Probleme, die es ermöglichen, alle Schutzebenen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung auszuführen, wurden nicht festgestellt. Im Rahmen des Programms zur Vergabe finanzieller Belohnungen für die Entdeckung von Sicherheitsanfälligkeiten hat Google für dieses Release insgesamt 16 Prämien in Höhe von 74.000 US-Dollar gezahlt (eine Prämie von 20.000 US-Dollar, zwei Prämien von 10.000 US-Dollar, eine Prämie von 7.500 US-Dollar, eine Prämie von 6.000 US-Dollar, drei Prämien von 5.000 US-Dollar sowie je eine Prämie von 3.000, 2.000 und 1.000 US-Dollar). Der Betrag von 5 Belohnungen ist noch nicht festgelegt.
Quelle: opennet.ru


