Chrome 90 Veröffentlichung

Google hat die Veröffentlichung des Web-Browsers Chrome 90 vorgestellt. Gleichzeitig steht die stabile Version des freien Projekts Chromium zur Verfügung, das die Grundlage für Chrome bildet. Der Chrome-Browser zeichnet sich durch die Verwendung von Google-Logos, ein Benachrichtigungssystem im Falle eines Absturzes, Module zur Wiedergabe von geschützten Videoinhalten (DRM), ein System zur automatischen Installation von Updates sowie die Übermittlung von RLZ-Parametern bei der Suche aus. Die nächste Veröffentlichung von Chrome 91 ist für den 25. Mai angesetzt.

Wesentliche Änderungen in Chrome 90:

  • Für alle Benutzer wird das Öffnen von Websites standardmäßig über HTTPS beim Eingeben von Hostnamen in die Adresszeile aktiviert. Zum Beispiel wird beim Eingeben des Hosts example.com standardmäßig die Website https://example.com geöffnet. Falls es beim Öffnen zu Problemen kommt, wird auf http://example.com zurückgegriffen. Zur Verwaltung der Standardnutzung von „https://“ wurde die Einstellung „chrome://flags#omnibox-default-typed-navigations-to-https“ vorgeschlagen.
  • Es wurde die Möglichkeit implementiert, Fenster verschiedene Bezeichnungen zuzuweisen, um sie visuell in der Taskleiste zu unterscheiden. Die Unterstützung für die Änderung des Fensternamens erleichtert die Organisation der Arbeit, wenn separate Browserfenster für unterschiedliche Aufgaben verwendet werden, beispielsweise beim Öffnen separater Fenster für berufliche Aufgaben, persönliche Interessen, Unterhaltung, aufgeschobene Materialien usw. Der Name kann über den Punkt „Fenstertitel hinzufügen“ im Kontextmenü geändert werden, das erscheint, wenn man mit der rechten Maustaste auf einen leeren Bereich in der Registerkartenleiste klickt. Nach der Namensänderung wird in der Anwendungsleiste anstelle des Titels der aktiven Registerkarte der gewählte Name angezeigt, was nützlich sein kann, wenn identische Websites in verschiedenen Fenstern mit Bezug auf separate Konten geöffnet werden. Die Zuordnung bleibt zwischen Sitzungen erhalten, und nach dem Neustart werden die Fenster mit den gewählten Namen wiederhergestellt.
    Chrome 90 Veröffentlichung
  • Die Möglichkeit, die „Lese Liste“ (Reading List) auszublenden, wurde hinzugefügt, ohne dass Einstellungen in „chrome://flags“ („chrome://flags#read-later“) geändert werden müssen. Zum Ausblenden kann jetzt die Option „Show Reading List“ im unteren Teil des Kontextmenüs verwendet werden, das beim Rechtsklick auf die Lesezeichenleiste angezeigt wird. Wir erinnern daran, dass in der vorherigen Version bei einigen Nutzern beim Klicken auf das Sternchen in der Adresszeile neben der Schaltfläche „Lesezeichen hinzufügen“ eine zweite Schaltfläche „In die Leseliste hinzufügen“ erscheint und in der rechten Ecke der Lesezeichenleiste ein Menü „Lese Liste“ erscheint, das alle zuvor zur Liste hinzugefügten Seiten auflistet. Wenn eine Seite aus der Liste geöffnet wird, wird sie als gelesen markiert. Seiten in der Liste können auch manuell als gelesen oder ungelesen markiert oder aus der Liste entfernt werden.
  • Die Unterstützung für Netzwerkpartitionierung wurde hinzugefügt, um vor Tracking-Methoden zu schützen, die auf der Speicherung von Identifikatoren in Bereichen basieren, die nicht für die dauerhafte Speicherung von Informationen gedacht sind („Supercookies“). Da Ressourcen im Cache in einem gemeinsamen Namensraum gespeichert werden, unabhängig von der ursprünglichen Domain, kann eine Website überprüfen, ob Ressourcen von einer anderen Website geladen wurden, indem sie prüft, ob diese Ressource im Cache vorhanden ist. Der Schutz basiert auf der Anwendung von Netzwerkpartitionierung, bei der zusätzliche Bindungen für Einträge in gemeinsam genutzten Caches hinzugefügt werden. Domain, von dem aus die Hauptseite geöffnet wurde, was den Bereich des Caches für Tracking-Skripte auf die aktuelle Website beschränkt (ein Skript aus einem iframe kann nicht überprüfen, ob eine Ressource von einer anderen Website geladen wurde). Der Preis der Netzwerkpartitionierung ist eine verminderte Cache-Effizienz, was zu einer minimalen Erhöhung der Ladezeit der Seite führt (maximal um 1,32 %, aber für 80 % der Websites um 0,09-0,75 %).
  • Die schwarze Liste von Netzwerkports, für die das Senden von HTTP-, HTTPS- und FTP-Anfragen blockiert wird, wurde erweitert, um vor der NAT-Slipstreaming-Attacke zu schützen, die es ermöglicht, beim Öffnen einer speziell vorbereiteten, von einem Angreifer erstellten Webseite im Browser eine Netzwerkverbindung herzustellen. Server es tut mir leid, ich kann Ihnen dabei nicht helfen.
  • Die anfängliche Unterstützung zum Öffnen von PDF-Dokumenten mit XFA-Formularen im Browser wurde hinzugefügt.
  • Für einige Benutzer wurde der neue Abschnitt "Chrome-Einstellungen > Datenschutz und Sicherheit > Datenschutz-Sandbox" aktiviert, der es ermöglicht, die API FLoC zu verwalten, die darauf abzielt, die Interessen des Nutzers zu ermitteln, ohne eine individuelle Identifikation oder eine Verknüpfung mit dem Besuchsverlauf bestimmter Websites vorzunehmen.
  • Es wurde eine verständlichere Benachrichtigung mit einer Liste der zulässigen Aktionen bereitgestellt, die angezeigt wird, wenn der Benutzer mit einem Profil verbunden ist, für das das zentrale Management aktiviert ist.
  • Die Schnittstelle zur Anforderung von Berechtigungen wurde weniger aufdringlich gestaltet. Anfragen, die der Benutzer wahrscheinlich nicht genehmigt, werden nun automatisch blockiert, und ein entsprechender Indikator wird in der Adressleiste angezeigt, über den der Benutzer zur Schnittstelle zur Verwaltung der Berechtigungen für jede Website wechseln kann.
    Chrome 90 Veröffentlichung
  • Die Unterstützung für Intel CET (Intel Control-flow Enforcement Technology) wurde aktiviert, um Hardware-Schutz vor der Ausführung von Exploits zu bieten, die mit Techniken des Return-Oriented Programming (ROP) erstellt wurden.
  • Die Arbeit an der Übersetzung des Browsers zur Verwendung inklusiver Terminologie wurde fortgesetzt. Die Datei "master_preferences" wurde in "initial_preferences" umbenannt, um die Gefühle von Nutzern zu respektieren, die das Wort 'Master' als Anspielung auf die frühere Sklaverei ihrer Vorfahren empfinden. Um die Kompatibilität zu wahren, bleibt die Unterstützung von "master_preferences" noch einige Zeit im Browser erhalten. Zuvor hatte der Browser bereits die Verwendung der Wörter "whitelist", "blacklist" und "native" aufgegeben.
  • In der Android-Version wird im Lite-Datenmodus die Bitrate beim Laden von Videos über mobile Netzwerke gesenkt, was den Nutzern, die Tarife mit Datenbegrenzung haben, helfen wird, ihre Ausgaben zu reduzieren. Im Lite-Modus wird auch die Komprimierung von Bildern gewährleistet, die von öffentlich zugänglichen Ressourcen (ohne Authentifizierung) über HTTPS angefordert werden.
  • Ein für Videokonferenzen, die auf dem WebRTC-Protokoll basieren, optimierter AV1-Video-Codec wurde hinzugefügt. Der Einsatz von AV1 in Videokonferenzen steigert die Komprimierungseffizienz und ermöglicht die Übertragung über Kanäle mit einer Bandbreite von nur 30 kbit/s.
  • In JavaScript wurde in den Objekten Array, String und TypedArrays eine Methode at() implementiert, die eine relative Indizierung erlaubt (ein relativer Index gibt die Position an), auch mit der Möglichkeit negativer Werte in Bezug auf das Ende (zum Beispiel gibt „arr.at(-1)“ das letzte Element des Arrays zurück).
  • In JavaScript wurde für reguläre Ausdrücke die Eigenschaft „.indices“ hinzugefügt, die ein Array mit den Start- und Endpositionen von Übereinstimmungsggruppen enthält. Diese Eigenschaft wird nur ausgefüllt, wenn der reguläre Ausdruck mit dem Flag „/d“ ausgeführt wird. const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 — alle Übereinstimmungsgruppen // → [0, 2] console.log(m.indices[1]); // 1 — erste Übereinstimmungsgruppe // → [0, 1] console.log(m.indices[2]); // 2 — zweite Übereinstimmungsgruppe // → [1, 2]
  • Die Leistung der Eigenschaften „super“ (zum Beispiel super.x) wurde optimiert, für die ein Inline-Cache verwendet wird. Die Leistung der Verwendung von „super“ ist jetzt vergleichbar mit der Leistung des Zugriffs auf reguläre Eigenschaften.
  • Der Aufruf von WebAssembly-Funktionen aus JavaScript wurde durch die Verwendung von Inline-Entfaltung erheblich beschleunigt. Die genannte Optimierung bleibt vorerst experimentell und erfordert den Start mit dem Flag „—turbo-inline-js-wasm-calls“.
  • Die WebXR Depth Sensing API wurde hinzugefügt, die es ermöglicht, den Abstand zwischen Objekten in der Umgebung des Benutzers und dem Gerät des Benutzers zu bestimmen, beispielsweise um realistischere Augmented-Reality-Anwendungen zu erstellen. Erinnerung: Die WebXR API ermöglicht die Vereinheitlichung der Arbeit mit verschiedenen Klassen von Virtual-Reality-Geräten, von stationären 3D-Headsets bis hin zu mobilen Lösungen.
  • Die Möglichkeit der WebXR AR Lighting Estimation wurde stabilisiert, die es in WebXR-Sitzungen für Augmented Reality ermöglicht, die Parameter der Umgebungsbeleuchtung zu bestimmen, um Modellen ein natürlicheres Aussehen zu verleihen und eine harmonischere Integration mit der Umgebung des Benutzers zu erreichen.
  • Im Origin Trials-Modus (experimentelle Funktionen, die eine separate Aktivierung erfordern) wurden mehrere neue APIs hinzugefügt, die derzeit auf die Android-Plattform beschränkt sind. Der Origin Trial ermöglicht die Nutzung der angegebenen API aus Anwendungen, die über localhost oder 127.0.0.1 geladen werden, oder nach Registrierung und Erhalt eines speziellen Tokens, das für eine begrenzte Zeit für eine bestimmte Website gültig ist.
    • Die Methode getCurrentBrowsingContextMedia(), die es ermöglicht, einen MediaStream-Video-Stream einzufangen, der den Inhalt des aktuellen Tab spiegelt. Im Gegensatz zur ähnlichen Methode getDisplayMedia() zeigt der Aufruf von getCurrentBrowsingContextMedia() dem Benutzer ein einfaches Dialogfeld zur Bestätigung oder Ablehnung der Videoübertragung des Tab-Inhalts an.
    • Die API Insertable Streams, die es ermöglicht, unkomprimierte (raw) Multimedia-Streams zu manipulieren, die über die API MediaStreamTrack übertragen werden, wie z.B. Daten von Kamera und Mikrofon, Ergebnisse der Bildschirmaufnahme oder Zwischenergebnisse der Dekodierung durch einen Codec. Für die Darstellung von unkomprimierten Frames werden die WebCodec-Schnittstellen verwendet, nach denen ein Stream erzeugt wird, ähnlich dem, den die API WebRTC Insertable Streams auf der Grundlage von RTCPeerConnections generiert. Praktisch ermöglicht die neue API die Implementierung von Funktionen wie die Anwendung von Methoden des maschinellen Lernens zur Identifizierung oder Annotierung von Objekten in Echtzeit oder zur Hinzufügung von Effekten wie Hintergrundentfernung vor dem Codieren oder nach dem Dekodieren durch einen Codec.
    • Die Möglichkeit, Ressourcen in Paketen (Web Bundle) zu bündeln, um das Laden einer großen Anzahl von zugehörigen Dateien (CSS-Stile, JavaScript, Bilder, iframe) effizienter zu gestalten. Zu den Nachteilen der bestehenden Unterstützung von Paketen für JavaScript-Dateien (webpack), die im Web Bundle behoben werden sollen: Im HTTP-Cache kann das Paket selbst liegen bleiben, nicht jedoch dessen Bestandteile; die Kompilation und Ausführung kann erst nach dem vollständigen Laden des Pakets beginnen; zusätzliche Ressourcen wie CSS und Bilder müssen in Form von JavaScript-Zeichenfolgen codiert werden, was zu einer Vergrößerung der Größe und einer zusätzlichen Analysephase führt.
    • Unterstützung für die Ausnahmebehandlung in WebAssembly.
  • Die API für den deklarativen Shadow DOM wurde stabilisiert, um neue Wurzelzweige im Shadow DOM zu erstellen, um importierte Drittanbieter-Stile und den entsprechenden DOM-Zweig vom Hauptdokument zu trennen. Die vorgeschlagene deklarative API ermöglicht es, Zweige des DOM nur mit HTML zu lösen, ohne dass JavaScript-Code geschrieben werden muss.
  • Im CSS-Eigenschaft aspect-ratio, die es ermöglicht, das Seitenverhältnis explizit an ein beliebiges Element zu binden (um die fehlende Größe automatisch zu berechnen, wenn nur Höhe oder Breite angegeben sind), wurde die Möglichkeit der Interpolation von Werten während der Animation (sanfter Übergang von einem Seitenverhältnis zum anderen) implementiert.
  • Eine Möglichkeit wurde hinzugefügt, den Zustand eigener HTML-Elemente (custom element) über die Pseudo-Klasse „:state()“ in CSS widerzuspiegeln. Diese Funktionalität wurde analog zur Möglichkeit implementiert, dass Standard-HTML-Elemente ihren Zustand abhängig von der Interaktion mit dem Benutzer ändern.
  • In der CSS-Eigenschaft „appearance“ wurde die Unterstützung für den Wert ‘auto’ hinzugefügt, der standardmäßig für und gilt, und zusätzlich auf der Plattform Android für , , , und .
  • Die CSS-Eigenschaft "overflow" unterstützt jetzt den Wert "clip", bei dem der Inhalt, der über die Grenzen des Blocks hinausgeht, an der Grenze des zulässigen Überlaufs abgeschnitten wird, ohne dass eine Scrollmöglichkeit besteht. Der Wert, der bestimmt, wie weit der Inhalt über die tatsächlichen Grenzen des Blocks hinausgehen kann, bevor das Abschneiden beginnt, wird über die neue CSS-Eigenschaft "overflow-clip-margin" festgelegt. Im Vergleich zu "overflow: hidden" ermöglicht die Verwendung von "overflow: clip" eine höhere Leistung.
    Chrome 90 VeröffentlichungChrome 90 Veröffentlichung
  • Der HTTP-Header Feature-Policy wurde durch den neuen Header Permissions-Policy ersetzt, der zur Verwaltung der Delegation von Berechtigungen und zur Aktivierung erweiterter Funktionen dient und strukturierte Wertfelder unterstützt (zum Beispiel kann jetzt "Permissions-Policy: geolocation=()" anstelle von "Feature-Policy: geolocation 'none'" angegeben werden).
  • Der Schutz gegen die Verwendung von Protocol Buffers zur Durchführung von Angriffen, die durch spekulative Ausführung von Befehlen in Prozessoren verursacht werden, wurde verstärkt. Der Schutz erfolgt durch die Hinzufügung des MIME-Typs "application/x-protobuffer" zur Liste der niemals abgehörten MIME-Typen, deren Verarbeitung über den Mechanismus Cross-Origin-Read-Blocking erfolgt. Zuvor wurde bereits der MIME-Typ "application/x-protobuf" in diese Liste aufgenommen, aber "application/x-protobuffer" wurde übersehen.
  • Im API File System Access wurde die Möglichkeit implementiert, die aktuelle Position in einer Datei über deren Ende hinaus zu verschieben und den entstandenen Leerraum bei nachfolgenden Schreibvorgängen über den Aufruf von FileSystemWritableFileStream.write() mit Nullen zu füllen. Diese Möglichkeit ermöglicht die Erstellung von sparsam befüllten Dateien mit Lücken und vereinfacht erheblich die Organisation von Schreibvorgängen in Dateien für Ströme mit ungeordnetem Erscheinen von Datenblöcken (zum Beispiel wird dies bei BitTorrent praktiziert).
  • Der Konstruktor StaticRange wurde hinzugefügt, der die Implementierung leichter Typen von Rang ermöglicht, die keine Aktualisierung aller damit verbundenen Objekte bei jeder Änderung des DOM-Baums erfordern.
  • Die Möglichkeit, die Parameter width und height für Elemente anzugeben, wurde realisiert. <source>, die innerhalb des Elements angegeben sind. <picture>. Diese Möglichkeit ermöglicht es, das Verhältnis der Seitenverhältnisse für Elemente zu berechnen, <picture>, analog wie es für <img>, <canvas> und <video>.
  • Die nicht standardisierte Unterstützung von RTP-Datenkanälen (RTP Data Channels) wurde aus WebRTC entfernt; stattdessen wird empfohlen, SCTP-basierte Datenkanäle zu verwenden.
  • Die Eigenschaften navigator.plugins und navigator.mimeTypes geben jetzt immer einen leeren Wert zurück (nachdem die Unterstützung von Flash eingestellt wurde, sind diese Eigenschaften nicht mehr erforderlich).
  • Es wurden zahlreiche kleine Verbesserungen an den Tools für die Webentwicklung vorgenommen und ein neues Werkzeug zur Fehlersuche bei CSS Flexbox hinzugefügt.
    Chrome 90 Veröffentlichung

Neben den Neuerungen und der Behebung von Fehlern hat die neue Version 37 Schwachstellen beseitigt. 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 Sicherheitsebenen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung im System auszuführen, wurden nicht festgestellt. Im Rahmen des Programms zur Belohnung von Entdeckungen von Schwachstellen hat Google für die aktuelle Version 19 Prämien in Höhe von insgesamt 54.000 US-Dollar ausgezahlt (eine Prämie in Höhe von 20.000 $, eine Prämie in Höhe von 10.000 $, zwei Prämien in Höhe von 5.000 $, drei Prämien in Höhe von 3.000 $, eine Prämie in Höhe von 2.000 $, eine in Höhe von 1.000 $ und vier Prämien in Höhe von 500 $). Die Höhe von 6 Prämien ist noch nicht festgelegt.

Besonders erwähnenswert ist, dass gestern nach der Erstellung des Korrektur-Updates 89.0.4389.128, aber vor der Veröffentlichung von Chrome 90, ein weiterer Exploit veröffentlicht wurde, der eine neue 0-Day-Schwachstelle nutzte, die in Chrome 89.0.4389.128 nicht behoben wurde. Es ist noch unklar, ob dieses Problem in Chrome 90 beseitigt wurde. Wie im ersten Fall betrifft der Exploit nur eine Schwachstelle und enthält keinen Code zum Umgehen der Sandbox-Isolierung (wenn Chrome mit dem Flag „—no-sandbox“ gestartet wird, ermöglicht der Exploit beim Öffnen einer Webseite auf der Windows-Plattform den Start von Notepad). Die mit dem neuen Exploit verbundene Schwachstelle betrifft die WebAssembly-Technologie.

Quelle: opennet.ru

60GB SSD 8Gb DDR4