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.

- 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.

- 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.


- 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.

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





