Google hat die Version 89 des Web-Browsers Chrome veröffentlicht. Gleichzeitig steht die stabile Version des freien Projekts Chromium zur Verfügung, auf dem Chrome basiert. Der Browser Chrome zeichnet sich durch die Verwendung von Google-Logos, ein Benachrichtigungssystem bei Abstürzen, Module zur Wiedergabe von geschützten Videoinhalten (DRM), ein automatisches Update-System und die Übertragung von RLZ-Parametern bei der Suche aus. Die nächste Version, Chrome 90, ist für den 13. April geplant.
Hauptänderungen in Chrome 89:
- Die Chrome-Version für Android kann nun nur auf Play Protect-zertifizierten Geräten ausgeführt werden. In virtuellen Maschinen wurde vereinfacht. und Emulatoren kann Chrome für Android verwendet werden, wenn ein zulässiges Gerät emuliert wird oder der Emulator von Google entwickelt wurde. Den Zertifizierungsstatus eines Geräts kann man in der Google Play-App im Einstellungsbereich überprüfen (auf der Einstellungsseite wird ganz unten der Status "Play Protect certification" angezeigt). Für nicht zertifizierte Geräte, wie zum Beispiel bei der Verwendung von benutzerdefinierten ROMs, wird den Benutzern empfohlen, ihre Geräte zu registrieren, um Chrome auszuführen.
- Für einen kleinen Prozentsatz der Nutzer wird standardmäßig die Öffnung von Websites über HTTPS aktiviert, wenn Hostnamen in die Adresszeile eingegeben werden. Zum Beispiel wird bei der Eingabe des Hosts example.com standardmäßig die Website https://example.com geöffnet, und wenn beim Öffnen Probleme auftreten, erfolgt ein Rollback auf http://example.com. Um die standardmäßige Verwendung von „https://“ zu steuern, wird die Einstellung „chrome://flags#omnibox-default-typed-navigations-to-https“ angeboten.
- Die Unterstützung von Profilen ist aktiv, die es verschiedenen Benutzern ermöglichen, ihre Konten im selben Browser zu teilen. Beispielsweise können Profile den Zugang für Familienmitglieder organisieren oder die Nutzung von Sitzungen für berufliche und private Interessen aufteilen. Ein Benutzer kann ein neues Chrome-Profil erstellen und dessen Aktivierung beim Verbinden mit einem bestimmten Google-Konto einrichten, sodass verschiedene Benutzer Lesezeichen, Einstellungen und Browserverlauf teilen können. Wenn versucht wird, sich mit einem Konto anzumelden, das an ein anderes Profil gebunden ist, wird der Benutzer aufgefordert, zu diesem Profil zu wechseln. Wenn der Benutzer mehrere Profile hat, wird die Auswahl des gewünschten Profils ermöglicht. Es ist möglich, verschiedenen Profilen unterschiedliche Farbgebungen zur visuellen Unterscheidung zuzuweisen.

- Die Anzeige von Inhaltsvorschauen wird aktiviert, wenn der Mauszeiger über die Registerkarten in der oberen Leiste bewegt wird. Zuvor war die Vorschau von Inhalten in den Registerkarten standardmäßig deaktiviert und erforderte eine Änderung der Einstellung „chrome://flags/#tab-hover-cards“.

- Für einen Teil der Nutzer ist die Funktion „Lesezeichenliste“ (Reading List, „chrome://flags#read-later“) aktiviert. Wenn diese aktiviert ist, erscheint beim Klicken auf das Sternchen in der Adressleiste neben der Schaltfläche „Lesezeichen hinzufügen“ eine zweite Schaltfläche „Zur Lesezeichenliste hinzufügen“. In der rechten Ecke der Lesezeichenleiste wird ein Menü „Lesezeichenliste“ angezeigt, in dem alle zuvor hinzugefügten Seiten aufgelistet sind. Wird eine Seite aus der Liste geöffnet, wird sie als gelesen markiert. Seiten in der Liste können ebenfalls manuell als gelesen oder ungelesen markiert oder aus der Liste entfernt werden.

- Für Nutzer, die sich bei einem Google-Konto anmelden, ist der Zugriff auf Zahlungsmethoden und gespeicherte Passwörter in diesem Google-Konto ohne aktivierte Chrome-Synchronisation verfügbar. Diese Möglichkeit ist für einen Teil der Nutzer aktiviert und wird schrittweise für die übrigen verfügbar gemacht.
- Die Unterstützung für die schnelle Tabsuche ist aktiviert, die zuvor über den Flag „chrome://flags/#enable-tab-search“ aktiviert werden musste. Der Benutzer kann eine Liste aller geöffneten Tabs einsehen und den gewünschten Tab schnell filtern, unabhängig davon, ob er sich im aktuellen oder in einem anderen Fenster befindet.

- Für alle Benutzer wurde die Verarbeitung der Eingabe einzelner Wörter in die Adresszeile als Versuche zum Öffnen interner Seiten eingestellt. Zuvor versuchte der Browser zunächst, durch DNS zu ermitteln, ob ein Host mit diesem Namen existierte, wenn ein einzelnes Wort in die Adresszeile eingegeben wurde, in der Annahme, dass der Benutzer versucht, eine Subdomain zu öffnen, und leitete die Anfrage dann an die Suchmaschine weiter. So erhielt der Eigentümer des DNS-Servers, der in den Benutzereinstellungen angegeben war, Informationen über eingehende Suchanfragen, die aus einem einzigen Wort bestanden, was als Verletzung der Privatsphäre galt. Für Unternehmen, die Internet-Hosts ohne Subdomain verwenden (z. B. „https://helpdesk/“), gibt es die Option, das alte Verhalten wiederherzustellen.
- Es wurde die Möglichkeit zur Festlegung einer festen Version der Erweiterung oder der Anwendung eingeführt. Beispielsweise kann ein Administrator mithilfe der neuen Richtlinie ExtensionSettings Chrome so konfigurieren, dass nur geprüfte Erweiterungen im Unternehmen verwendet werden, indem er eine eigene URL für das Herunterladen von Updates anstelle der im Manifest der Erweiterung angegebenen URL verwendet.
- Auf x86-Systemen ist jetzt die Unterstützung von SSE3-Befehlen durch den Prozessor notwendig, die von Intel-Prozessoren seit 2003 und von AMD seit 2005 unterstützt werden.
- Zusätzliche APIs wurden hinzugefügt, um Funktionen bereitzustellen, die Drittanbieter-Cookies ersetzen können, die zur Verfolgung der Bewegungen von Nutzern über Websites hinweg in Werbenetzwerken, sozialen Widget-Systemen und Web-Analytiksystemen verwendet werden. Folgende APIs wurden für Tests vorgeschlagen:
- Trust Token zur Trennung von Nutzern ohne die Verwendung von websiteübergreifenden Identifikatoren.
- First-Party-Sets – ermöglicht es verbundenen Domains, sich als primär zu deklarieren, damit der Browser diese Verbindung bei websiteübergreifenden Anfragen berücksichtigen kann.
- Schemeful Same-Site zur Ausweitung des Verständnisses von Same-Site auf verschiedene URL-Schemata, d.h. http://website.example und https://website.example werden bei websiteübergreifenden Anfragen als eine Website behandelt.
- FLoC zur Bestimmung der Interessenprofile der Nutzer ohne individuelle Identifikation und ohne Verknüpfung mit dem Besuchsverlauf bestimmter Websites.
- Conversion Measurement zur Bewertung der Nutzeraktivität nach dem Klick auf Werbung.
- User-Agent Client Hints zur Ersetzung des User-Agent und zur selektiven Bereitstellung von Daten über spezifische Browser- und Systemparameter (Version, Plattform usw.).
- Die Serial-API wurde hinzugefügt, um Webseiten das Lesen und Schreiben von Daten über serielle Ports zu ermöglichen. Der Zweck dieser API besteht darin, Webanwendungen zu erstellen, die eine direkte Kontrolle über Geräte wie Mikrocontroller und 3D-Drucker ermöglichen. Um auf das Peripheriegerät zuzugreifen, ist eine ausdrückliche Genehmigung durch den Benutzer erforderlich.
- Die WebHID-API wurde hinzugefügt, um einen Low-Level-Zugriff auf HID-Geräte (Human Interface Device, Tastaturen, Mäuse, Gamepads, Touchpads) zu ermöglichen, wodurch die Logik für die Interaktion mit HID-Geräten in JavaScript implementiert werden kann, um mit seltenen HID-Geräten zu arbeiten, ohne dass spezifische Treiber im System vorhanden sind. Der neue API konzentriert sich insbesondere darauf, Unterstützung für Gamepads bereitzustellen.
- Die Web NFC-API wurde hinzugefügt, wodurch Webanwendungen NFC-Tags lesen und schreiben können. Zu den Anwendungsbeispielen des neuen APIs in Webanwendungen gehören die Bereitstellung von Informationen zu Museumsausstellungen, die Durchführung von Inventuren und das Abrufen von Informationen von Konferenzteilnehmerausweisen usw. Das Senden und Scannen von Tags erfolgt über die Objekte NDEFWriter und NDEFReader.
- Die Web Share-API (Objekt navigator.share) wurde auch für Desktop-Browser verfügbar gemacht (vorerst nur für Windows und Chrome OS). Die Web Share-API bietet Funktionen zum Teilen von Informationen in sozialen Netzwerken, zum Beispiel ermöglicht sie das Erstellen eines einheitlichen Buttons für die Veröffentlichung in sozialen Netzwerken, die der Besucher nutzt, oder das Organisieren des Sendens von Daten an andere Anwendungen.
- In den Android-Versionen und der WebView-Komponente ist die Unterstützung für das Dekodieren des Bildformat AVIF (AV1 Image Format) enthalten, das Techniken der intraframe-Kompression aus dem Video-Encoding-Format AV1 nutzt (in den Desktop-Versionen wurde die AVIF-Unterstützung bereits in Chrome 85 eingeführt). Der Container für die Verbreitung komprimierter Daten im AVIF-Format ist vollständig analog zu HEIF. AVIF unterstützt sowohl Bilder im HDR (High Dynamic Range) sowie im Wide-Gamut-Farbraum als auch im Standard-Dynamikbereich (SDR).
- Eine neue Reporting-API wurde hinzugefügt, um Informationen über Verstöße gegen die sicheren Nutzungsrichtlinien auf Seiten privilegierter Operationen zu erhalten, die über den COOP (Cross-Origin-Opener-Policy)-Header festgelegt wurden, und die es auch ermöglicht, COOP in einen Debugging-Modus zu versetzen, der ohne Blockierung von Regelverstößen funktioniert.
- Die Funktion performance.measureUserAgentSpecificMemory() wurde hinzugefügt, um den Speicherbedarf bei der Verarbeitung der Seite zu bestimmen.
- Um den Anforderungen des Webstandards gerecht zu werden, werden nun alle "data:"-URLs als potenziell vertrauenswürdig behandelt, d.h. sie sind Teil eines geschützten Kontexts.
- Die API Streams unterstützen jetzt Byte Streams, die speziell für die effiziente Übertragung beliebiger Byte-Sets optimiert sind und die Anzahl der Datenkopiervorgänge minimieren. Der Ausgabestrom kann in primitive Typen wie Strings oder ArrayBuffer geschrieben werden.
- In SVG-Elementen wird die vollständige Syntax der Eigenschaft «filter» unterstützt, was es ermöglicht, sowohl SVG- als auch Nicht-SVG-Elementen Funktionen wie blur(), sepia() und grayscale() gleichzeitig anzuwenden.
- In CSS wurde das Pseudo-Element «::target-text» implementiert, das verwendet werden kann, um einen Textabschnitt, auf den über einen Link gescrollt wurde, mit einem anderen Stil hervorzuheben als dem, den der Browser bei der Hervorhebung von gefundenem Text verwendet.
- CSS-Eigenschaften zur Steuerung der Abrundung von Ecken wurden hinzugefügt: border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius.
- Die CSS-Eigenschaft forced-colors wurde hinzugefügt, um festzustellen, ob der Browser eine benutzerdefinierte, eingeschränkte Farbpalette auf der Seite anwendet.
- Die CSS-Eigenschaft forced-color-adjust wurde hinzugefügt, um das erzwungene Farbabgleichs für einzelne Elemente zu deaktivieren und vollen Farbmanagement über CSS zu ermöglichen.
- In JavaScript ist die Verwendung des Schlüsselworts await auf der obersten Ebene von Modulen erlaubt, was eine sanftere Integration von asynchronen Aufrufen in den Modul-Ladeprozess ermöglicht, ohne dass sie in eine „async function“ verpackt werden müssen. Anstatt (async function() { await Promise.resolve(console.log('test')); }()); kann man jetzt einfach await Promise.resolve(console.log('test')); schreiben.
- Im JavaScript-Engine V8 wurde der Funktionsaufruf beschleunigt, wenn die Anzahl der übergebenen Argumente nicht mit den in der Funktion definierten Parametern übereinstimmt. Bei einer Diskrepanz der Argumentanzahl stieg die Leistung im Non-JIT-Modus um 11,2 %, während sie beim Einsatz von JIT TurboFan um 40 % zulegte.
- Eine Vielzahl kleinerer Verbesserungen für die Webentwickler-Tools wurde implementiert.
Neben den Neuerungen und Fehlerbehebungen in der neuen Version wurden 47 Sicherheitsanfälligkeiten behoben. Viele dieser Schwachstellen wurden durch automatisierte Tests mit den Werkzeugen AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL entdeckt. Kritische Probleme, die es ermöglichen, alle Sicherheitsstufen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung auszuführen, wurden nicht identifiziert. Es wird jedoch darauf hingewiesen, dass eine der behobenen Sicherheitsanfälligkeiten (CVE-2021-21166), die sich auf die Lebensdauer von Objekten im Audiosubsystem bezieht, eine 0-Day-Problematik darstellt und vor der Behebung in einem der Exploits verwendet wurde. Im Rahmen des Programms zur Auszahlung von Belohnungen für die Entdeckung von Sicherheitsanfälligkeiten hat Google für die aktuelle Version insgesamt 33 Prämien in Höhe von 61.000 US-Dollar ausgezahlt (zwei Prämien über 10.000 US-Dollar, zwei Prämien über 7.500 US-Dollar, drei Prämien über 5.000 US-Dollar, zwei Prämien über 3.000 US-Dollar, vier über 1.000 US-Dollar und zwei Prämien über 500 US-Dollar). Die Höhe von 18 Prämien ist noch nicht festgelegt.
Quelle: opennet.ru




