Die Firma Google hat die Version 126 des Web-Browsers Chrome veröffentlicht. Gleichzeitig ist die stabile Version des freien Projekts Chromium verfügbar, das die Grundlage für Chrome bildet. Der Browser Chrome unterscheidet sich von Chromium durch die Verwendung von Google-Logos, einem Benachrichtigungssystem im Falle eines Absturzes, Modulen zur Wiedergabe von kopiergeschütztem Videoinhalt (DRM), einem automatischen Update-System, der ständigen Aktivierung der Sandbox-Isolation, der Bereitstellung von Schlüsseln für die Google API und der Übermittlung von RLZ-Parametern während der Suche. Für diejenigen, die mehr Zeit für das Update benötigen, wird separat der Zweig Extended Stable unterstützt, der 8 Wochen lang gepflegt wird. Die nächste Ausgabe von Chrome 127 ist für den 23. Juli geplant.
Wesentliche Änderungen in Chrome 126:
- Im integrierten PDF-Viewer wurde die Möglichkeit zur Textentnahme aus Dokumenten integriert, die über die Option „Text aus PDF extrahieren“ im Kontextmenü aufgerufen werden kann. Für die Extraktion von Text aus gescannten Dokumenten, in denen der Text als Bild enthalten ist, wird ein Mechanismus zur optischen Zeichenerkennung (OCR) basierend auf einem maschinellen Lernsystem verwendet. Es wird erwartet, dass diese neue Funktion die Arbeit mit PDF-Dokumenten für Menschen mit Sehbehinderungen, die Bildschirmleser verwenden, erleichtert. Zukünftig ist geplant, die Texterkennung für in den Seiten dargestellten Bildern und Screenshots zu implementieren. Der OCR-Engine ist standardmäßig bei 50 % der Benutzer aktiviert, während die anderen ihn über die Einstellung „chrome://flags/#pdf-ocr“ aktivieren können.

- Auf die Konfigurationsseite mit den Leistungseinstellungen
(„Leistung / Speicherspeicherung“ im Abschnitt chrome://settings/performance) wurde die Möglichkeit hinzugefügt, den Aggressivitätsgrad des Modus zur Speicherersparnis (Memory Saver) anzupassen, der den RAM-Verbrauch reduziert, indem er den Speicher von inaktiven Tabs freigibt. Beispielsweise wird bei Auswahl eines moderaten Niveaus der Browser weniger Tabs aus dem Speicher entladen als bei der Einstellung des maximalen Niveaus. Diese Einstellung, die standardmäßig nur für einige Benutzer verfügbar ist, kann über die Option „chrome://flags/#memory-saver-aggressiveness“ aktiviert werden.
- Für einige Benutzer wird im PDF-Viewer standardmäßig die neue OOPIF-Architektur (out-of-process iframe) verwendet, bei der der Inhalt des Dokuments in einem separaten Prozess verarbeitet wird. Diese neue Architektur ist von den Komplikationen befreit, die bei der Implementierung auf Basis des Mechanismus GuestView auftreten, 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.
- Es wurde ein reaktiver Vorab-Lade-Modus (Reactive prefetch) hinzugefügt, der verwandte Ressourcen im Hintergrund während der Navigation lädt, ohne auf deren tatsächliche Anforderung zu warten, was das Öffnen neuer Seiten beschleunigt. Zur Vorhersage der Ressourcen, die möglicherweise benötigt werden, wird ein externer Google-Dienst verwendet, der eine Liste von Empfehlungen zurückgibt, nachdem die URLs der Seiten, die durchforstet werden, eingegeben wurden.
- Die Möglichkeit, in Google Lens nach beliebigen Bildern und Texten, die auf dem Bildschirm sichtbar sind, zu suchen, wurde hinzugefügt. Diese Funktion kann über das Kontextmenü, das Symbol in der Adresszeile oder das Menü „⋮“ aktiviert werden, wonach der Benutzer das Interessenelement auf dem Bildschirm auswählen und Informationen darüber von Google Lens erhalten kann. Bei der Ausführung dieser Operation wird Server ein Screenshot des Bildschirms an Google gesendet.
Diese Funktion ist vorerst standardmäßig für 1 % der Benutzer aktiviert. Um die Unterstützung für Google Lens zu aktivieren und zu deaktivieren, kann die Option „chrome://flags/#enable-lens-region-search-static-page“ verwendet werden. - Die Ergebnisse der Optimierungen zur Beschleunigung des Speedometer 3-Tests wurden vorgestellt – die Leistung von Chrome in diesem Test hat sich in zwei Jahren um 72 % erhöht. Beispielsweise wurde die Funktion SpaceSplitString, die beim Parsen von Ausdrücken wie „class=’foo bar'“ verwendet wird, beschleunigt, Funktionen zur Speicherverwaltung wurden optimiert, überflüssige Operationen bei der Arbeit mit Web-Formularen wurden entfernt und die am häufigsten verwendeten Aktionen wurden beschleunigt. Auch die Verwendung von innerHTML wurde optimiert, und die Schriftartenrendition wurde schneller. Diese Verbesserungen wurden ebenfalls durch eine Optimierung des Garbage Collectors im V8-Engine erzielt, dessen Effizienz durch die Aktivierung der Müllsammlung während der Leerlaufzeit des Renderprozesses gesteigert wurde, um nicht mit der Anwendung um CPU-Ressourcen zu konkurrieren.

- Die Effizienz im Umgang mit Cookies wurde erheblich verbessert, wodurch die Verzögerungen bei der Arbeit mit Websites reduziert werden konnten. Bisher wurde bei jedem Zugriff auf Cookies eine synchrone IPC-Anfrage vom den die Website bearbeitenden Prozess an den Prozess gesendet, der die Netzwerkanforderungen verwaltet. Da in Webanwendungen die Werte aus Cookies sehr aktiv genutzt werden, verzögerten solche Anfragen zwischen Prozessen die Arbeit, während 87 % der Zugriffe auf einen anderen Prozess überflüssig waren.
Zur Lösung des Problems wurde eine neue Architektur eingeführt, bei der jeder Prozess eine eigene Kopie der Cookie-Daten enthält und direkt darauf zugreift. Änderungen an Cookies, die beispielsweise beim Arbeiten mit denselben Cookies in einem anderen Tab auftreten können, werden über einen Versionsmechanismus überwacht. Die Essenz dieses Mechanismus ist, dass jedem Wert
document.cookie ein Zähler mit einer Versionsnummer angehängt wird, der im Shared Memory gespeichert wird, sich bei Änderungen des Wertes erhöht und beim Lesen mit dem vorhandenen Exemplar abgeglichen wird.
- Die Möglichkeit zur Verwendung der API View Transitions wurde hinzugefügt, um Übergangsanimationseffekte beim Wechsel von einer Seite zu einer anderen innerhalb derselben Website (same-origin) zu erstellen. Zuvor konnte diese API nur für Effekte zwischen verschiedenen DOM-Zuständen auf einer Seite (z. B. sanfter Übergang von einem Bild zu einem anderen) verwendet werden. 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 Webanwendungen ermöglicht, Close-Anfragen zu verfolgen und darauf zu reagieren (z. B. kann ein Handler für die Schaltfläche „Zurück“ auf Android-Smartphones erstellt werden).
Close-Anfragen werden bei dem Versuch erzeugt, modale (<dialog>) und Pop-up-Dialogs (popover="") durch Drücken der Esc-Taste, Verwenden der Schaltfläche „Zurück“ oder durch Wischgesten auf Smartphones zu schließen. - Die API Gamepad, die es ermöglicht, Ereignisse von Gamepads und Spielcontrollern zu verfolgen und zu verarbeiten, hat Unterstützung für Feedback-Mechanismen (trigger-rumble) hinzugefügt, z. B. Vibration.
- In die Schnittstellen GeolocationCoordinates und GeolocationPosition wurde die Methode .toJSON() zur Serialisierung von Objekten mit Koordinaten im JSON-Format hinzugefügt.
- In der ChromeOS-Version wurde die Unterstützung für den Tab-Anzeigemodus (CSS-Eigenschaft „display: tabbed“) hinzugefügt, der es ermöglicht, Tabs in einer einzigen Webanwendung zu verwenden, zum Beispiel zur Organisation der Bearbeitung mehrerer Dokumente.
- Eine experimentelle Funktion (Origin Trial) zur Vorschau von Inhalten von Kamera oder Mikrofon wurde hinzugefügt.
- Die Shader-Kompilierung 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 ermöglicht).
- Verbesserungen an den Werkzeugen für Webentwickler wurden vorgenommen. Im Bereich ‘Anwendung > Speicher’ wurde die Möglichkeit hinzugefügt, Daten zu inspizieren, die mit der API Storage Buckets gespeichert wurden, die eine Segmentierung des Speichers ermöglicht, die mit der API IndexedDB und CacheStorage verknüpft ist. Im Leistungsbewertungs-Dashboard wurde die Möglichkeit hinzugefügt, Tracks zu verschieben und auszublenden sowie Informationen zur Skriptausführung aus dem Leistungsdiagramm auszuschließen und den Modus zur künstlichen Verlangsamung der Systemleistung um das 20-Fache zu aktivieren.

Im Netzwerkaktivitäts-Tracker wurde die Unterstützung für das Ersetzen der vollständigen HTTP-Header-Zeile in der erhaltenen Antwort im Format „Name: Wert“ bereitgestellt. Im Panel zur Überwachung des Speicherverbrauchs wurden Filter zur Identifizierung ineffizienter Speichernutzung hinzugefügt, wie zum Beispiel die Existenz von doppelten Zeichenfolgen oder das Beibehalten von Objekten, die mit getrennten DOM-Knoten verbunden sind.

Neben Neuerungen und Fehlerbehebungen wurden in der neuen Version 21 Sicherheitsanfälligkeiten behoben. Viele dieser Sicherheitsanfälligkeiten wurden durch automatisierte Tests mit den Tools AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL identifiziert. Neun Probleme wurden als hochgefährlich eingestuft. Kritische Probleme, die die Umgehung aller Sicherheitsebenen des Browsers ermöglichen und die Ausführung von Code im System außerhalb der Sandbox-Umgebung erlauben, wurden nicht festgestellt. Im Rahmen des Programms zur Belohnung bei der Entdeckung von Sicherheitsanfälligkeiten hat Google für die aktuelle Version 11 Prämien in Höhe von über 168.000 US-Dollar ausgezahlt.
Für die Schwachstelle CVE-2024-5839, die mit einem Problem in der Implementierung des Speicherzuweisungsmechanismus zusammenhängt, wurde eine Rekordprämie von 100.115 Dollar gezahlt. Diese Schwachstelle wurde mit einem mittleren Gefährdungsgrad eingestuft, da sie potenziell zu einer Beeinträchtigung des Speichers im Heap führen kann, wenn speziell gestaltete HTML-Inhalte verarbeitet werden. Darüber hinaus wurden jeweils eine Prämie von 25.000, 7.000, 3.000, 2.000, 1.000 und 500 Dollar gezahlt sowie zwei Prämien in Höhe von 10.000 und 5.000 Dollar. Die Größe von 7 Belohnungen ist bisher nicht festgelegt.
Quelle: opennet.ru






