Google hat die Version 126 des Webbrowsers Chrome veröffentlicht. Gleichzeitig steht die stabile Version des Open-Source-Projekts Chromium zur Verfügung, auf dem Chrome basiert. Der Browser Chrome unterscheidet sich von Chromium durch die Verwendung von Google-Logos, ein System zur Benachrichtigung über Abstürze, Module zur Wiedergabe kopiergeschützten Videoinhalts (DRM), ein automatisches Update-Installationssystem, die dauerhafte Aktivierung der Sandbox-Isolation, die Bereitstellung von Schlüsseln für die Google API sowie die Übertragung von RLZ-Parametern bei der Suche. Für diejenigen, die mehr Zeit für ein Update benötigen, wird eine separate Extended Stable-Version unterstützt, die 8 Wochen lang aktiv bleibt. Die nächste Version Chrome 127 ist für den 23. Juli geplant.
Die wichtigsten Änderungen in Chrome 126:
- Der integrierte PDF-Viewer bietet die Möglichkeit, Text aus Dokumenten zu extrahieren, die über die Option „Text aus PDF extrahieren“ im Kontextmenü aufgerufen werden kann. Für die Extraktion von Text aus gescannten Dokumenten, in denen Text als Bild eingefügt ist, wird ein optisches Zeichenerkennungssystem (OCR) auf Basis maschinellen Lernens verwendet. Diese neue Funktion soll die Arbeit mit PDF-Dokumenten für Menschen mit Sehbehinderungen, die Bildschirmleser verwenden, erleichtern. Zukünftig ist geplant, die Texterkennung auch für Bilder auf den Seiten und für Screenshots zu implementieren. Der OCR-Engine ist standardmäßig bei 50% der Nutzer aktiviert, die anderen können ihn über die Einstellung „chrome://flags/#pdf-ocr“ aktivieren.

- Zur Konfigurationsseite mit Leistungseinstellungen
(„Leistung/Speichereinsparung“ im Abschnitt chrome://settings/performance) wurde die Möglichkeit zur Anpassung des Aggressivitätsniveaus des Speichermodus (Memory Saver) hinzugefügt, der den RAM-Verbrauch durch das Freigeben von Speicher, der von inaktiven Tabs belegt wird, reduziert. Zum Beispiel wird bei der Auswahl eines moderaten Niveaus der Browser weniger Tabs aus dem Speicher entladen als bei der maximalen Einstellung. Die Einstellung, die standardmäßig nur für einen Teil der Nutzer verfügbar ist, kann über die Option „chrome://flags/#memory-saver-aggressiveness“ aktiviert werden.
- Für einige Nutzer ist im PDF-Viewer standardmäßig eine neue OOPIF-Architektur (out-of-process iframe) aktiviert, bei der der Inhalt des Dokuments in einem separaten Prozess verarbeitet wird. Diese neue Architektur ist frei von den Komplikationen, die mit der Implementierung auf Basis des GuestView-Mechanismus verbunden sind, und vereinfacht die Hinzufügung neuer Funktionen zum PDF-Viewer. Um die neue Architektur zu aktivieren, kann die Einstellung „chrome://flags/#pdf-oopif“ verwendet werden.
- Der Reactive Prefetch-Modus wurde hinzugefügt, der beim Navigieren verwandte Seitenressourcen lädt, ohne auf deren tatsächliche Anforderung zu warten. Dies beschleunigt das Öffnen neuer Seiten. Zur Vorhersage von Ressourcen, die möglicherweise später benötigt werden, wird ein externer Dienst von Google verwendet, der nach dem Senden von URLs die Liste der Empfehlungen zurückgibt.
- Die Suche im Google Lens-Dienst nach beliebigen Bildern und Texten, die auf dem Bildschirm sichtbar sind, wurde hinzugefügt. Diese Option kann über das Kontextmenü, das Symbol in der Adresszeile oder das Menü „⋮“ aktiviert werden, wonach der Nutzer ein interessantes Objekt auf dem Bildschirm auswählen kann, um Informationen darüber von Google Lens zu erhalten. Bei dieser Aktion wird ein der Server Screenshot
an Google gesendet. Diese Funktion ist derzeit standardmäßig für 1 % der Nutzer aktiviert. Zum Aktivieren und Deaktivieren der Google Lens-Unterstützung kann der Parameter „chrome://flags/#enable-lens-region-search-static-page“ verwendet werden. - Die Ergebnisse der Optimierungen zur Beschleunigung des Speedometer 3-Tests sind da — innerhalb von zwei Jahren ist die Leistung von Chrome in diesem Test um 72 % gestiegen. So wurde beispielsweise die Funktion SpaceSplitString, die beim Parsen von Ausdrücken wie „class=’foo bar'“ verwendet wird, beschleunigt, die Speicherverwaltungsfunktionen wurden optimiert, überflüssige Operationen beim Arbeiten mit Webformular-Elementen wurden eliminiert, und die am häufigsten verwendeten Aktionen wurden beschleunigt. Zudem wurde die Nutzung von innerHTML optimiert, und die Schriftarten werden schneller gerendert. Auch dank der Optimierung des Garbage Collectors im V8-Motor konnte eine Leistungssteigerung erzielt werden, wobei die Effizienz durch die Aktivierung der Müllabfuhr während der Leerlaufzeit des Renderprozesses erhöht wurde, um nicht mit der Anwendung um CPU-Ressourcen zu konkurrieren.

- Die Effizienz im Umgang mit Cookies wurde erheblich verbessert, was zu einer Verringerung der Latenzzeiten bei der Nutzung von Websites führte. Bisher wurde bei jedem Zugriff auf Cookies von dem für die Webseitenverarbeitung zuständigen Prozess eine synchrone IPC-Anfrage an den Prozess gesendet, der für die Netzwerkinteraktion zuständig ist. Da in Web-Anwendungen häufig Werte aus Cookies verwendet werden, verzögerten solche Anfragen zwischen Prozessen die Arbeitsgeschwindigkeit, während 87 % der Zugriffe auf einen anderen Prozess überflüssig waren.
Um das Problem zu lösen, wurde eine neue Architektur implementiert, bei der jeder Prozess seine eigene Kopie der Cookie-Daten enthält und direkt darauf zugreift. Änderungen an Cookies, die beispielsweise durch die Nutzung der gleichen Cookies in einem anderen Tab entstehen können, werden über einen Versionierungsmechanismus verfolgt. Die Kerne dieses Mechanismus besteht darin, dass jeder Wert
document.cookie mit einem Versionszähler versehen wird, der im gemeinsam genutzten Speicher gespeichert wird, beim Ändern des Wertes erhöht wird und beim Lesen mit der vorhandenen Instanz abgeglichen wird.
- Die Möglichkeit zur Verwendung der API View Transitions für die Erstellung von Übergangsanimationseffekten beim Wechsel von einer Seite zur anderen innerhalb derselben Website (same-origin) wurde hinzugefügt. Zuvor konnte diese API nur für Effekte zwischen verschiedenen DOM-Zuständen auf einer Seite verwendet werden (z. B. sanfter Übergang von einem Bild zu einem anderen). Für die Anwendung von Übergangseffekten zwischen verschiedenen Dokumenten sollte die Eigenschaft „navigation: auto“ in der @-Regel „view-transition“ verwendet werden.
- Die API CloseWatcher wurde aktiviert, die es ermöglicht, Close-Anfragen in Webanwendungen zu verfolgen und darauf zu reagieren (zum Beispiel kann ein Handler für die Zurück-Taste auf Android-Smartphones erstellt werden).
Close-Anfragen werden erstellt, wenn versucht wird, modale (<dialog>) und Popup-Dialoge (popover=„“) über Drücken der Escape-Taste, Nutzung der Zurück-Taste oder durch einen Wischgesten auf Smartphones zu schließen. - Im API Gamepad, das es ermöglicht, Ereignisse von Gamepads und Spielcontrollern zu verfolgen und zu verarbeiten, wurde die Unterstützung für Feedback-Mechanismen (trigger-rumble), wie zum Beispiel Vibration, hinzugefügt.
- In den Interfaces GeolocationCoordinates und GeolocationPosition wurde die Methode .toJSON() zur Serialisierung von Objekten mit Koordinaten im JSON-Format hinzugefügt.
- In der Version für ChromeOS wurde die Unterstützung für den Tab-Display-Modus (CSS-Eigenschaft „display: tabbed“) hinzugefügt, der es ermöglicht, Tabs in einer einzigen Webanwendung zu verwenden, zum Beispiel um mehrere Dokumente zu bearbeiten.
- Eine experimentelle Möglichkeit (Origin-Trial) zur Vorschau von Inhalten, die von der Kamera oder dem Mikrofon empfangen werden, wurde hinzugefügt.
- Die Kompilierung von Shadern im WebGPU-API wurde erheblich beschleunigt. Im Backend für die Grafik-API Vulkan wurde das Laden von Daten in die GPU optimiert (direktes Schreiben in den GPU-Puffer ohne Zwischenkopierung wird unterstützt).
- Verbesserungen wurden an den Tools für Webentwickler vorgenommen. Im Abschnitt ‚Anwendung > Speicher‘ wurde die Möglichkeit hinzugefügt, Daten zu inspizieren, die mit der API Storage Buckets gespeichert wurden. Dadurch wird die Organisation der Datenspeicherung in separate Segmente ermöglicht, die mit der API IndexedDB und CacheStorage assoziiert sind. In der Leistungsbewertung wurde die Option zum Verschieben und Ausblenden von Spuren hinzugefügt, ebenso wie die Möglichkeit, Informationen zur Ausführung von Skripten aus dem Leistungsdiagramm auszuschließen und den Modus für künstliche Systemverlangsamung um das 20-Fache zu aktivieren.

Im Netzwerkaktivitäts-Tracking-Panel wurde die Unterstützung für die Ersetzung des vollen Strings mit dem HTTP-Header im Format ‚Name: Wert‘ im erhaltenen Antwortbereich hinzugefügt. Im Speicherverbrauchsmonitor wurden Filter hinzugefügt, um ineffizientes Speichermanagement zu identifizieren, wie z. B. das Vorhandensein von Duplikaten von Strings oder das Verlassen von Objekten, die mit getrennten DOM-Knoten verbunden sind.

Neben den Neuerungen und Fehlerbehebungen in der neuen Version wurden 21 Sicherheitsanfälligkeiten behoben. Viele dieser Schwachstellen wurden durch automatisierte Tests mit den Tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL entdeckt. Neun dieser Probleme wurden als hochgefährlich eingestuft. Kritische Probleme, die es ermöglichen, alle Browserschutzmaßnahmen zu umgehen und Code außerhalb der Sandbox-Umgebung auszuführen, wurden nicht gefunden. Im Rahmen des Belohnungsprogramms zur Entdeckung von Sicherheitsanfälligkeiten hat Google für diesen Release insgesamt 11 Prämien in Höhe von über 168.000 US-Dollar ausgeschüttet.
Für die Sicherheitsanfälligkeit CVE-2024-5839, die mit einem Problem bei der Implementierung des Speicherzuweisungsmechanismus zusammenhängt, wurde eine Rekordprämie in Höhe von 100.115 US-Dollar ausgezahlt. Diese Schwachstelle wurde als mittelgefährlich eingestuft, obwohl sie potenziell zu Speicherbeschädigungen im Heap bei der Verarbeitung speziell gestalteter HTML-Inhalte führen kann. Darüber hinaus wurden Prämien in Höhe von 25.000, 7.000, 3.000, 2.000, 1.000 und 500 US-Dollar ausgezahlt, sowie jeweils zwei Prämien in Höhe von 10.000 und 5.000 US-Dollar. Die Höhe von 7 Prämien ist bisher noch nicht festgelegt.
Quelle: opennet.ru






