Die Google GmbH hat die Version 129 des Web-Browsers Chrome veröffentlicht. Gleichzeitig ist die stabile Version des freien Projekts Chromium erhältlich, das die Basis für Chrome bildet. Der Browser Chrome unterscheidet sich von Chromium durch die Verwendung der Google-Logos, das Vorhandensein eines Systems zur Übermittlung von Benachrichtigungen im Falle eines Absturzes, Modulen zur Wiedergabe von kopiergeschütztem Videoinhalt (DRM), einem System für die automatische Installation von Updates, die ständige Aktivierung der Sandbox-Isolierung, die Bereitstellung von Schlüsseln für die Google API und die Übertragung von RLZ-Parametern bei der Suche. Für Nutzer, die mehr Zeit für die Aktualisierung benötigen, wird die Extended Stable-Version, die 8 Wochen unterstützt, separat angeboten. Die nächste Version von Chrome 130 ist für den 15. Oktober geplant.
Wesentliche Änderungen in Chrome 129:
- Die Anpassung des Inhalts der Symbolleiste wurde hinzugefügt, die es dem Benutzer ermöglicht, Symbole mit einem im Seitenbereich angezeigten Konfigurator anzuheften, loszulösen und neu anzuordnen. Beispielsweise kann die Schaltfläche zum Öffnen der Entwicklerschnittstelle, das Löschen von Browserdaten, das Öffnen des Lesemodus, der Zugriff auf den Task-Manager, der Passwortmanager usw. auf der Leiste platziert werden. Um die Möglichkeit des Anheftens von Symbolen zu steuern, wurde die Option „chrome://flags/#toolbar-pinning“ hinzugefügt.

- Eine Funktion zum Vergleichen von Tabs wurde vorgeschlagen, die maschinelles Lernen nutzt, um einen Vergleich von Produkten zu generieren, deren Seiten in verschiedenen Tabs geöffnet sind. Diese Funktion ist vorerst nur für Benutzer in den USA verfügbar.

- In der Version für die Android-Plattform wurde die Verschiebung inaktiver Tabs in einen separaten Abschnitt (Inaktive Tabs) der Tab-Wechseloberfläche realisiert. Es gibt die Möglichkeit, alle alten Tabs und das gleichzeitige Schließen zu überprüfen. Standardmäßig ist die neue Funktion für 1 % der Benutzer aktiviert. Tabs werden automatisch gelöscht, nachdem sie mehr als 60 Tage im Abschnitt Inaktive Tabs waren.
- Ein experimenteller Modus für die gemeinsame Nutzung von Prozessen wurde hinzugefügt, der es ermöglicht, dass für verschiedene Tabs, in denen dieselbe Website geöffnet ist, ein gemeinsamer Zeichenprozess anstelle separater Prozesse verwendet wird. Diese Änderung beschleunigt das Laden von Seiten und reduziert den Speicherverbrauch. Um diesen Modus zu aktivieren, wurde die Einstellung „chrome://flags/#enable-process-per-site-up-to-main-frame-threshold“ hinzugefügt.
- Die Möglichkeit wurde hinzugefügt, Websites einmalige Berechtigungen zu erteilen, die nur in den Rahmen der aktuellen Sitzung gelten (zum Beispiel kann der Zugriff auf Kamera und Mikrofon gewährt werden, der bis zum Schließen des Tabs oder dem Wechsel zu einer anderen Website wirkt).
- Die Unterstützung für die Plattform macOS 10.15 wurde eingestellt, deren Unterstützung 2022 von Apple eingestellt wurde.
- Für die Plattformen Windows und macOS wurde eine neue Schnittstelle zur Verwaltung von Zertifikaten im Konfigurator implementiert (zuvor wurden auf diesen Plattformen die systemeigenen Schnittstellen zur Zertifikatsverwaltung aufgerufen).
- Der Zugang zu IP 0.0.0.0 wurde blockiert, um Angriffe auf lokale Dienste zu verhindern.
- Die bevorstehende Ersetzung des TLS-Schlüsselaustauschalgorithmus Kyber768+X25519 durch ML-KEM768+X25519 wurde angekündigt (der kürzlich angenommene ML-KEM-Standard basiert auf dem post-quantum Algorithmus Kyber, ist jedoch nicht vollständig mit seiner vorherigen Implementierung kompatibel).
- In der API Scheduler wurde die Methode „scheduler.yield()“ hinzugefügt, die es ermöglicht, während der Ausführung langwieriger Aufgaben vorübergehend die Kontrolle an den Haupt-Thread des Browsers zurückzugeben, damit aktuelle langwierige Aufgaben für wichtige Arbeiten unterbrochen werden können, wie zum Beispiel Eingabeverarbeitung und Frame-Zeichnung. Die Idee ist, lange Aufgaben in kleinere Aufgaben aufzuteilen, indem die Kontrolle regelmäßig über den Aufruf „await scheduler.yield();“ im Code zurückgegeben wird, was negative Auswirkungen langwieriger Aufgaben auf die Reaktionsfähigkeit bei der Nutzung der Website verringert.

- Die CSS-Eigenschaft „interpolate-size“ wurde hinzugefügt, die es ermöglicht, die Größe von Animationen nicht in absoluten Werten, sondern relativ zu Werten auszuwählen, die unter Verwendung der Eigenschaften auto, min-content oder fit-content berechnet werden. Für eine genauere Größensteuerung wurde die CSS-Funktion calc-size() vorgeschlagen, die ähnlich wie calc() ist, jedoch Operationen mit der tatsächlichen Größe von Elementen unterstützt, die je nach Inhalt variieren.
- Es wurden Änderungen an den CSS-Eigenschaften vorgenommen, um die Anzeige von Elementen zu steuern, die an der Position anderer Elemente (CSS Anchor Positioning) gebunden sind, ohne JavaScript zu verwenden, zum Beispiel zum Anheften an Elemente von Pop-ups (Popover), die ähnlich wie Tooltipps erscheinen. Gemäß den Empfehlungen der Arbeitsgruppe zur Standardisierung von CSS wurde die CSS-Eigenschaft „inset-area“ in „position-area“ umbenannt, die Eigenschaft „position-try-options“ in „position-try-fallbacks“, und in der Eigenschaft „position-try“ wurde die Notwendigkeit zur Angabe von inset-area() entfernt, d.h. anstelle von „position-try-fallbacks: inset-area(top)“ sollte man „position-try-fallbacks: top“ schreiben.
- Die API Intl hat die Methode Intl.DurationFormat hinzugefügt, um Dauerinformationen unter Berücksichtigung der gewählten Locale zu formatieren. Zum Beispiel: const l = "ru-RU"; const d = {hours: 1, minutes: 46, seconds: 40}; const opts = {style: "long"}; new Intl.DurationFormat(l, opts).format(d); // "1 Stunde, 46 Minuten, 40 Sekunden"
- In der API Web GPU wurde die Möglichkeit implementiert, den gesamten von dem Bildschirm unterstützten Helligkeitsbereich bei der Ausgabe von HDR-Bildern zu nutzen.
- In der API WebRTC wurde die Unterstützung für das Senden von Blobs mittels der Methode RTCDataChannel.send(Blob) und das Empfangen von Daten vom Typ Blob beim Verarbeiten des Ereignisses onMessage hinzugefügt, wenn im Attribut „binaryType“ der Wert „blob“ angegeben ist (früher wurde nur die Übertragung von Zeichenfolgen und ArrayBuffer unterstützt). Die Größe des Blobs ist auf den Wert maxMessageSize begrenzt.
- In der API WebAuthn wurden die Methoden PublicKeyCredential.toJSON(), parseCreationOptionsFromJSON() und parseRequestOptionsFromJSON() zur Serialisierung/Deserialisierung von WebAuthn-Antworten im JSON-Format hinzugefügt.
- Im Modus „Origin Trials“ wurde die API FileSystemObserver implementiert, die es Webseiten ermöglicht, Änderungen an Dateien und Verzeichnissen zu verfolgen.
- Im Modus „Origin Trials“ wurde die API Mesh2D Canvas hinzugefügt, um eine große Anzahl von texturierten Dreiecken zu visualisieren. Zu den Anwendungsbereichen der API gehören die Implementierung erweiterter Methoden des Textur-Mappings und die Erstellung von Verzerrungseffekten im zweidimensionalen Kontext.
- Die Möglichkeiten der Werkzeuge für Webentwickler wurden erweitert.
Neben den Neuerungen und Fehlerbehebungen in der neuen Version wurden 9 Sicherheitsanfälligkeiten beseitigt. Viele dieser Anfälligkeiten wurden durch automatisierte Tests mit den Werkzeugen AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL entdeckt. Einem Problem wurde ein hohes Gefährdungsniveau zugewiesen (falsche Typverarbeitung in der V8-Engine). 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 Auszahlung von Prämien für die Entdeckung von Sicherheitsanfälligkeiten hat Google für die aktuelle Version 5 Prämien in Höhe von insgesamt 13.000 US-Dollar vergeben (eine Prämie in Höhe von 8.000 USD und 2.000 USD sowie drei Prämien von je 1.000 USD). Der Betrag einer einzelnen Prämie ist noch nicht festgelegt.
Quelle: opennet.ru



