Google Freigabe des Webbrowsers . Gleichzeitig stabile Freigabe des Open-Source-Projekts , das die Grundlage von Chrome bildet. Der Browser Chrome durch die Verwendung von Google-Logos, die Möglichkeit, das Flash-Plugin auf Anfrage herunterzuladen, das Vorhandensein eines Benachrichtigungssystems im Fall eines Absturzes, Module zur Wiedergabe geschützter Videoinhalte, ein automatisches Update-System und die Übertragung von Suchanfragen über . Die nächste Version Chrome 75 ist für den 4. Juni geplant.
:
- Bei Eintreten des onUnload-Ereignisses, das beim Schließen der Seite ausgelöst wird, ist es nun Pop-ups anzuzeigen (aufrufen von window.open() wird blockiert), was dazu beiträgt, Nutzer vor dem erzwungenen Öffnen von Werbeseiten nach dem Schließen fragwürdiger Websites zu schützen;
- Im JavaScript-Engine gibt es einen neuen Modus (Flag „—jitless“), der es ermöglicht, JavaScript ohne Einsatz von JIT auszuführen (nur der Interpreter wird verwendet) und ohne die Zuweisung von ausführbarem Speicher während der Codeausführung. Die Deaktivierung von JIT kann nützlich sein, um die Sicherheit bei der Nutzung potenziell gefährlicher Webanwendungen zu erhöhen sowie um den Betrieb auf Plattformen zu gewährleisten, die die Nutzung von JIT verbieten (zum Beispiel in iOS, auf einigen Smart TVs und Spielkonsolen). Bei Deaktivierung von JIT sinkt die Ausführungsleistung von JavaScript um 40 % im Speedometer 2.0-Test und um 80 % im Web Tooling Benchmark-Test, jedoch wurde bei der Simulation der Nutzung von YouTube ein Leistungsabfall von lediglich 6 % festgestellt. Der Speicherverbrauch verringert sich dabei nur minimal, um insgesamt 1,7 %.
- In V8 wurden zudem viele neue Optimierungen eingeführt. So wird beispielsweise die Ausführung von Funktionsaufrufen, bei denen die tatsächlich übergebenen Parameter nicht mit der bei der Funktionsdefinition angegebenen Anzahl an Argumenten übereinstimmen, um 60 % beschleunigt. Der Zugriff auf DOM-Eigenschaften wurde durch die Verwendung der Funktion get verbessert, was sich positiv auf die Leistung des Angular-Frameworks ausgewirkt hat. Auch die Verarbeitung von JavaScript wurde beschleunigt: Die Optimierung des UTF-8-Decoders hat die Leistung des Parsers im Streaming-Modus (Analyse während des Ladens) um 8 % gesteigert, während die Eliminierung überflüssiger Deduplication-Operationen einen Zuwachs von weiteren 10,5 % ermöglicht hat.
- Es wurden Maßnahmen zur Senkung des Speicherverbrauchs der JavaScript-Engine ergriffen.
Ein Code zur Bereinigung des Bytecode-Caches wurde hinzugefügt, der etwa 15 % der gesamten Heap-Größe ausmacht. Der Garbage Collector enthält nun eine Phase zum Entfernen selten kompilierten Bytecodes für verwendete Funktionen oder Funktionen, die nur bei der Initialisierung aufgerufen werden. Die Entscheidung zur Bereinigung basiert auf neuen Zählern, die die letzte Zugriffszeit auf den Bytecode berücksichtigen. Diese Änderung hat den Speicherverbrauch um 5–15 % gesenkt, ohne die Leistung negativ zu beeinträchtigen. Darüber hinaus wurde im Bytecode-Compiler die Generierung von eindeutig ungenutztem Code ausgeschlossen, beispielsweise von Code, der nach return oder break folgt (sofern es keinen Jump-Übergang gibt).
- Für WebAssembly Unterstützung für Threads und Atomoperationen (WebAssembly Threads API und WebAssembly Atomics);
- Für die isolierte Bereitstellung von Skripten wurde die Unterstützung für den Header „#!“ hinzugefügt, der den Interpreter zur Ausführung definiert. Zum Beispiel könnte eine JavaScript-Datei ähnlich aussehen wie:
#!/usr/bin/env node
console.log(42); - In CSS wurde eine neue media-Abfrage „«, der es der Website ermöglicht, den Status der Einstellungen im Betriebssystem in Bezug auf die Deaktivierung von Animationseffekten zu bestimmen. Mit der vorgeschlagenen Abfrage kann der Website-Besitzer Zusätzlich zu der in Chrome 72 verfügbaren Möglichkeit zur Bestimmung von öffentlichen Feldern
- wurde die Unterstützung für Der HTTP-Header Feature-Policy, der das Verhalten von APIs steuert und das Aktivieren bestimmter Funktionen ermöglicht (z. B. kann der synchrone Modus von XMLHttpRequest aktiviert oder die Geolocation-API deaktiviert werden), wurde um
- JavaScript API zur Kontrolle der Verfügbarkeit bestimmter Funktionen. Entwicklern stehen zwei neue Methoden document.featurePolicy und frame.featurePolicy zur Verfügung, die drei Funktionen bieten:
allowedFeatures() zum Abrufen der für die aktuelle Domain erlaubten Funktionen, allowsFeature() zur selektiven Überprüfung, ob bestimmte Funktionen aktiviert sind, und getAllowlistForFeature() zur Ausgabe einer Liste von Domains, bei denen die angegebene Funktion auf der aktuellen Seite erlaubt ist; - Die experimentelle Unterstützung für den Modus , mit dem es möglich ist, Links zu einzelnen Wörtern oder Phrasen zu erstellen, ohne explizite Markierungen im Dokument durch das Tag „a name“ oder die Eigenschaft „id“ anzugeben. Um den Link zu übermitteln, wird ein spezieller Parameter „#targetText=“ angeboten, in dem der Text für die Weiterleitung angegeben werden kann. Es wird die Verwendung einer Maske erlaubt, die Phrasen enthält, die den Anfang und das Ende des Abschnitts unter Verwendung von Kommas als Trennzeichen angeben (zum Beispiel „example.com#targetText=startwords, endwords“);
- Im Konstruktor AudioContext wurde die Option hinzugefügt, die es ermöglicht, die Abtastrate für Audiooperationen über die Web Audio API festzulegen;
- Unterstützung für die Klasse , die Methoden zur Analyse und Verarbeitung der von der Locale festgelegten Parameter für Sprache, Region und Schriftart bereitstellt, sowie zum Lesen und Schreiben von Unicode-Erweiterungstags, und zum Speichern benutzerdefinierter Locale-Einstellungen im serialisierten Format;
- Mechanismus (SXG) wurde um Funktionen erweitert, die über Ladefehler signierter Inhalte informieren, wie z. B. Probleme mit der Zertifikatsvalidierung. Fehlerbehandlung erfolgt über die API-Erweiterungen . Erinnern wir uns, dass SXG einem Website-Besitzer mittels digitaler Signaturen die Autorisierung zur Platzierung bestimmter Seiten auf einer anderen Website ermöglicht, sodass bei Aufrufen dieser Seiten auf der zweiten Website der Browser dem Benutzer die URL der ursprünglichen Website anzeigt, auch wenn die Seite von einem anderen Host geladen wurde;
- In die Klasse TextEncoder wurde die Methode hinzugefügt, die es ermöglicht, einen codierten String direkt in einen vorher zugewiesenen Puffer zu schreiben. Die Methode encodeInto() ist eine leistungsstarke Alternative zu der Methode encode(), die bei jedem Aufruf einen Pufferzuweisungsprozess erfordert.
- Im Service Worker Das Pufferung von client.postMessage() bis zur Bereitstellung des Dokuments. Nachrichten, die über client.postMessage() gesendet werden, werden bis zur Generierung des DOMContentLoaded-Ereignisses, zur Festlegung von onmessage oder zum Aufruf von startMessages(); zurückgehalten.
- Gemäß den Anforderungen der CSS-Transitions-Spezifikation werden die Ereignisse transitionrun, transitioncancel, transitionstart und transitionend generiert, wenn der CSS-Übergang in die Warteschlange gestellt, abgebrochen, gestartet oder beendet wird.
- Wenn über overrideMimeType() oder einen MIME-Typ mit falscher Zeichencodierung für die XMLHttpRequest-Anfrage angegeben wird, wird nun auf UTF-8 anstelle von Latin-1 zurückgefallen;
- Die Eigenschaft „allow-downloads-without-user-activation“ wurde als veraltet erklärt und wird in einer der nächsten Versionen entfernt. Diese ermöglichte das automatische Herunterladen von Dateien beim Laden von iframes. Zukünftig wird das Initiieren von Datei-Downloads ohne eine explizite Benutzeraktion untersagt, da es häufig für Missbrauch, unerwünschte Downloads und das Injizieren von Malware-Teilen auf den Computer des Nutzers verwendet wurde. Um einen Download zu starten, ist ein Klick des Nutzers auf derselben Seite erforderlich. Ursprünglich war geplant, diese Eigenschaft in Chrome 74 zu entfernen, jedoch wurde bis Chrome 76.
- Für die Windows-Plattform wird ein optionales dunkles Design der Benutzeroberfläche angeboten (im letzten Release wurde ein dunkles Design für macOS vorbereitet). Da das dunkle Design nahezu identisch mit dem Inkognito-Modus ist, wurde zur Kennzeichnung des privaten Arbeitens anstelle des Benutzerprofilsymbols ein spezieller Indikator hinzugefügt;
- Für Unternehmensnutzer wurde die Möglichkeit hinzugefügt um die Einstellungen der Benutzerbrowser über die Google Admin-Konsole zu verwalten;
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 Schutzebenen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung auszuführen, wurden nicht festgestellt. Im Rahmen des Programms zur Auszahlung von Belohnungen für die Entdeckung von Sicherheitsanfälligkeiten hat Google für die aktuelle Version 19 Prämien in Höhe von insgesamt 26.837 US-Dollar ausgezahlt (vier Prämien von 3.000 $, vier Prämien von 2.000 $, eine Prämie von 1.337 $, vier Prämien von 1.000 $, drei Prämien von 500 $). Die Höhe von vier Prämien ist noch nicht festgelegt.
Quelle: opennet.ru

