Google Freigabe des Webbrowsers . Gleichzeitig stabile Freigabe des Open-Source-Projekts , das die Grundlage von Chrome bildet. Der Browser Chrome Verwendung von Google-Logos, ein Benachrichtigungssystem bei Abstürzen, die Möglichkeit, das Flash-Modul auf Anfrage herunterzuladen, Module zur Wiedergabe von geschützten Videoinhalten (DRM), ein automatisches Update-Installationssystem sowie Datentransfer bei der Suche. . Die nächste Version von Chrome 81 ist für den 17. März geplant.
:
- Für einen kleinen Prozentsatz der Nutzer wird die Funktion zur Gruppierung von Tabs angeboten, die es ermöglicht, mehrere ähnliche Tabs in visuell getrennte Gruppen zu organisieren. Jede Gruppe kann eine eigene Farbe und einen Namen zugewiesen bekommen. Nutzer, die nicht in der ersten Welle der Aktivierung sind, können die Unterstützung für Gruppierungen über die Option „chrome://flags/#tab-groups“ aktivieren.
- Die Unterstützung für die Funktion , die es ermöglicht, Links zu einzelnen Wörtern oder Phrasen zu erstellen, ohne klar im Dokument durch das Tag „a name“ oder das Attribut „id“ darauf hinzuweisen. Die Syntax solcher Links soll als Web-Standard angenommen werden, der sich derzeit in der . Die Übergangsmaske (die im Grunde eine Scroll-Suche ausführt) wird durch das Zeichen „:~:“ vom normalen Anker getrennt. Zum Beispiel wird beim Öffnen des Links „https://opennet.ru/52312/#:~:text=Chromе“ die Seite auf die Position mit der ersten Erwähnung des Wortes „Chromе“ verschoben, und dieses Wort wird hervorgehoben.
- eine strengere Einschränkung der Cookie-Übertragung zwischen Websites für nicht-HTTPS-Anfragen, die die Verarbeitung von Drittanbieter-Cookies verbietet, die von Websites gesetzt werden, die nicht mit der Domain der aktuellen Seite übereinstimmen. Solche Cookies werden verwendet, um die Bewegungen von Nutzern zwischen Websites im Code von Werbenetzwerken, sozialen Medien Widgets und Web-Analyse-Systemen zu verfolgen. Wir erinnern daran, dass die Steuerung der Cookie-Übertragung durch das im Set-Cookie-Header angegebene Attribut SameSite erfolgt, das standardmäßig auf "SameSite=Lax" gesetzt ist und die Übertragung von Cookies für intersite Anfragen, wie z.B. das Anfordern von Bildern oder das Laden von Inhalten über ein iframe von einer anderen Website, einschränkt. Websites können den standardmäßig angewendeten SameSite-Modus überschreiben, indem sie das SameSite-Attribut beim Setzen von Cookies ausdrücklich auf "SameSite=None" setzen. Dabei kann der Wert SameSite=None für Cookies nur im Secure-Modus eingestellt werden (gilt für Verbindungen über HTTPS). Die Änderung wird schrittweise ab dem 17. Februar, zunächst für einen kleinen Prozentsatz der Nutzer und anschließend schrittweise ausgeweitet.
- Schutz vor lästigen Benachrichtigungen im Zusammenhang mit der Bestätigung von Berechtigungen. Da solche Aktivitäten, wie beispielsweise Spam-Anfragen für Push-Benachrichtigungen, den Benutzer stören und die Aufmerksamkeit auf die Bestätigungsdialoge lenken, wird in Chrome 80 anstelle eines separaten Dialogs jetzt ein Informationstooltip in der Adressleiste angezeigt, der vor der Blockierung der Berechtigungsanfrage warnt. Dieser reduziert sich dann auf ein Symbol mit einem durchgestrichenen Glockenbild. Durch einen Klick auf das Symbol können die angeforderten Berechtigungen jederzeit aktiviert oder abgelehnt werden. Der neue Modus wird automatisch selektiv für Benutzer aktiviert, die zuvor solche Anfragen häufig blockiert haben, sowie für Websites, auf denen eine hohe Ablehnungsrate festgestellt wird. Um den neuen Modus für alle Anfragen zu aktivieren, wurde eine spezielle Option in die Einstellungen aufgenommen (chrome://flags/#quiet-notification-prompts).
- Ausgabe von Pop-ups (Aufruf der Methode window.open()) und das Senden synchroner XMLHttpRequest-Anfragen in den Ereignis-Handlern für das Schließen oder Verstecken der Seite (unload, beforeunload, pagehide und visibilitychange);
- Angebotene Anfangs vor dem Laden von gemischten Multimedia-Inhalten (wenn auf einer HTTPS-Seite Ressourcen über http:// geladen werden). Auf Seiten, die über HTTPS geöffnet werden, werden nun automatisch Links "http://" in "https://" in den Bereichen ersetzt, die mit der Wiedergabe von Audio- und Video-Dateien verbunden sind. Wenn eine Audio- oder Videodatei nicht über HTTPS verfügbar ist, wird deren Laden blockiert (manuell kann die Blockierung über das Menü, das durch das Schloss-Symbol in der Adresszeile zugänglich ist, markiert werden).
Bilder werden weiterhin unverändert geladen (die Autoumstellung wird in Chrome 81 angewendet), aber für die Umstellung auf HTTPS oder die Blockierung von Bildern haben Site-Entwickler CSP-Eigenschaften wie upgrade-insecure-requests und block-all-mixed-content zur Verfügung. Für Skripte und iframes wurde die Blockierung von gemischten Inhalten bereits früher implementiert.
- Es hat mit der schrittweisen der FTP-Unterstützung begonnen. Standardmäßig bleibt die Unterstützung für FTP vorerst erhalten, wird jedoch Ein Experiment, bei dem für einen bestimmten Prozentsatz der Nutzer die Unterstützung für FTP 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 von Ressourcen, die über das Protokoll „ftp://“ geladen werden, deaktiviert wurde (z. B. wurde die Anzeige von HTML-Dokumenten und README-Dateien eingestellt), die Verwendung von FTP beim Laden von Unterressourcen aus Dokumenten verboten wurde und die Unterstützung von Proxys für FTP eingestellt wurde. Dennoch bleibt die Möglichkeit, Dateien über direkte Links herunterzuladen und den Inhalt von Verzeichnissen anzuzeigen.
-
Die Möglichkeit, Vektor-SVG-Bilder als Website-Ikon (favicon) zu verwenden. - In die Einstellungen wurde die Möglichkeit zur selektiven Deaktivierung bestimmter Datentypen hinzugefügt, die bei der Synchronisierung zwischen Browsern übertragen werden.
- Für zentral verwaltete Unternehmensbenutzer wurde eine Regel hinzugefügt , die die Installation externer Erweiterungen auf dem Gerät verbietet.
- Unterstützung für das parallele Bauen von Paketen auf Mehrkernsystemen wurde implementiert. Die Anzahl der Threads kann über das Makro „%_smp_build_ncpus“ und die Variable $RPM_BUILD_NCPUS festgelegt werden. Zur Bestimmung der Anzahl der CPUs wurde das Makro „%getncpus“ vorgeschlagen; eine einmalige Überprüfung der gesamten Eigenschafts- oder Aufrufkette in JavaScript. Früher musste beim Zugriff auf „db.user.name.length“ stufenweise sichergestellt werden, dass alle Bestandteile definiert sind, zum Beispiel durch „if (db && db.user && db.user.name)“. Jetzt kann man mit dem Operator „?.“ direkt auf den Wert „db?.user?.name?.length“ zugreifen, ohne vorherige Überprüfungen, und dieser Zugriff führt nicht zu einem Fehler. Bei Problemen (wenn ein Element als null oder undefined behandelt wird) wird „undefined“ ausgegeben.
- In JavaScript wurde ein neuer logischer Operator zur Vereinheitlichung eingeführt „„, der den rechten Operand zurückgibt, wenn der linke Operand den Wert NULL oder undefined hat, und umgekehrt. Zum Beispiel gibt „const foo = bar ?? ‘default string'“ die Zeichenfolge oder den Wert von bar zurück, wenn bar null ist, andernfalls den Wert von bar, auch wenn bar gleich 0 und „“ ist, im Gegensatz zum Operator „||“.
- Im Origin Trials-Modus (experimentelle Funktionen, die eine separate ) wird die API für die Inhaltsindizierung angeboten. Die Origin Trial ermöglicht die Nutzung dieser API aus Anwendungen, die von localhost oder 127.0.0.1 geladen werden, oder nach erfolgreicher Registrierung und Erhalt eines speziellen Tokens, das zeitlich begrenzt für eine bestimmte Website gültig ist. API , liefert Metadaten zu Inhalten, die zuvor von Webanwendungen, die im Modus der Progressiven Webanwendungen (PWS) arbeiten, zwischengespeichert wurden. Die Anwendung kann verschiedene Daten, einschließlich Bilder, Videos und Artikel, im Browser speichern und diese bei Verlust der Netzwerkverbindung mithilfe der API Cache Storage und IndexedDB nutzen. Die Inhaltsindizierungs-API bietet die Möglichkeit, solche Ressourcen hinzuzufügen, zu finden und zu löschen. Diese API wird im Browser bereits verwendet, um eine Liste der Seiten und Multimedia-Daten aufzulisten, die offline verfügbar sind.
- Stabilisiert und nun außerhalb der Origin Trials verbreitet wird die Programmierschnittstelle , der es dem Benutzer ermöglicht, Einträge aus dem Adressbuch auszuwählen und bestimmte Details darüber an die Website zu übermitteln. Bei der Anfrage wird die Liste der Eigenschaften bestimmt, die abgerufen werden sollen. Diese Eigenschaften werden dem Benutzer klar angezeigt, der dann entscheidet, ob er diese Eigenschaften übermitteln 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 Webanwendung mit VoIP-Funktion, um einen Anruf zu einer bestimmten Nummer zu initiieren, oder in einem sozialen Netzwerk, um bereits registrierte Freunde zu finden. Im Rahmen der Origin Trials wurden einige neue Eigenschaften des Contact Pickers vorgeschlagen: Neben den zuvor verfügbaren Angaben wie vollständigem Namen, E-Mail und Telefonnummer wurde die Möglichkeit hinzugefügt, eine Postanschrift und ein Bild zu übermitteln.
- In Web Workers Eine neue Methode zum Laden von ECMAScript-Modulen, die die Verwendung der Funktion importScripts() überflüssig macht. Diese Funktion blockiert den Worker während der Verarbeitung des importierten Skripts und führt es im globalen Kontext aus. Die neue Methode ermöglicht die Erstellung spezieller Module für Web Worker, die die standardisierten 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 Worker-Konstruktor wird ein neuer Ressourcentyp - 'module' - bereitgestellt.
const worker = new Worker('worker.js', {
type: 'module'
}); - eine eingebaute Möglichkeit zur Verarbeitung von komprimierten Streams in JavaScript, die keine externen Bibliotheken benötigt. Zum Komprimieren und Dekomprimieren wurden die APIs hinzugefügt. Es wird die Komprimierung mit den Algorithmen gzip und deflate unterstützt.
const compressionReadableStream
= inputReadableStream.pipeThrough(new CompressionStream('gzip')); - Eine neue CSS-Eigenschaft "" wurde hinzugefügt, die Zeilenumbrüche auf der Ebene jedes typografischen Zeichens zulässt, einschließlich Umbrachen neben Satzzeichen, vordefinierten Leerzeichen (
) und in der Mitte von Wörtern. Außerdem wurde die CSS-Eigenschaft "» ermöglicht das Brechen untrennbarer Zeichenfolgen an beliebigen Stellen, wenn in der Zeichenkette keine geeignete Position für den Bruch gefunden werden konnte.
- Für medialen Inhalt, der verschlüsselt verarbeitet wird, wurde die Unterstützung der Methode implementiert, die Informationen über die Browsing-Fähigkeiten zur Dekodierung geschützer Inhalte bereitstellt (zum Beispiel kann die angegebene Methode verwendet werden, um Szenarien hoher Qualität oder energieeffiziente Dekodierungsarten basierend auf verfügbarer Bandbreite und Bildschirmgröße auszuwählen).
- Es wurde die Methode , über die Informationen zur Video-Wiedergabewürdigkeit abgerufen werden können, um die Bitrate, Auflösung und andere Videoparameter anzupassen.
- Im API , das die Integration mit bestehenden Zahlungssystemen erleichtert, wurde die Möglichkeit hinzugefügt die Adresse und Kontaktdaten an einen externen Zahlungsdienstleister zu übermitteln (die Zahlungssystemanwendung kann über genauere Informationen verfügen als der Browser).
- Es wurde Unterstützung für den HTTP-Header , das 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“, für Schriftarten „font“, für Skripte „script“, für Stile „style“ usw. angegeben). Auf Basis des angegebenen Typs kann der Server Maßnahmen ergreifen, um gegen einige Arten von Angriffen zu schützen (zum Beispiel ist es unwahrscheinlich, dass ein Handler für Geldtransfers über ein img-Tag aufgerufen wird, weshalb solche Anfragen nicht bearbeitet werden müssen).
- Im JavaScript-Engine V8 der Speicherung von Zeigern im Heap durchgeführt. Anstelle des vollständigen 64-Bit-Werts wird nur der einzigartige untere Teil des Zeigers gespeichert. Eine solche Optimierung hat den Speicherverbrauch im Heap um 40 % reduziert, wobei die Leistung um 3-8 % gesenkt wurde.


- in den Entwicklertools:
- In der Web-Konsole gibt es die Möglichkeit, die Ausdrücke let und class zu überschreiben.
- Die Debugging-Tools für WebAssembly wurden verbessert. Unterstützung für wurde hinzugefügt für schrittweises Debugging, das Setzen von Haltepunkten und die Analyse von Stack-Traces im Quellcode, auf dem die WebAssembly-Anwendung geschrieben ist.
- Das Dashboard zur Analyse der Netzwerkanalyse wurde verbessert. Es wurde die Möglichkeit hinzugefügt, die Call-Chain von Skripten zu sehen, die mit der Anfrageinitiierung verbunden sind.
Neue Spalten für Pfad und URL wurden hinzugefügt, die den absoluten Pfad und die vollständige URL für jede Netzwerkressource anzeigen. Die Auswahl der angeforderten Abfrage wurde im Überblicksdiagramm hervorgehoben.
- Im Tab Netzwerkanforderungen wurde eine Option zur Änderung des User-Agent-Parameters hinzugefügt.
- Eine neue Benutzeroberfläche zur Konfiguration des Audit-Dashboards wurde vorgeschlagen.
- Im Tab es wurde die Auswahl der Erfassung von Coverage-Daten für jede Funktion oder jeden Codeblock bereitgestellt (ausführlichere Statistiken, benötigen jedoch mehr Ressourcen).
- In der Web-Konsole gibt es die Möglichkeit, die Ausdrücke let und class zu überschreiben.
- Die Funktion des AppCache-Manifests (eine Technologie zur Organisation des Betriebs von Webanwendungen im Offline-Modus) auf das aktuelle Verzeichnis der Website (wenn das Manifest von www.example.com/foo/bar/ geladen wurde, wird die Möglichkeit zur Überschreibung der URL nur innerhalb von /foo/bar/ gelten). Die Unterstützung für AppCache soll in Chrome 82 vollständig entfernt werden. Als Grund wird das Bestreben genannt, eine der Möglichkeiten zur Durchführung von Angriffen im Zusammenhang mit Cross-Site-Scripting zu beseitigen. Statt AppCache wird empfohlen, das API .
- Unterstützung für die veraltete WebVR 1.1 API, die durch die API ersetzt werden kann , das den Zugriff auf Komponenten ermöglicht, um virtuelle und erweiterte Realität zu erstellen und die Arbeit mit verschiedenen Gerätetypen, von stationären Virtual-Reality-Headsets bis hin zu mobilen Lösungen, zu vereinheitlichen.
- Protokollhandler, die über die Methoden registerProtocolHandler() und unregisterProtocolHandler() angebunden werden, können jetzt nur noch in einem sicheren Kontext (bei Zugriff über HTTPS) arbeiten.
Neben Neuerungen und Fehlerbehebungen wurden in der neuen Version . Viele dieser Sicherheitsanfälligkeiten wurden durch automatisierte Tests mit Tools wie , , , und . Kritische Probleme, die es ermöglichen, alle Sicherheitsebenen des Browsers zu umgehen und Code im System außerhalb der Sandbox-Umgebung auszuführen, wurden nicht festgestellt. Im Rahmen des Bug-Bounty-Programms für die aktuelle Version hat Google insgesamt 37 Auszeichnungen in Höhe von 48.000 US-Dollar vergeben (eine Auszeichnung von 10.000 US-Dollar, drei Auszeichnungen von 5.000 US-Dollar, drei Auszeichnungen von 3.000 US-Dollar, vier Auszeichnungen von 2.000 US-Dollar, drei Auszeichnungen von 1.000 US-Dollar und sechs Auszeichnungen von 500 US-Dollar). Die Höhe von 17 Auszeichnungen wurde noch nicht festgelegt.
Quelle: opennet.ru


