Google hat die Version 129 des Web-Browsers Chrome veröffentlicht. Gleichzeitig steht die stabile Version des Open-Source-Projekts Chromium zur Verfügung, das die Grundlage für Chrome bildet. Der Browser Chrome unterscheidet sich von Chromium durch die Verwendung der Google-Logos, ein Benachrichtigungssystem im Falle eines Absturzes, Module zur Wiedergabe kopiergeschützten Videoinhalts (DRM), ein automatisches Update-System, permanente Sandbox-Isolierung, die Bereitstellung von Schlüsseln für die Google API und die Übertragung von RLZ-Parametern beim Suchen. Für diejenigen, die mehr Zeit für das Update benötigen, wird zusätzlich der Extended Stable-Zweig unterstützt, der 8 Wochen lang begleitet wird. Die nächste Veröffentlichung von Chrome 130 ist für den 15. Oktober geplant.
Wesentliche Änderungen in Chrome 129:
- Die Möglichkeit zur Anpassung des Inhalts der Symbolleiste wurde hinzugefügt, sodass Benutzer Icons anheften, loslösen und verschieben können, indem sie den Konfigurator im Seitenbereich nutzen. Zum Beispiel können Schaltflächen auf der Symbolleiste platziert werden, um die Entwickleroberfläche aufzurufen, Browserdaten zu löschen, den Lesemodus zu öffnen, den Task-Manager zu starten, den Passwortmanager zu öffnen usw. Um die Funktion zum Anheften von Icons zu aktivieren, wurde die Option „chrome://flags/#toolbar-pinning“ hinzugefügt.

- Eine Funktion zum Vergleichen von Tabs wurde vorgeschlagen, die maschinelles Lernen nutzt, um einen Vergleichsüberblick über Produkte zu erstellen, deren Informationen in verschiedenen Tabs geöffnet sind. Diese Funktion ist derzeit nur für Nutzer aus den USA verfügbar.

- In der Android-Version wurde die Verschiebung inaktive Tabs in einen separaten Bereich (Inactive Tabs) der Tab-Wechseloberfläche implementiert. Es besteht die Möglichkeit, alle alten Tabs anzusehen und sie gleichzeitig zu schließen. Standardmäßig ist diese neue Funktion für 1 % der Benutzer aktiviert. Tabs werden automatisch entfernt, nachdem sie mehr als 60 Tage im Abschnitt Inactive Tabs waren.
- Ein experimenteller Modus zur gemeinsamen Nutzung von Prozessen wurde hinzugefügt. Die Idee dahinter ist, dass für verschiedene Tabs, in denen dieselbe Webseite geöffnet ist, ein gemeinsamer Rendering-Prozess verwendet wird, anstatt separater Prozesse. Diese Änderung ermöglicht schnellere Seitenladezeiten und verringert den Speicherverbrauch. Um diesen Modus zu aktivieren, wurde die Einstellung „chrome://flags/#enable-process-per-site-up-to-main-frame-threshold“ hinzugefügt.
- Es wurde die Möglichkeit hinzugefügt, Webseiten einmalige Berechtigungen zu erteilen, die nur für die Dauer der aktuellen Sitzung gelten (zum Beispiel kann Zugriff auf die Kamera und das Mikrofon gewährt werden, der bis zur Schließung des Tabs oder dem Wechsel zu einer anderen Webseite aktiv bleibt).
- Die Unterstützung für die Plattform macOS 10.15 wurde eingestellt, nachdem Apple dies im Jahr 2022 bekannt gegeben hat.
- Für die Plattformen Windows und macOS wurde im Konfigurator eine neue Benutzeroberfläche zur Verwaltung von Zertifikaten implementiert (zuvor wurden die systemeigenen Schnittstellen zur Verwaltung von Zertifikaten auf diesen Plattformen verwendet).
- Der Zugriff auf die IP 0.0.0.0 wurde gesperrt, um Angriffe auf lokale Dienste zu verhindern.
- Die bevorstehende Umstellung des TLS-Schlüsselaustauschalgorithmus von Kyber768+X25519 auf ML-KEM768+X25519 wurde angekündigt (der neu angenommene Standard ML-KEM basiert auf dem post-quantenalgorithmischen Kyber, ist jedoch nicht vollständig kompatibel mit seiner vorherigen Implementierung).
- Im 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. Dies erlaubt es, die aktuelle langwierige Aufgabe anzuhalten, um wichtige Arbeiten wie Eingabeverarbeitung und Frame-Rendering durchzuführen. Die Idee besteht darin, langwierige Aufgaben in kleinere Abschnitte zu unterteilen, indem die Kontrolle durch den Aufruf „await scheduler.yield();“ im Code regelmäßig wieder an den Haupt-Thread übergeben wird. So wird die negative Auswirkung langwieriger Aufgaben auf die Reaktionsfähigkeit der Seite verringert.

- Die CSS-Eigenschaft „interpolate-size“ wurde hinzugefügt, um die Größe von Animationen nicht in absoluten Werten, sondern relativ zu Werten zu wählen, die bei der Verwendung der Eigenschaften auto, min-content oder fit-content berechnet werden. Für eine präzisere Größenkontrolle wurde die CSS-Funktion calc-size() vorgeschlagen, die ähnlich wie calc() funktioniert, aber Operationen mit der tatsächlichen Größe von Elementen unterstützt, die je nach Inhalt variieren.
- Es wurden Änderungen an den CSS-Eigenschaften zur Steuerung der Anzeige von Elementen vorgenommen, die an der Position anderer Elemente ausgerichtet sind (CSS Anchor Positioning), ohne Verwendung von JavaScript. Dies ist beispielsweise nützlich, um Popup-Elemente (Popover) zu verankern, die ähnlich wie Tooltips erscheinen. Gemäß den Empfehlungen der CSS-Standardisierungsarbeitsgruppe wurde die CSS-Eigenschaft „inset-area“ in „position-area“ umbenannt, die Eigenschaft „position-try-options“ in „position-try-fallbacks“, und bei der Eigenschaft „position-try“ entfällt die Notwendigkeit, inset-area() anzugeben. Anstelle von „position-try-fallbacks: inset-area(top)“ sollte jetzt „position-try-fallbacks: top“ geschrieben werden.
- Im API Intl wurde die Methode Intl.DurationFormat hinzugefügt, um Dauerangaben entsprechend der gewählten Lokalisierung 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"
- Im Web GPU API wurde die Möglichkeit implementiert, den gesamten Helligkeitsbereich zu nutzen, der vom Bildschirm unterstützt wird, beim Ausgeben von HDR-Bildern.
- Im WebRTC-API wurde die Unterstützung für das Senden von Blobs über die Methode RTCDataChannel.send(Blob) und das Empfangen von Daten des Typs Blob beim Verarbeiten des Ereignisses onMessage hinzugefügt, wenn im Attribut „binaryType“ der Wert „blob“ angegeben ist (zuvor wurden nur Zeichenfolgen und ArrayBuffer unterstützt). Die Größe des Blobs ist auf den Wert maxMessageSize begrenzt.
- Im WebAuthn-API wurden die Methoden PublicKeyCredential.toJSON(), parseCreationOptionsFromJSON() und parseRequestOptionsFromJSON() zur Serialisierung/Deserialisierung von WebAuthn-Antworten im JSON-Format hinzugefügt.
- Im „Origin trials“-Modus wurde die API FileSystemObserver implementiert, die es Websites ermöglicht, Änderungen an Dateien und Verzeichnissen zu verfolgen.
- Im „Origin trials“-Modus wurde die API Mesh2D Canvas zur Visualisierung einer großen Anzahl von texturierten Dreiecken hinzugefügt. Zu den Anwendungsmöglichkeiten der API zählen die Implementierung erweiterter Methoden zur Texturenauswertung und die Erstellung von Verzerrungseffekten im zweidimensionalen Kontext.
- Die Möglichkeiten der Werkzeuge für Webentwickler wurden erweitert.
Neben neuen Funktionen und Fehlerbehebungen wurden in der neuen Version neun Sicherheitsanfälligkeiten beseitigt. Viele der Schwachstellen wurden durch automatisierte Tests mit den Tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL identifiziert. Einem Problem wurde ein hohes Gefahrenniveau zugewiesen (falsche Typenbehandlung in der V8-Engine). Kritische Probleme, die es ermöglichen würden, alle Sicherheitsebenen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung auszuführen, wurden nicht gefunden. Im Rahmen des Programms zur Belohnung von Sicherheitsanfälligkeiten hat Google für die aktuelle Version fünf Prämien in Höhe von insgesamt 13.000 US-Dollar ausgezahlt (eine Prämie in Höhe von 8.000 und 2.000 US-Dollar sowie drei Prämien zu je 1.000 US-Dollar). Die Höhe einer einzelnen Belohnung wurde noch nicht festgelegt.
Quelle: opennet.ru



