Byl vydán Firefox 147 spolu s aktualizacemi předchozích dlouhodobě podporovaných větví – 140.7.0 a 115.32.0. Firefox 148 vstoupil do beta testování s vydáním naplánovaným na 24. února.
Klíčové nové funkce ve Firefoxu 147 (1, 2, 3):
- Přidána podpora pro specifikaci základního adresáře XDG z Freedesktop.org a možnost používat adresář „~/.config/mozilla“ pro ukládání profilů, doplňků, nastavení a interních databází. Podpora pro ukládání dat do staršího adresáře „~/.mozilla“ je zachována jako volitelná možnost, aktivovaná při spuštění s proměnnou prostředí „MOZ_LEGACY_HOME=1“.
- Přidána podpora pro mechanismus Compression Dictionary Transport (RFC 9842), který umožňuje zmenšit velikost dat přenášených mezi klientem a server, s využitím kompresních algoritmů Zstandard (Content-Encoding: dcz) a Brotli (Content-Encoding: dcb) v kombinaci s kompresí standardních struktur založenou na slovnících. Pro použití transportu kompresního slovníku jsou k dispozici dva scénáře: komprese obsahu pomocí slovníků předem přenesených serverem a použití dříve přeneseného obsahu jako slovníku pro kompresi nové verze (delta komprese, při které se přenášejí pouze změny oproti existující verzi).
Například u požadavku „GET /index.html“ může server sdělit informaci o přítomnosti slovníku vrácením jeho cesty v záhlaví „Link: <…/dict>; rel="compression-dictionary"“. Když klient načte slovník „…/dict“, server poskytne informace o jeho použití v HTML souborech nastavením záhlaví „Use-As-Dictionary: match="/*html"“. U dalšího požadavku na HTML zdroj, například „GET /index2.html“, klient indikuje informaci o přítomnosti slovníku prostřednictvím záhlaví „Available-Dictionary: dictionary_hash"“. Pokud server má slovník s daným hashem, vrátí obsah index2.html komprimovaný pomocí tohoto slovníku.
Pro delta kompresi různých verzí souborů JavaScriptu může server na požadavek „GET /app.v1.js“ reagovat hlavičkou „Use-As-Dictionary: match="/app*js"“, což znamená, že vrácený obsah lze použít jako slovník pro cesty „/app*js“. Při následném požadavku na soubor odpovídající této masce, například „GET /app.v2.js“, klient předá hash dostupného slovníku prostřednictvím hlavičky „Available-Dictionary:“ a server vrátí pouze změny mezi soubory app.v1.js a app.v2.js.
- Byla přidána stránka about:keyboard pro úpravu klávesových zkratek a předefinování stávajících klávesových zkratek, například pro nastavení známějších možností nebo zamezení konfliktů s jinými programy.

- Přehrávání videa bylo optimalizováno pomocí hardwarově akcelerovaného dekódování na grafických procesorech AMD. V systémech s grafickými procesory AMD se nyní hardwarově dekódované video přehrává bez kopírování dat (režim nulového kopírování), jak bylo dříve implementováno u systémů s grafickými procesory Intel a NVIDIA.
- Verze 5 obsahuje aktualizovanou implementaci protokolu Bezpečné prohlížení, který kontroluje adresy URL oproti seznamům nebezpečných zdrojů od Googlu (phishingové weby, stránky hostující malware atd.). Nová verze protokolu umožňuje stahování seznamů blokovaných adres pro použití v lokálním systému (databáze obsahující prefixy hash SHA256 problematických adres URL), které se nyní používají ve Firefoxu.
- Přidána možnost automatického pokračování v přehrávání videa v režimu obraz v obraze při přepínání karet.
- V režimu Enhanced Tracking Protection (ETP) (> Strict) je ve výchozím nastavení povolena specifikace Local Network Access (LNA), která omezuje přístup k lokálnímu systému (loopback, 127.0.0.0/8) nebo interní síti (192.168.0.0/16, 10.0.0.0/8 atd.) při interakci s veřejnými webovými stránkami. Útočníci zneužívají přístup k interním zdrojům k provádění CSRF útoků na routery, přístupové body, tiskárny, firemní webová rozhraní a další zařízení a služby, které přijímají požadavky pouze z lokální sítě. Skenování interních zdrojů lze dále použít k nepřímé identifikaci nebo ke shromažďování informací o lokální síti.
- V systémech Linux s GNOME a kompozitním serverem Mutter byl vyřešen problém s rozmazaným zobrazením obsahu při použití zlomkových úrovní přiblížení.
- Na počítačích Apple s čipy a operačním systémem Apple Silicon macOS Podpora WebGPU API povolena.
- Priority výběru jazyka (q-parametry) nastavené v HTTP hlavičce Accept-Language byly synchronizovány s prioritami nastavenými jinými prohlížeči, což řeší některé problémy s přenositelností. Například druhý jazyk je nyní nastaven na q=0.9 místo q=0.5 a pro každý následující jazyk je priorita snížena o 0.1.
- Knihovna ICU byla aktualizována na verzi 78 s podporou Unicode 17 a aktualizacemi dat o lokalitách.
- Servisní pracovníci mohou používat JavaScriptové moduly ESM (ECMAScript Module), importované a exportované pomocí příkazů import a export.
- Přidána podpora pro specifikaci CSS Module Scripts, která umožňuje použít systém modulů JavaScript k importu CSS zdrojů. Například: import stylů z "./styles.css" s { type: "css" };
- V pseudoelementu "::marker", který umožňuje přizpůsobit parametry čísel a bodů pro výčty v blocích A , je povoleno používat CSS vlastnosti „counter-*“ a „quotes“.
- Do rozhraní API CompressionStream a DecompressionStream byla přidána podpora pro kompresní formát Brotli.
- API View Transitions, které se používá k vytváření animačních efektů při přepínání mezi různými stavy DOM, bylo aktualizováno o vlastnost „type“ obsahující pole typů přechodů. Byl také přidán odpovídající selektor CSS „:active-view-transition-type“ spolu s vlastností document.activeViewTransition, která vrací instanci objektu ViewTransition aktivního pro daný dokument.
- Byla zahrnuta sada vlastností CSS pro řízení zobrazení prvků ukotvených k umístění jiných prvků (CSS Anchor Positioning) bez použití JavaScriptu, například pro připojení vyskakovacích oken k prvkům, které vypadají podobně jako popisky.
- Byla implementována specifikace „Storage Access Headers“, která definuje hlavičku požadavku „Sec-Fetch-Storage-Access“ a hlavičku odpovědi „Activate-Storage-Access“ pro přístup k souborům cookie třetích stran bez volání metody document.requestStorageAccess(). Server může požádat o přístup k souborům cookie prostřednictvím hlavičky „Activate-Storage-Access“ a tuto hlavičku klient odešle, pokud uživatel dříve potvrdil přístup k úložišti souborů cookie prostřednictvím rozhraní Storage Access API.
- Vlastnost CSS „root-font-relative“ byla aktualizována a nyní podporuje relativní jednotky rcap, rch, rex a ric.
- Bylo implementováno navigační API, které umožňuje webovým aplikacím zachycovat operace navigace v oknech, spouštět navigaci a analyzovat historii aplikace. API poskytuje alternativu k vlastnostem window.history a window.location, optimalizovanou pro jednostránkové webové aplikace.
- V nástrojích pro webové vývojáře nyní panel pravidel CSS podporuje úpravy a přidávání selektorů pseudoelementů. Do rozhraní pro prohlížení dat JSON bylo přidáno tlačítko pro import zdroje do Firefox Profileru za účelem určení jeho velikosti. Pseudoelementy View Transitions se nyní zobrazují v panelech pro kontrolu elementů HTML a animací. Panel pravidel CSS nyní zobrazuje pravidla @position-try, která se používají k řízení zobrazení elementů ukotvených k pozici jiných elementů (CSS Anchor Positioning).
- Ve verzi pro Firefox Android přidal ochrana před útoky prostřednictvím kanálů třetích stran, jako je Spectre, které se používaly k obcházení izolace mezi weby. Dříve byla taková ochrana dostupná pouze v desktopových sestaveních.
Kromě nových funkcí a oprav chyb opravuje Firefox 147 23 zranitelností. Deset z těchto zranitelností je způsobeno problémy se správou paměti, jako je přetečení vyrovnávací paměti a přístup k paměti po jejím uvolnění. Tyto problémy by mohly vést ke spuštění škodlivého kódu při otevírání speciálně vytvořených stránek. Tři zranitelnosti umožňují obejití izolace sandboxu kvůli nesprávné kontrole hranic a přetečení celočíselných hodnot v grafické komponentě.
Zdroj: opennet.ru

