Izkazala se je nova različica spletnega brskalnika Firefox 94. Poleg tega je bilo ustvarjeno posodobitev vej z dolgoročnim poroštvom — 91.3.0. Na stopnjo beta testiranja je bila prenesena veja Firefox 95, katere izdaja je predvidena za 7. december.
Glavne novosti:
- Implementirana je nova servisna stran 'about:unloads', na kateri lahko uporabnik za zmanjšanje porabe pomnilnika prisilno razbremeni najbolj zahtevne zavihke, ne da bi jih zaprli (vsebina se bo ponovno naložila ob prehodu na zavihek). Na strani 'about:unloads' so zavihki navedeni po prioriteti izpodrivanja v primeru pomanjkanja pomnilnika. Prioriteta na seznamu se določa na podlagi časa dostopa do zavihka, ne na podlagi porabljenih virov. Ob pritisku na gumb Unload se iz pomnilnika odstrani prvi zavihek s seznama, ob naslednjem pritisku — drugi in tako naprej. Zaenkrat ni mogoče izpodrivati zavihka po izbiri.

- Ob prvem zagonu po namestitvi posodobitve se zažene nov vmesnik za izbiro šestih sezonskih barvnih tem, za katere so predlagane tri ravni temne shade, ki vplivajo na prikaz v temnih tonih območja vsebine, plošč in vrstice preklopa med zavihki.

- Predlagan je način stroge izolacije spletnih strani, ki se je razvijal v okviru projekta Fission. V nasprotju s prejšnjo naključno razporeditvijo obdelave zavihkov po razpoložljivem sklopu procesov (privzeto 8), način stroge izolacije prenese obdelavo vsake spletne strani v svoj ločen proces z ločevanjem ne po zavihkih, temveč po domenah (Public Suffix). Način ni aktiviran za vse uporabnike, za onemogočitev ali omogočanje se lahko uporablja stran 'about:preferences#experimental' ali nastavitev 'fission.autostart' v about:config.
Nov način zagotavlja boljšo zaščito pred napadi razreda Spectre, zmanjšuje fragmentacijo pomnilnika, omogoča dodatno izolacijo vsebine zunanjih skript in iframe blokov. Učinkoviteje vrača pomnilnik operacijskemu sistemu, minimizira vpliv zbiranja smeti in intenzivnih izračunov na strani v drugih procesih, povečuje učinkovitost porazdelitve obremenitve med različnimi jedri CPU in povečuje stabilnost (padanje procesa, ki obdeluje iframe, ne bo potegnilo za sabo glavne strani in drugih zavihkov). Cena tega je splošno povečanje porabe pomnilnika pri velikem številu odprtih spletnih mest.
- Uporabnikom je na voljo dopolnilo Multi-Account Containers, ki implementira koncept kontekstnih kontejnerjev, ki jih lahko uporabljate za prilagodljivo izolacijo poljubnih spletnih mest. Kontejnerji omogočajo izolacijo različnih vrst vsebine brez ustvarjanja ločenih profilov, kar omogoča ločevanje informacij različnih skupin strani. Na primer, lahko ustvarite ločena, medsebojno izolirana območja za osebno komunikacijo, delo, nakupe in bančne operacije ali organizirate hkratno uporabo različnih uporabniških računov na enem spletnem mestu. V vsakem kontejnerju se uporabljajo ločena shranjevanja za piškotke, Local Storage API, indexedDB, predpomnilnik in vsebino OriginAttributes. Poleg tega, pri uporabi Mozilla VPN lahko za vsak kontejner uporabite različne VPN strežnike.

- Odstranjen je bil zahteva za potrditev operacije pri izhodu iz brskalnika ali zapiranju okna prek menija in gumbov za zapiranje okna. T.j. napačno pritisnjenje gumba „[x]“ v naslovu okna zdaj povzroči zapiranje vseh zavihkov, vključno s tistimi z odprtimi oblikami za urejanje, brez predhodnega opozorila. Po obnovitvi seje podatki v spletnih obrazcih ne izgubijo. Ob pritisku Ctrl+Q se še naprej prikazuje opozorilo. To vedenje lahko spremenite v nastavitvah (plošča General/oddelek Tabs/ параметр „Confirm before closing multiple tabs“).

- V zbirkah za platformo Linux za grafična okolja, ki uporabljajo protokol X11, je privzeto vključena nova renderirna platfroma, ki je znana po tem, da uporablja EGL namesto GLX za izhod grafike v uporabniškem vmesniku. Ta backend podpira delovanje z odprtimi OpenGL gonilniki Mesa 21.x in s proprietary gonilniki NVIDIA 470.x. Proprietarni OpenGL gonilniki AMD še niso podprti. Uporaba EGL rešuje težave z gfx gonilniki in omogoča širitev spektra naprav, ki podpirajo pospeševanje videa in WebGL. Nova platforma je bila pripravljena z ločitvijo DMABUF backend-a, prvotno ustvarjenega za Wayland, ki omogoča neposredno izhod slik v GPU pomnilnik, ki se lahko prikazuje v EGL framebufferju in se risbe kot tekstura ob združevanju elementov spletne strani.
- V zbirkah za Linux je privzeto vključena plast, ki rešuje težave z odložiščem v okoljih, ki temeljijo na protokolu Wayland. Vključene so tudi spremembe, povezane z obravnavo pojavnih oken (popup) v okoljih na osnovi protokola Wayland. Wayland zahteva strogo hierarhijo pojavnih oken, tj. starševsko okno lahko ustvari podokno s popup-om, vendar mora naslednji popup, ki ga sproži to okno, biti povezan z izvirnim podoknom in tvoriti verigo. V Firefoxu pa lahko vsako okno ustvari več popup-ov, ki ne tvorijo hierarhije. Težava je bila v tem, da pri uporabi Waylanda zapiranje enega od popup-ov zahteva preurejanje celotne verige oken z drugimi popup-ami, pri čemer prisotnost več odprtih popup-ov ni redka, saj so menus, namigi, dialogi dodatkov, zahteve po pooblastilih in podobno pogosto realizirani kot popup-i.
- Zmanjšani so stroški pri uporabi API-ja performance.mark() in performance.measure() z večjimi številkami analiziranih metrik.
- Obnašanje renderiranja med nalaganjem strani je spremenjeno za povečanje zmogljivosti ‘toplih’ nalaganj prej odprtih strani v načinu stroge izolacije.
- Za pospeševanje nalaganja strani je bil povečana prioriteta nalaganja in prikaza slik.
- V JavaScript motorju je nekoliko zmanjšana poraba pomnilnika in povečana zmogljivost pri pregledu lastnosti.
- Izboljšane so operacije načrtovanja klica zbiratelja odpadkov, kar je omogočilo skrajšanje časa nalaganja strani v nekaterih testih.
- Zmanjšano obremenitev CPU med polnjenjem socketov pri obdelavi HTTPS povezav.
- Pospešena inicializacija shranjevanja in skrajšan čas začetnega zagona s zmanjšanjem vhodno/izhodnih operacij v glavnem niti.
- Ob zapiranju orodij za razvijalce je bilo zagotovljeno sproščanje večjega kot prej obsega pomnilnika.
- V CSS pravilo @import je bila dodana podpora za funkcijo layer(), ki prikazuje definicije kaskadnega sloja, določenega z uporabo pravila @layer.
- V funkciji structuredClone() je bila realizirana podpora za kopiranje zapletenih objektov JavaScript.
- Za obrazce je bila realizirana lastnost 'enterkeyhint', ki omogoča določitev vedenja ob pritisku na tipko Enter na virtualni tipkovnici.
- Uvedena je bila metoda HTMLScriptElement.supports(), s katero lahko preverite podporo brskalnika za določene vrste skript, kot so JavaScript moduli ali klasični skripti.
- Dodana je lastnost ShadowRoot.delegatesFocus za preverjanje nastavitve lastnosti delegatesFocus v posameznem Shadow DOM-u.
- Na platformi Windows se namesto motečih uporabnikovih zahtevkov za namestitev posodobitve brskalnik zdaj posodablja v ozadju ob zapiranju. V okolju Windows 11 je bila izvedena podpora za nov sistem menijev (Snap Layouts).
- V gradnjah za macOS je za celozaslonski video uporabljen način nizke porabe energije.
- V različici za platformo Android:
- Poenostavljeno je bilo vrnitev na prej ogledano in zaprto vsebino — na novi osnovni domači strani je omogočeno ogledati nedavno zaprte zavihke, dodane zaznamke, iskalne poizvedbe in priporočila storitve Pocket.
- Omogočena je bila prilagoditev vsebine, ki se prikazuje na domači strani. Na primer, lahko prilagodite prikaz seznamov najbolj pogosto obiskanih strani, nedavno odprtih zavihkov, nedavno shranjenih zaznamkov, iskalnih poizvedb in priporočil Pocket.
- Dodana je bila podpora za premikanje dolgo nedelovanih zavihkov v posebno sekcijo Inactive Tabs, da ne bi obremenjevali glavne plošče zavihkov. V Inactive Tabs se postavijo zavihki, ki jim ni bilo dostopano več kot 2 tedna. Omenjeno vedenje lahko onemogočite v nastavitvah 'Settings->Tabs->Move old Tabs to inactive.'
- Razširjena je bila heuristika pri prikazovanju priporočil med vnosom v naslovno vrstico.

Poleg novosti in odprave napak je v Firefoxu 94 odprtih 16 ranljivosti, od katerih je 10 označenih kot nevarne. 5 ranljivosti je povzročenih s težavami pri upravljanju pomnilnika, kot so prelivanja pomnilnika in dostop do že osvobojenih pomnilniških območij. Te težave lahko potencialno pripeljejo do izvajanja kode zlonamerneža ob odpiranju posebej oblikovanih strani.
Izvor: opennet.ru





