Chrome-Version 74

Google präsentiert Webbrowser-Version Chrome 74. Gleichzeitig ist verfügbar stabile Veröffentlichung eines kostenlosen Projekts Chrom, die die Basis von Chrome ist. Chrome-Browser anders die Verwendung von Google-Logos, die Möglichkeit, auf Anfrage ein Flash-Modul herunterzuladen, das Vorhandensein eines Systems zum Versenden von Benachrichtigungen im Falle eines Absturzes, Module zum Abspielen geschützter Videoinhalte, ein System zur automatischen Installation von Updates und deren Übertragung während der Suche RLZ-Parameter. Die nächste Veröffentlichung von Chrome 75 ist für den 4. Juni geplant.

Haupt- Veränderungen в Chrome 74:

  • Wenn jetzt das onUnload-Ereignis auftritt, das beim Schließen der Seite aufgerufen wird Es ist verboten, Popup-Fenster anzeigen (der Aufruf von window.open() ist blockiert), was Benutzer davor schützt, nach dem Schließen zweifelhafter Websites gezwungen zu werden, Werbeseiten zu öffnen;
  • In der JavaScript-Engine umgesetzt ein neuer Modus JIT-frei („—jitless“-Flag), das es ermöglicht, JavaScript ohne JIT (nur der Interpreter wird verwendet) und ohne ausführbaren Speicher während der Codeausführung auszuführen. Das Deaktivieren von JIT kann nützlich sein, um die Sicherheit bei der Arbeit mit potenziell gefährlichen Webanwendungen zu verbessern und um sicherzustellen, dass Builds auf Plattformen erstellt werden, die die Verwendung von JIT verbieten (z. B. iOS, einige Smart-TVs und Spielekonsolen). Wenn JIT deaktiviert ist, erfolgt die Ausführung von JavaScript Die Leistung sinkt im Speedometer 40-Test um 2.0 % und im Web Tooling Benchmark-Test um 80 %, bei der Simulation der Arbeit mit YouTube kam es jedoch nur zu einem Leistungsrückgang von 6 %, während der Speicherverbrauch leicht sank, nämlich nur um 1.7 %;
  • V8 bietet zudem eine Vielzahl neuer Optimierungen. Beispielsweise wurde die Ausführung von Funktionsaufrufen, bei denen die Anzahl der tatsächlich übergebenen Parameter nicht mit der Anzahl der bei der Definition der Funktion angegebenen Argumente übereinstimmt, um 60 % beschleunigt. Der Zugriff auf DOM-Eigenschaften mithilfe der Get-Funktion wurde beschleunigt, was sich positiv auf die Leistung des Angular-Frameworks auswirkt. Das JavaScript-Parsing wurde beschleunigt: Durch die Optimierung des UTF-8-Decoders konnte die Parserleistung im Streaming-Modus (Parsing beim Laden) um 8 % gesteigert werden, und die Eliminierung unnötiger Deduplizierungsvorgänge führte zu einer Steigerung um weitere 10.5 %;
  • Es wurde daran gearbeitet, den Speicherverbrauch der JavaScript-Engine zu reduzieren.
    Code zum Löschen des Bytecode-Cache hinzugefügt, der etwa 15 % der gesamten Heap-Größe einnimmt. Dem Garbage Collector wurde eine Stufe hinzugefügt, um selten kompilierten Bytecode aus dem Cache für verwendete Funktionen oder Funktionen zu entfernen, die nur bei der Initialisierung aufgerufen werden. Die Entscheidung zur Bereinigung wird auf Basis neuer Zähler getroffen, die den letzten Zugriff auf den Bytecode berücksichtigen. Diese Änderung reduzierte den Speicherverbrauch um 5–15 %, ohne die Leistung negativ zu beeinflussen. Darüber hinaus schließt der Bytecode-Compiler die Generierung von offensichtlich ungenutztem Code aus, der beispielsweise auf Return oder Break folgt (sofern kein Jump-Übergang dorthin erfolgt);

    Chrome-Version 74

  • Für WebAssembly umgesetzt Unterstützung für Threads und atomare Operationen (API WebAssembly Threads und WebAssembly Atomics);
  • Für die separate Bereitstellung von Skripten wurde Unterstützung für den „#!“-Header hinzugefügt, der den auszuführenden Interpreter bestimmt. Ähnlich wie bei anderen Skriptsprachen könnte eine JavaScript-Datei beispielsweise so aussehen:

    #!/usr/bin/env Knoten
    Konsole.log(42);

  • Dem CSS wurde eine neue Medienabfrage hinzugefügt.bevorzugt reduzierte Bewegung„Dadurch kann die Website den Status der Einstellungen im Betriebssystem im Zusammenhang mit der Deaktivierung animierter Effekte ermitteln. Mithilfe der vorgeschlagenen Anfrage kann der Websitebesitzer können Finden Sie heraus, dass der Benutzer animierte Effekte deaktiviert hat, und deaktivieren Sie auch verschiedene Animationsfunktionen auf der Website, indem Sie beispielsweise den Wackeleffekt von Schaltflächen entfernen, die zum Erregen von Aufmerksamkeit verwendet werden.
  • Zusätzlich zu der in Chrome 72 eingeführten Möglichkeit, öffentliche Felder zu definieren Unterstützung umgesetzt Markieren Sie Felder als privat. Danach ist der Zugriff auf ihre Werte nur innerhalb der Klasse möglich. Um ein Feld als privat zu markieren, fügen Sie vor dem Feldnamen ein „#“-Zeichen ein. Wie bei öffentlichen Feldern erfordern private Eigenschaften nicht die explizite Verwendung eines Konstruktors.
  • Der Feature-Policy-HTTP-Header, mit dem Sie das Verhalten der API steuern und bestimmte Funktionen aktivieren können (z. B. können Sie den synchronen Betriebsmodus von XMLHttpRequest aktivieren oder die Geolocation-API deaktivieren), wurde hinzugefügt JavaScript-API um die Aktivität bestimmter Gelegenheiten zu kontrollieren. Für Entwickler gibt es zwei neue Methoden document.featurePolicy und frame.featurePolicy, die drei Funktionen bieten:
    „allowedFeatures()“, um eine Liste der für die aktuelle Domäne zulässigen Funktionen abzurufen, „allowsFeature()“, um selektiv zu prüfen, ob bestimmte Funktionen aktiviert sind, und „getAllowlistForFeature()“, um eine Liste der Domänen zurückzugeben, für die eine bestimmte Funktion auf der aktuellen Seite zulässig ist;

  • Experimentelle Unterstützung („chrome://flags#enable-text-fragment-anchor“) für den Modus hinzugefügt Zum Text scrollen, mit dem Sie Links zu einzelnen Wörtern oder Phrasen erstellen können, ohne explizit Labels im Dokument mithilfe des „a name“-Tags oder der „id“-Eigenschaft anzugeben. Zum Versenden eines Links wird ein spezieller Parameter „#targetText=“ angeboten, in dem Sie den Text für den Übergang angeben können. Es ist zulässig, eine Maske anzugeben, die Phrasen enthält, die den Anfang und das Ende des Fragments angeben, wobei als Trennzeichen ein Komma verwendet wird (z. B. „example.com#targetText=start%20words, end%20words“);
  • Dem AudioContext-Konstruktor wurde eine Option hinzugefügt Beispielrate, mit dem Sie die Abtastrate für Audiovorgänge über die Web-Audio-API festlegen können;
  • Klassenunterstützung hinzugefügt Internationales Gebietsschema, das Methoden zum Parsen und Verarbeiten von durch das Gebietsschema festgelegten Sprach-, Regions- und Stilparametern sowie zum Lesen und Schreiben von Unicode-Erweiterungstags bereitstellt und Benutzergebietsschemaeinstellungen in einem serialisierten Format speichert;
  • Mechanismus Signierte HTTP-Austausche (SXG) erweitert um Werkzeuge für informieren Inhaltsverteiler über Fehler beim Herunterladen signierter Inhalte, beispielsweise Probleme mit der Zertifikatsüberprüfung. Die Fehlerbehandlung erfolgt über API-Erweiterungen Protokollierung von Netzwerkfehlern. Denken Sie daran, dass SXG ermöglicht Der Eigentümer einer Website genehmigt mithilfe einer digitalen Signatur die Platzierung bestimmter Seiten auf einer anderen Website. Wenn anschließend auf diese Seiten auf einer zweiten Website zugegriffen wird, zeigt der Browser dem Benutzer trotz dieser Tatsache die URL der ursprünglichen Website an dass die Seite von einem anderen Host geladen wurde;
  • Der TextEncoder-Klasse wurde eine Methode hinzugefügt encodeInto(), wodurch Sie eine codierte Zeichenfolge direkt in einen vorab zugewiesenen Puffer schreiben können. Die Methode encodeInto() ist eine leistungsstarke Alternative zur Methode encode(), bei der bei jedem Zugriff eine Pufferzuweisungsoperation ausgeführt werden muss.
  • Im Service-Mitarbeiter zur Verfügung gestellt Puffern des Aufrufs client.postMessage(), bis das Dokument fertig ist. Über client.postMessage() gesendete Nachrichten werden zurückgehalten, bis das DOMContentLoaded-Ereignis ausgelöst, onmessage gesetzt oder startMessages() aufgerufen wird;
  • Gemäß der CSS Transitions-Spezifikation hinzugefügt Die Ereignisse „transitionrun“, „transitioncancel“, „transitionstart“ und „transitionend“ werden generiert, wenn ein CSS-Übergang in die Warteschlange gestellt, abgebrochen, gestartet oder beendet wird.
  • Wenn über overrideMimeType() oder einen MIME-Typ für eine XMLHttpRequest eine falsche Zeichenkodierung angegeben wird, wird jetzt auf UTF-8 anstelle von Latin-1 zurückgegriffen.
  • Die Eigenschaft „allow-downloads-without-user-activation“, mit der es möglich war, Dateien bei der Verarbeitung von Iframes automatisch herunterzuladen, ist veraltet und wird in einer zukünftigen Version entfernt. Künftig ist das Auslösen von Dateidownloads ohne explizite Benutzeraktion verboten, da dies aktiv für Missbrauch genutzt wird, indem Downloads erzwungen werden und Teile der Malware auf den Computer des Benutzers eingeschleust werden. Um den Download zu starten, ist ein Benutzerklick auf derselben Seite erforderlich. Ursprünglich war geplant, die Eigenschaft in Chrome 74 zu entfernen, doch die Entfernung erfolgte verschoben bis Chrome 76.
  • Für die Windows-Plattform wird optional ein dunkles Theme für das Interface-Design angeboten (in der Vorgängerversion wurde ein dunkles Theme für macOS vorbereitet). Da das dunkle Design nahezu identisch mit dem Design im Inkognito-Modus ist, wurde anstelle des Benutzerprofil-Symbols ein spezieller Indikator hinzugefügt, um den privaten Betriebsmodus hervorzuheben;
  • Für Firmenanwender wurde eine Möglichkeit hinzugefügt Chrome-Browser-Cloud-Verwaltung um die Browsereinstellungen des Benutzers über die Google Admin-Konsole zu verwalten;

    Chrome-Version 74

Neben Neuerungen und Fehlerbehebungen enthält die neue Version auch Beseitigungen 39 Schwachstellen. Viele der Schwachstellen wurden durch automatisierte Testtools identifiziert AddressSanitizer, MemorySanitizer, Kontrollflussintegrität, LibFuzzer и AFL. Es wurden keine kritischen Probleme identifiziert, die es ermöglichen würden, alle Ebenen des Browserschutzes zu umgehen und Code auf dem System außerhalb der Sandbox-Umgebung auszuführen. Im Rahmen des Programms zur Zahlung von Geldprämien für die Entdeckung von Schwachstellen in der aktuellen Version zahlte Google 19 Auszeichnungen in Höhe von 26837 US-Dollar (vier Auszeichnungen in Höhe von 3000 US-Dollar, vier Auszeichnungen in Höhe von 2000 US-Dollar, eine Auszeichnung in Höhe von 1337 US-Dollar, vier Auszeichnungen in Höhe von 1000 US-Dollar und drei Auszeichnungen in Höhe von 500 US-Dollar). Die Höhe der 4 Belohnungen steht noch nicht fest.

Source: opennet.ru

Kommentar hinzufügen