Izdana je verzija web preglednika Firefox 147, a izvršena su i ažuriranja prošlih dugoročnih podržanih grana — 140.7.0 i 115.32.0. Grana Firefox 148 prešla je u beta testiranje, a njen izlazak planiran je za 24. veljače.
Glavne novosti u Firefox 147 (1, 2, 3):
- Dodana je podrška za specifikaciju Freedesktop.org XDG Base Directory i mogućnost korištenja direktorija «~/.config/mozilla» za pohranu profila, dodataka, postavki i unutarnjih baza podataka. Podrška za smještaj podataka u stari direktorij «~/.mozilla» ostavljena je kao opcija koja se aktivira pokretanjem s varijablom okoline «MOZ_LEGACY_HOME=1».
- Dodana je podrška za mehanizam «Compression Dictionary Transport» (RFC 9842), koji omogućuje smanjenje veličine podataka koji se šalju između klijenta i serverom, putem korištenja algoritama kompresije Zstandard (Content-Encoding: dcz) i Brotli (Content-Encoding: dcb) u kombinaciji s kompresijom tipičnih struktura uz korištenje rječnika. Dostupna su dva scenarija korištenja Compression Dictionary Transport — kompresija sadržaja prema prethodno poslanim rječnicima s poslužitelja i korištenje prethodno poslanog sadržaja kao rječnika za kompresiju njegove nove verzije (delta kompresija, pri čemu se šalju samo promjene u odnosu na postojeću verziju).
Na primjer, prilikom zahtjeva «GET /index.html» poslužitelj može poslati informacije o postojanju rječnika, vraćajući putanju do njega u zaglavlju ‘Link: ; rel="compression-dictionary"‘. Kada klijent preuzme rječnik «…/dict», poslužitelj će pružiti informacije o njegovoj primjeni na HTML datoteke, postavljajući zaglavlje ‘Use-As-Dictionary: match="/*html"‘. Prilikom sljedećeg zahtjeva za html resursom, poput «GET /index2.html», klijent će navesti informacije o postojanju rječnika putem zaglavlja ‘Available-Dictionary: hash_rječnika‘. Ako poslužitelj na svojoj strani ima rječnik s tim hešom, tada će vratiti sadržaj index2.html, komprimiran koristeći taj rječnik.
Za delta kompresiju različitih verzija JavaScript datoteka u odgovoru na zahtjev «GET /app.v1.js» poslužitelj može postaviti zaglavlje ‘Use-As-Dictionary: match="/app*js"‘, obavještavajući da se vraćeni sadržaj može koristiti kao rječnik za putanje «/app*js». Prilikom sljedećeg zahtjeva za datotekom koja odgovara ovoj maski, poput «GET /app.v2.js», klijent će prenijeti heš postojećeg rječnika putem zaglavlja «Available-Dictionary:», a poslužitelj će vratiti samo promjene između datoteka app.v1.js i app.v2.js.
- Dodana je stranica about:keyboard za podešavanje prečaca i predefiniranje postojećih tipki, na primjer, za davanje više poznatih opcija ili isključenje sukoba s drugim programima.

- Optimizirano je reprodukcija videa korištenjem hardverskog ubrzanja dekodiranja na AMD GPU-u. Na sustavima s AMD GPU-om, hardverski dekodirano video sada se reproducira bez dodatnog kopiranja podataka (zero-copy način), kao što je prethodno implementirano za sustave s Intel i NVIDIA GPU-ima.
- Za verziju 5 ažurirana je implementacija Safe Browsing protokola, koji se koristi za provjeru URL-ova na prisutnost u popisima nesigurnih resursa (phishing stranice, stranice sa zlonamjernim softverom itd.) koje pruža Google. Nova verzija protokola omogućuje učitavanje popisa blokiranja za korištenje na lokalnom sustavu (DB s prefiksima SHA256 heša problematičnih URL-ova), koji se sada primjenjuju u Firefoxu.
- Dodana je opcija za automatsko nastavak reprodukcije videa u režimu 'slika u slici' prilikom prebacivanja kartice.
- U režimu pojačane zaštite od praćenja (ETP, Enhanced Tracking Protection => Strict) prema zadanim postavkama uključena je primjena specifikacije LNA (Local Network Access) za ograničenje pristupa lokalnom sustavu (loopback, 127.0.0.0/8) ili unutarnjoj mreži (192.168.0.0/16, 10.0.0.0/8 itd.) pri interakciji s javnim web stranicama. Pristup unutarnjim resursima koriste zlonamjernici za provođenje CSRF napada na usmjerivače, pristupne točke, pisače, korporativne web sučelja i druge uređaje i usluge koje prihvaćaju zahtjeve samo iz lokalne mreže. Osim toga, skeniranje unutarnjih resursa može se koristiti za neizravnu identifikaciju ili prikupljanje informacija o lokalnoj mreži.
- Na Linux sustavima s GNOME-om i kompozitnim poslužiteljem Mutter riješen je problem s nejasnim prikazom sadržaja pri korištenju fractional scale.
- Na računalima Apple s Apple Silicon čipovima i macOS podržana je API WebGPU.
- Prioriteti za odabir jezika (q-parametri) postavljeni u HTTP zaglavlju Accept-Language usklađeni su s vrijednostima koje postavljaju drugi preglednici, čime su riješeni određeni problemi s prenosivošću. Na primjer, za drugi jezik sada se postavlja prioritet q=0.9 umjesto q=0.5, dok se prioritet za svaki naredni jezik smanjuje za 0.1.
- ICU biblioteka ažurirana je na verziju 78 s podrškom za Unicode 17 i ažuriranjem podataka lokaliteta.
- U Service Worker-ima dopušteno je korištenje ESM (ECMAScript Module) JavaScript modula, koji se mogu uvoziti i izvoziti putem izraza import i export.
- Dodana je podrška za CSS Module Scripts specifikaciju, koja omogućava korištenje JavaScript modula za uvoz CSS resursa. Na primjer: import styles from "./styles.css" with { type: "css" };
- U pseudo-elementu "::marker", koji omogućava prilagodbu parametara brojeva i točaka za nabrajanje u blokovima
- i
- , dopušteno je korištenje CSS svojstava "counter-*" i "quotes".
- U API-ju CompressionStream i DecompressionStream dodana je podrška za Brotli format kompresije.
- U API-ju View Transitions, koji se koristi za stvaranje animacijskih efekata prilikom prijelaza između različitih stanja DOM-a, dodano je svojstvo "type" koje sadrži niz tipova prijelaza. Također je dodan odgovarajući CSS selektor ":active-view-transition-type" i svojstvo document.activeViewTransition koje vraća instancu aktivnog objekta ViewTransition za dokument.
- Uključen je set CSS svojstava za upravljanje prikazom elemenata vezanih za položaj drugih elemenata (CSS Anchor Positioning) bez korištenja JavaScript-a, na primjer, za pričvršćivanje na elemente iskačućih prozora (popover) koji se pojavljuju slično alatnim savjetima.
- Implementirana je specifikacija "Storage Access Headers", koja definira zaglavlje zahtjeva "Sec-Fetch-Storage-Access" i zaglavlje odgovora "Activate-Storage-Access" za pristup vanjskim kolačićima bez pozivanja metode document.requestStorageAccess(). Poslužitelj može zatražiti pristup kolačićima putem zaglavlja "Activate-Storage-Access" i bit će poslan od strane klijenta ako je korisnik prethodno potvrdio pristup kolačićima putem API-ja Storage Access.
- U CSS svojstvo "root-font-relative" dodana je podrška za relativne mjerne jedinice rcap, rch, rex i ric.
- Implementiran je API Navigation, koji omogućava web aplikacijama da presreću navigacijske operacije unutar prozora, pokreću prijelaze i analiziraju povijest radnji s aplikacijom. API pruža alternativu svojstvima window.history i window.location, optimiziranim za jedinstvene web aplikacije.
- U alatima za web razvoj u panelu s CSS pravilima implementirana je podrška za uređivanje i dodavanje selektora pseudoelemenata. U sučelje za pregled podataka u JSON formatu dodano je dugme za uvoz resursa u sustav profiliranja (Firefox Profiler) za određivanje informacija o njegovoj veličini. U panelima za inspekciju HTML elemenata i animacija omogućeno je prikazivanje pseudoelemenata View Transitions. U panelu s CSS pravilima implementirano je prikazivanje pravila @position-try, primjenjivanih za upravljanje prikazom elemenata vezanih uz lokaciju drugih elemenata (CSS Anchor Positioning).
- U verziji Firefoxa za Android dodana je zaštita od napada kroz alternativne kanale, kao što je Spectre, korišten za zaobići izolaciju između web stranica. Prije su slične zaštite bile dostupne samo u verzijama za desktop sustave.
Osim novina i ispravka grešaka, u Firefoxu 147 riješeno je 23 ranjivosti. 10 ranjivosti uzrokovane su problemima s memorijom, poput preljeva bafera i pristupa već oslobođenim područjima memorije. Potencijalno, ovi problemi mogu dovesti do izvršavanja koda zlonamjernika prilikom otvaranja posebno oblikovanih stranica. 3 ranjivosti omogućuju zaobilaženje sandbox izolacije zbog nepravilnog provjeravanja granica i cjelobrojnog preljeva u grafičkom komponentu.
Izvor: opennet.ru

