A Google vállalat webböngésző kiadása . Egyszerre stabil kiadás egy nyílt projekt alapja , amely a Chrome alapjául szolgál. A Chrome böngésző a Google logók használatával, a Flash modul kérésre történő betöltésének lehetőségével, a rendszerrel, amely értesítéseket küld hibás működés esetén, a védett videótartalom lejátszására szolgáló modulokkal, az automatikus frissítések telepítési rendszerével és a keresés során történő átadásával . A következő Chrome 75 megjelenése június 4-re van tervezve.
:
- Az onUnload esemény bekövetkezésekor, amely a böngészőablak bezárásakor történik, most felugró ablakokat fognak megjeleníteni (a window.open() hívás blokkolva van), hogy megvédjék a felhasználókat a gyanús webhelyek bezárása utáni kötelező reklámoldalak megnyitásától;
- A JavaScript motorban új mód jelent meg (a "--jitless" flag), amely lehetővé teszi a JavaScript futtatását JIT alkalmazása nélkül (csak az interpreter használatával) és anélkül, hogy végrehajtható memóriát jelölnének ki a kód futása során. A JIT letiltása növelheti a biztonságot potenciálisan veszélyes webalkalmazások használatakor, valamint biztosítja a buildet olyan platformokon, amelyek nem engedélyezik a JIT használatát (például iOS, bizonyos Smart TV-k és játékkonzolok esetében). A JIT letiltása 40%-kal csökkenti a JavaScript futási teljesítményét a Speedometer 2.0 tesztben, és 80%-kal a Web Tooling Benchmark tesztben, de a YouTube használatának szimulációja során a teljesítmény csökkenése mindössze 6%-nak bizonyult. Eközben a memóriafogyasztás csekély mértékben, mindössze 1,7%-kal csökkent.
- A V8 esetében nagy mennyiségű új optimalizálást is javasoltak. Például 60%-kal felgyorsultak azok a függvényhívások, amelyekben a ténylegesen átadott paraméterek száma nem egyezik meg a függvény definíciójakor megadott argumentumok számával. A DOM tulajdonságokhoz való hozzáférés felgyorsult a get funkció segítségével, ami pozitívan hatott az Angular keretrendszer teljesítményére. A JavaScript parsolásának munkafolyamata is felgyorsult: az UTF-8 dekódoló optimalizálása 8%-os teljesítménynövekedést eredményezett a streaming (betöltés közben történő elemzés) üzemmódban, míg a felesleges deduplikációs műveletek eltávolítása további 10,5%-os növekedést hozott.
- A JavaScript motor memóriafogyasztásának csökkentésén is dolgoztak.
Hozzáadva egy bytecode-cache törlő kód, amely a heap méretének körülbelül 15%-át tölti ki. A szemétgyűjtőhöz hozzáadva egy lépés a ritkán lefordított bytecode cache-ből való eltávolítására a használt funkciók vagy az inicializáláskor csak hívott funkciók esetén. A törlésről döntést az új számlálók alapján hoznak, amelyek figyelembe veszik a bytecode utolsó elérési idejét. Az adott módosítás lehetővé tette a memóriafogyasztás csökkentését 5–15%-kal anélkül, hogy negatív hatással lett volna a teljesítményre. Továbbá, a bytecode fordítóban kizárták a nyilvánvalóan nem használt kód generálását, például azt, amely a return vagy break után következik (ha nincs rá Jump-ugrás);
- WebAssembly számára támogatás szálak és atomikus műveletek számára (WebAssembly Threads API és WebAssembly Atomics);
- A szkriptek elszigetelt szállításához hozzáadva a „#!” fejléc támogatása, amely meghatározza az indítót a végrehajtáshoz. Például, más szkriptnyelvekkel analógiában, egy JavaScript fájl a következőképpen nézhet ki:
#!/usr/bin/env node
console.log(42); - A CSS-hez hozzáadva egy új media-utasítás „„, amely lehetővé teszi a weboldal számára, hogy meghatározza a felhasználói operációs rendszer beállításait, amelyek a mozgásos hatások kikapcsolásával kapcsolatosak. A javasolt kérés segítségével a weboldal tulajdonosa tudni fogja, hogy a felhasználó kikapcsolta a mozgásos hatásokat, és a weboldalon különböző animációs lehetőségeket is letilthat, például eltávolíthatja a gombok remegésének hatását, amelyeket figyelemfelkeltésre használnak;
- A Chrome 72-ben megjelent új lehetőség a nyilvános mezők meghatározására a mezők privátként való megjelölésére, melynek következtében az értékeikhez való hozzáférés csak a klassz belsejéből lesz elérhető. A mező privátként való megjelöléséhez a mező neve elé a „#” jelet kell előírni. A nyilvános mezők esetében a privát tulajdonságoknak sincs szükségük explicit konstruktor használatára.
- A Feature-Policy HTTP-fejléc, amely lehetővé teszi az API viselkedésének és bizonyos funkciók engedélyezésének kezelését (például engedélyezhető a XMLHttpRequest szinkron működése vagy kikapcsolható a Geolocation API), kiegészült amelyek ellenőrzik a különböző lehetőségek aktivitását. A fejlesztők számára két új metódust ajánlanak: document.featurePolicy és frame.featurePolicy, amelyek három funkciót kínálnak:
allowedFeatures() az aktuális domainhez engedélyezett funkciók listájának lekérésére, allowsFeature() a konkrét lehetőségek bekapcsolásának ellenőrzésére, és getAllowlistForFeature() a megadott lehetőséghez engedélyezett domainek listájának megjelenítésére szolgál; az aktuális oldalon. - Hozzáadva egy kísérleti („chrome://flags#enable-text-fragment-anchor”) támogatású mód. , lehetővé téve a hivatkozások létrehozását egyes szavakra vagy kifejezésekre, anélkül hogy a dokumentumban kifejezetten címkéket használnánk az "a name" címkével vagy az "id" tulajdonsággal. A hivatkozás átadásához egy speciális paramétert javasolnak, "#targetText=", ahol meg lehet adni a következő szöveget. Engedélyezett a maszk megadása, amely kifejezéseket tartalmaz, amelyek a fragmentum kezdetére és végére mutatnak, vessző használatával elválasztva őket (például "example.com#targetText=startwords, endwords");
- Az AudioContext konstruktorhoz hozzáadva egy opció , amely lehetővé teszi a Web Audio API-n keresztüli hangműveletekhez használt mintavételi frekvencia beállítását;
- Támogatás került a , amely módszereket biztosít a nyelvi, regionális és betűtípus-paraméterek elemzésére és feldolgozására, valamint az Unicode kiterjesztési címkék olvasására és írására, az előre beállított helyi beállítások soros formátumban való megőrzésére;
- Mechanizmus (SXG) bővítve lett az aláírt tartalom letöltési hibáival foglalkozó tartalomszolgáltatók számára. A hibák kezelése API bővítmények révén történik. . Emlékeztetünk, hogy az SXG lehetővé teszi egy weboldal tulajdonosának, hogy digitális aláírás segítségével engedélyezze bizonyos oldalak elhelyezését egy másik weboldalon, amely után, ha a második weboldalon ezekre az oldalakra hivatkoznak, a böngésző megjeleníti a felhasználónak az eredeti weboldal URL-jét, annak ellenére, hogy az oldal egy másik hostból lett betöltve;
- A TextEncoder osztályhoz hozzáadva egy , amely lehetővé teszi a kódolt szöveg közvetlen írását egy előre lefoglalt puffertárba. Az encodeInto() módszer nagy teljesítményű alternatívája az encode() módszernek, amely minden hívásnál pufferteljesítményt igényel.
- A Service worker a client.postMessage() hívás pufferelését a dokumentum készenlétéig biztosítja. A client.postMessage() révén küldött üzenetek megmaradnak a DOMContentLoaded esemény generálásának, az onmessage esemény beállításának vagy a startMessages(); hívásának színpadáig.
- A CSS Transitions specifikáció követelményeivel összhangban a transitionrun, transitioncancel, transitionstart és transitionend események, amelyek akkor jönnek létre, amikor a CSS-átmenetet sorba állítják, megszüntetik, elkezdik vagy befejezik a végrehajtást.
- Amikor az overrideMimeType()-on keresztül vagy az XMLHttpRequest kérés számára helytelen MIME-típusú karakterkódolást adunk meg, mostantól UTF-8-ra való visszaállás történik, a Latin-1 helyett;
- A „allow-downloads-without-user-activation” tulajdonság elavultnak van nyilvánítva, és a következő kiadások egyikében eltávolításra kerül, amely lehetővé tette a fájlok automatikus letöltését iframe feldolgozása közben. A jövőben a fájlok felhasználói beavatkozás nélküli letöltésének kezdeményezése tilos lesz, mivel ezt aktívan visszaélésekre, letöltések kényszerítésére és kártékony programok részeinek helyettesítésére használták a felhasználó számítógépén. A fájlok letöltésének kezdeményezéséhez kötelező lesz, hogy a felhasználó kattintson ugyanazon az oldalon. Eredetileg a tulajdonságot a Chrome 74-ben tervezték eltávolítani, de az eltávolítás a Chrome 76-ot megelőzően történt.
- Windows platformra egy választható sötét téma került bevezetésre (a múltbeli kiadásban a sötét téma a macOS-hez készült). Mivel a sötét téma szinte az inkognitó mód megjelenésével azonos, a magánmód kiemelésére egy speciális jelző került bevezetésre a felhasználói profil ikon helyett;
- A vállalati felhasználók számára lehetőség nyílt a felhasználói böngészőbeállítások Google Admin konzolon keresztüli kezelésére;
Az új verzió újításai és hibajavításai mellett . Sok sebezhetőséget automatizált tesztelési eszközökkel fedeztek fel, , , , és . Kritikus problémák, amelyek lehetővé teszik az összes böngészővédelmi szint megkerülését és a kód végrehajtását a rendszeren kívül a sandbox-környezetben, nem kerültek felfedezésre. A sérülékenységek felfedezésért járó díjazási program keretében a Google 19 jutalmat fizetett ki a jelenlegi megjelenéshez összesen 26,837 dollár értékben (négy 3000 dolláros, négy 2000 dolláros, egy 1337 dolláros, négy 1000 dolláros és három 500 dolláros jutalom). A 4 jutalom értékét még nem határozták meg.
Forrás: opennet.ru

