Das Unternehmen Google Release des Web-Browsers . Gleichzeitig stabile Ausgabe des Open-Source-Projekts , das die Grundlage von Chrome bildet. Der Browser Chrome durch die Verwendung von Google-Logos, das Vorhandensein eines Systems zur Benachrichtigung bei Abstürzen, die Möglichkeit, Flash-Inhalte auf Anfrage zu laden, Module zur Wiedergabe von geschützten Videoinhalten (DRM), ein automatisches Aktualisierungssystem und der Übertragung bei der Suche . Die nächste Version Chrome 81 ist für den 17. März geplant.
:
- Für einen kleinen Prozentsatz der Nutzer wurde eine Funktion zur Gruppierung von Tabs angeboten, mit der mehrere ähnlich funktionale Tabs in visuell getrennte Gruppen zusammengefasst werden können. Jeder Gruppe kann eine eigene Farbe und einen Namen zugeordnet werden. Nutzer, die nicht in der ersten Welle der Aktivierung sind, können die Unterstützung für Gruppen über die Option „chrome://flags/#tab-groups“ aktivieren.
- Unterstützung für die Funktion , mit der Links zu einzelnen Wörtern oder Phrasen erstellt werden können, ohne dass im Dokument explizit Tags wie „a name“ oder die Eigenschaft „id“ angegeben werden müssen. Die Syntax solcher Links soll als Web-Standard genehmigt werden, der sich derzeit noch in der . Eine Maske für den Übergang (die im Grunde eine scrollbare Suche durchführt) wird durch das Zeichen „:~:“ vom normalen Ankerzeichen getrennt. Beispielsweise wird beim Öffnen des Links „https://opennet.ru/52312/#:~:text=Chromе“ die Seite an die Position des ersten Vorkommens des Wortes „Chromе“ verschoben, und dieses Wort wird hervorgehoben.
- eine strengere Einschränkung der Übertragung von Cookies zwischen Websites für nicht-HTTPS-Anfragen, die die Verarbeitung von Drittanbieter-Cookies verbietet, die bei Besuchen von Seiten, die sich von der Domain der aktuellen Seite unterscheiden, gesetzt werden. Solche Cookies werden verwendet, um die Bewegungen der Nutzer zwischen Websites im Code von Werbenetzwerken, sozialen Widget-Systemen und Web-Analysetools zu verfolgen. Es sei daran erinnert, dass zur Steuerung der Cookie-Übertragung das im Header angegebene Set-Cookie-Attribut SameSite verwendet wird, das jetzt standardmäßig auf den Wert „SameSite=Lax“ gesetzt ist, was den Versand von Cookies für intersite Subanfragen, wie z. B. beim Anfordern von Bildern oder beim Laden von Inhalten über ein iframe von einer anderen Website, einschränkt. Websites können den standardmäßig verwendeten SameSite-Modus neu definieren, indem sie beim Setzen von Cookies den Wert SameSite=None angeben. Gleichzeitig kann der Wert SameSite=None für Cookies nur im Secure-Modus (gilt für Verbindungen über HTTPS) gesetzt werden. Diese Änderung wird schrittweise ab dem 17. Februar, zunächst für einen kleinen Prozentsatz der Nutzer, und dann schrittweise die Abdeckung erweitern.
- Schutz vor lästigen Benachrichtigungen, die mit der Bestätigung von Berechtigungen verbunden sind. Da solche Aktivitäten, zum Beispiel Spam-Anfragen für Push-Benachrichtigungen, die Arbeit des Benutzers unterbrechen und die Aufmerksamkeit auf die Bestätigungsdialoge lenken, kann in Chrome 80 anstelle eines separaten Dialogs nun eine Informationsmeldung in der Adressleiste angezeigt werden, die vor der Blockierung der Berechtigungsanfrage warnt und dann in ein Symbol mit einem durchgestrichenen Glockenbild zusammengeklappt wird. Durch Klicken auf das Symbol kann die angeforderte Berechtigung jederzeit aktiviert oder abgelehnt werden. Der neue Modus wird automatisch selektiv für Benutzer aktiviert, die zuvor solche Anfragen in der Regel blockiert haben, sowie für Websites, bei denen ein hoher Prozentsatz an abgelehnten Anfragen festgestellt wird. Eine spezielle Option wurde in die Einstellungen eingefügt, um den neuen Modus für alle Anfragen zu aktivieren (chrome://flags/#quiet-notification-prompts).
- die Anzeige von Pop-ups (Aufruf der Methode window.open()) und das Senden von synchronen XMLHttpRequest-Anfragen in den Ereignis-Handlern für das Schließen oder Verstecken von Seiten (unload, beforeunload, pagehide und visibilitychange);
- Es wurde ein anfänglicher die Bereitstellung gemischter multimedialer Inhalte (wenn auf einer HTTPS-Seite Ressourcen über das Protokoll http:// geladen werden). Auf Seiten, die über HTTPS geöffnet werden, werden nun automatisch die Links „http://“ in „https://“ in den Abschnitten, die mit der Wiedergabe von Audio- und Videodateien verbunden sind, ersetzt. Wenn eine Audio- oder Videoressource nicht über https verfügbar ist, wird ihr Laden blockiert (manuell kann die Blockierung über das Menü markiert werden, das über das Schlosssymbol in der Adresszeile zugänglich ist).
Bilder werden ohne Änderungen weiterhin geladen (die automatische Umstellung wird in Chrome 81 angewendet), aber um auf https umzuschalten oder Bilder zu blockieren, stehen den Website-Entwicklern die CSP-Eigenschaften upgrade-insecure-requests und block-all-mixed-content zur Verfügung. Für Skripte und iframes wurde die Blockierung gemischter Inhalte bereits früher umgesetzt.
- Die schrittweise der Unterstützung für FTP hat begonnen. Standardmäßig bleibt die Unterstützung für FTP vorerst erhalten, wird aber Ein Experiment, in dessen Rahmen die Unterstützung für FTP bei einem bestimmten Prozentsatz von Nutzern deaktiviert wird (um zurückzukehren, muss der Browser mit der Option „—enable-ftp“ gestartet werden). Wir erinnern daran, dass in früheren Versionen bereits die Anzeige von Inhalten aus Ressourcen, die über das Protokoll „ftp://“ geladen wurden, im Browserfenster deaktiviert wurde (zum Beispiel wurde die Anzeige von HTML-Dokumenten und README-Dateien eingestellt), die Verwendung von FTP beim Laden von Subressourcen aus Dokumenten in der Regel untersagt und die Unterstützung von Proxy für FTP eingestellt wurde. Dennoch blieb bisher die Möglichkeit, Dateien über direkte Links herunterzuladen und den Inhalt von Verzeichnissen anzuzeigen.
-
Die Möglichkeit, Vektor-SVG-Bilder als Website-Ikone (favicon) zu verwenden. - In die Einstellungen wurde die Möglichkeit hinzugefügt, bestimmte Datentypen, die während der Synchronisierung zwischen den Browsern übertragen werden, selektiv zu deaktivieren.
- Für zentral verwaltete Unternehmensbenutzer wurde eine Regel hinzugefügt, , die die Installation externer Erweiterungen auf dem Gerät verbietet.
- Implementiert eine einmalige Überprüfung der gesamten Kette von Eigenschaften oder Aufrufen in JavaScript. Zum Beispiel musste man beim Zugriff auf „db.user.name.length“ zuvor schrittweise die Definition aller Bestandteile prüfen, zum Beispiel durch „if (db && db.user && db.user.name)“. Jetzt kann man mithilfe der Operation „?.“ auf den Wert „db?.user?.name?.length“ zugreifen, ohne vorherige Prüfungen durchzuführen, und dieser Zugriff führt nicht zu einer Fehlermeldung. Im Fall von Problemen (wenn ein Element als null oder undefined behandelt wird) wird als Ausgabe der Wert „undefined“ ausgegeben.
- In JavaScript wurde ein neuer logischer Operator für die Vereinigung „„ eingeführt, der den rechten Operanden zurückgibt, wenn der linke Operanden den Wert NULL oder undefined hat, und umgekehrt. Zum Beispiel gibt „const foo = bar ?? 'default string'“ den String oder, falls bar null ist, den Wert von bar zurück, auch wenn bar 0 oder ' ' ist, im Gegensatz zum Operator „||“.
- Im Origin Trials-Modus (experimentelle Möglichkeiten, die eine separate ) wurde die API zur Inhaltsindizierung vorgestellt. Der Origin Trial ermöglicht die Verwendung der angegebenen API aus Anwendungen, die von localhost oder 127.0.0.1 geladen werden, oder nach der Registrierung und dem Erhalt eines speziellen Tokens, das für einen begrenzten Zeitraum für eine bestimmte Website gültig ist. Die API , stellt Metadaten zu Inhalten bereit, die zuvor von Webanwendungen, die im Progressive Web Apps (PWS) Modus arbeiten, zwischengespeichert wurden. Die Anwendung kann verschiedene Daten auf der Client-Seite speichern, einschließlich Bilder, Videos und Artikel, und diese bei Verlust der Netzwerkverbindung mithilfe der API Cache Storage und IndexedDB nutzen. Die Content Indexing API ermöglicht das Hinzufügen, Auffinden und Löschen solcher Ressourcen. In Browsern wird diese API bereits verwendet, um eine Liste von Seiten und Multimedia-Inhalten anzuzeigen, die offline verfügbar sind.
- Stabilisiert und jetzt außerhalb der Origin Trials verbreitet ist die Programmierschnittstelle , die es dem Benutzer ermöglicht, Einträge aus dem Adressbuch auszuwählen und bestimmte Details über sie an die Website zu übergeben. Bei der Anfrage wird eine Liste von Eigenschaften definiert, die abgerufen werden müssen. Diese Eigenschaften werden dem Benutzer explizit angezeigt, der dann entscheidet, ob er diese Eigenschaften übergeben möchte oder nicht. Die API kann beispielsweise in einem webbasierten E-Mail-Client verwendet werden, um Empfänger für eine gesendete E-Mail auszuwählen, in einer webbasierten Anwendung mit VoIP-Funktion, um einen Anruf an eine bestimmte Nummer zu initiieren, oder in einem sozialen Netzwerk, um bereits registrierte Freunde zu suchen. Im Rahmen der Origin Trials wurden einige neue Eigenschaften für den Kontaktwähler vorgeschlagen: Neben den bereits verfügbaren Namen, E-Mail und Telefonnummer wurde die Möglichkeit hinzugefügt, eine Postadresse und ein Bild zu übergeben.
- In Web-Workern ein neuer Weg zum Laden von ECMAScript-Modulen, der es ermöglicht, ohne die Funktion importScripts() auszukommen, die die Arbeit des Workers während der Verarbeitung des importierten Skripts blockiert und es im globalen Kontext ausführt. Der neue Ansatz umfasst die Erstellung spezieller Module für Web Workers, die die standardmäßigen Importmechanismen von JavaScript unterstützen und dynamisch geladen werden können, ohne die Ausführung des Workers zu blockieren. Für das Laden von Modulen im Konstruktor Worker ist ein neuer Ressourcentyp vorgesehen – „module“:
const worker = new Worker('worker.js', {
type: 'module'
}); - eingebautes JavaScript-Feature zur Verarbeitung komprimierter Streams, das keine externen Bibliotheken erfordert. Zum Komprimieren und Dekomprimieren wurden die APIs . Die Komprimierung unterstützt die Algorithmen gzip und deflate.
const compressionReadableStream
= inputReadableStream.pipeThrough(new CompressionStream('gzip')); - Das CSS-Eigenschaft „“, das Zeilenumbrüche auf der Ebene beliebiger typografischer Zeichen, einschließlich Umbrüche neben Satzzeichen, vorgegebenen Leerzeichen (<pre>) und mitten in Wörtern, erlaubt. Außerdem wurde die CSS-Eigenschaft „» Erlaubt es, ununterbrochene Zeichenfolgen überall zu unterbrechen, wenn in der Zeile keine geeignete Trennposition gefunden werden konnte.
- Für den in verschlüsselter Form verarbeiteten Medienkontext wurde die Unterstützung der Methode , die Informationen zu den Dekodierungsfähigkeiten des Browsers in Bezug auf geschützte Inhalte bereitstellt (z. B. kann die angegebene Methode verwendet werden, um Szenarien für hochwertige oder energieeffiziente Dekodierungsarten basierend auf der verfügbaren Bandbreite und Bildschirmgröße auszuwählen).
- Eine Methode wurde hinzugefügt, , über die Informationen zur Video-Wiedergabequalität abgerufen werden können, um die Bitrate, Auflösung und andere Parameter des Videos anzupassen.
- Im API , der die Integration mit bestehenden Zahlungssystemen erleichtert, wurde die Möglichkeit hinzugefügt, Verarbeitung von Adresse und Kontaktinformationen an einen externen Zahlungsdienstleister zu delegieren (die Zahlungsanwendung kann genauere Informationen haben als der Browser).
- Unterstützung für den HTTP-Header , die das Senden zusätzlicher Metadaten über den Typ des mit der Anfrage verbundenen Inhalts ermöglicht (zum Beispiel wird für eine Anfrage über das img-Tag der Typ "image" angegeben, für Schriftarten – "font", für Skripte – "script", für Stile – "style" usw.). Basierend auf dem angegebenen Typ kann der Server Maßnahmen ergreifen, um sich vor bestimmten Angriffsarten zu schützen (zum Beispiel ist es unwahrscheinlich, dass ein Handler für Geldtransfers über das img-Tag definiert wird, daher müssen solche Anfragen nicht bearbeitet werden).
- Im JavaScript-Motor V8 der Speicherung von Zeigern im Heap durchgeführt. Anstelle des vollständigen 64-Bit-Werts wird nur die Speicherung der eindeutigen unteren Bits des Zeigers gewährleistet. Diese Optimierung führte zu einer Reduzierung des Speicherverbrauchs im Heap um 40 % bei einem Leistungseinbruch von 3-8 %.


- in den Werkzeugen für Web-Entwickler:
- In der Web-Konsole wurde die Möglichkeit zur Überschreibung von let und class hinzugefügt.
- Die Debugging-Tools für WebAssembly wurden verbessert. Unterstützung hinzugefügt für die Schritt-für-Schritt-Debugging, das Setzen von Haltepunkten und die Analyse von Stapelprotokollen im Quellcode, in dem die WebAssembly-Anwendung geschrieben ist.
- Das Panel zur Analyse der Netzwerkaktivität wurde verbessert. Es wurde die Möglichkeit hinzugefügt, den Aufruf-Stack von Skripten zu sehen, die mit der Initiierung der Anfrage verbunden sind.
Neue Spalten "Pfad" und "URL" wurden hinzugefügt, in denen der absolute Pfad und die vollständige URL für jede Netzwerkressource angezeigt werden. Die Auswahl der angeforderten Anfrage wird in dem Übersichtdiagramm hervorgehoben.
- Im Tab "Netzwerkbedingungen" wurde eine Option zum Ändern des User-Agent-Parameters hinzugefügt.
- Eine neue Benutzeroberfläche zur Anpassung des Prüfpanels wurde vorgeschlagen.
- Im Tab gibt es die Auswahl, Coverage-Daten für jede Funktion oder für jeden Codeblock zu sammeln (detailliertere Statistiken, erfordern jedoch mehr Ressourcen).
- In der Web-Konsole wurde die Möglichkeit zur Überschreibung von let und class hinzugefügt.
- Die Funktion des AppCache-Manifests (Technologie für den Betrieb von Webanwendungen im Offline-Modus) auf das aktuelle Verzeichnis der Website (wenn das Manifest von www.example.com/foo/bar/ geladen wurde, dann gilt die Möglichkeit, die URL zu überschreiben, nur innerhalb von /foo/bar/). In Chrome 82 ist geplant, die Unterstützung für AppCache vollständig zu entfernen. Der Grund dafür ist der Wunsch, einen der Angriffsvektoren im Zusammenhang mit Cross-Site-Scripting loszuwerden. Statt AppCache wird empfohlen, die API .
- WebXR Device Protokoll-Handler, die über die Methoden registerProtocolHandler() und unregisterProtocolHandler() eingebunden werden, können jetzt nur noch in einem sicheren Kontext (über HTTPS) betrieben werden.
- 56 Sicherheitsanfälligkeiten
Neben Neuerungen und Fehlerbehebungen wurden in der neuen Version . Viele dieser Schwachstellen wurden durch automatisiertes Testen mit Werkzeugen festgestellt, , , , und . Kritische Probleme, die es ermöglichen, alle Schutzstufen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung im System auszuführen, wurden nicht festgestellt. Im Rahmen des Programms zur Auszahlung von Geldprämien für die Entdeckung von Sicherheitsanfälligkeiten für die aktuelle Version hat das Unternehmen Google 37 Prämien in Höhe von insgesamt 48.000 US-Dollar ausgezahlt (eine Prämie $10.000, drei Prämien $5.000, drei Prämien $3.000, vier Prämien $2.000, drei Prämien $1.000 und sechs Prämien $500). Die Höhe von 17 Prämien ist bisher noch nicht festgelegt.
Quelle: opennet.ru


