Wydanie przeglądarki internetowej Firefox 108 miało miejsce. Ponadto, utworzono aktualizację gałęzi z długoterminowym wsparciem — 102.6.0. Wkrótce na etapie beta testów znajdzie się gałąź Firefox 109, której wydanie zaplanowano na 17 stycznia.
Główne nowości w Firefox 108:
- Dodano skrót klawiszowy Shift+ESC do szybkiego otwierania strony menedżera procesów (about:processes), co pozwala ocenić, jakie procesy i wewnętrzne wątki wykorzystują nadmierne zasoby pamięci i CPU.

- Zoptymalizowano planowanie generowania klatek animacji w warunkach wysokiego obciążenia, co umożliwiło poprawę wyników w teście MotionMark.
- Podczas drukowania i zapisywania formularzy PDF wprowadzono możliwość użycia symboli w językach innych niż angielski.
- Wdrożono wsparcie dla właściwej korekcji kolorów obrazów, zgodnie z profilami kolorów ICCv4.
- Zapewniono poprawne działanie trybu wyświetlania paska zakładek „tylko na nowych kartach” (ustawienie „Only show on New Tab”) dla pustych nowych kart.
- W about:config dodano ustawienia cookiebanners.bannerClicking.enabled i cookiebanners.service.mode do automatycznego klikania w banery, które żądają zgody na korzystanie z plików cookie na stronach. W interfejsie nocnych wydań wprowadzono przełączniki do zarządzania automatycznym klikaniem w banery cookie związane z konkretnymi domenami.
- Dodano API Web MIDI, umożliwiające interakcję z podłączonymi do komputera użytkownika urządzeniami muzycznymi z interfejsem MIDI z poziomu aplikacji webowej. API jest dostępne tylko dla stron ładowanych przez HTTPS. Przy wywołaniu metody navigator.requestMIDIAccess() w przypadku podłączonych do komputera urządzeń MIDI użytkownikowi wyświetli się dialog z propozycją zainstalowania dodatku „Site Permission Add-on”, potrzebnego do aktywacji dostępu (zob. opis poniżej).
- Zaproponowano eksperymentalny mechanizm dodatku Site Permission Add-on do zarządzania dostępem stron do potencjalnie niebezpiecznych interfejsów API i funkcji wymagających rozszerzonych uprawnień. Niebezpieczne to możliwości, które mogą fizycznie uszkodzić sprzęt, wprowadzić nieodwracalne zmiany, zostać wykorzystane do instalacji złośliwego oprogramowania lub prowadzić do wycieku danych użytkowników. Na przykład w kontekście interfejsu API Web MIDI dodatek Permission Add-on jest używany do przyznawania dostępu do urządzenia syntezatora dźwięku podłączonego do komputera.
- Domyślnie włączono obsługę map importu („import map”), która pozwala zarządzać tymi adresami URL, które będą ładowane podczas importowania plików JavaScript za pomocą wyrażeń import i import(). Mapa importu jest definiowana w formacie JSON w elemencie z nowym atrybutem „importmap”. Na przykład: { "imports": { "moment": "\/node_modules\/moment\/src\/moment.js", "lodash": "\/node_modules\/lodash-es\/lodash.js" } }
Po zadeklarowaniu tej mapy importu w kodzie JavaScript do załadowania i wykonania modułu JavaScript „\/node_modules\/moment\/src\/moment.js” można użyć wyrażenia ‘import moment from "moment";’ bez szczegółowego podawania ścieżki (co jest równoważne ‘import moment from "\/node_modules\/moment\/src\/moment.js";’).
- W elemencie „” wprowadzono obsługę atrybutów „height” i „width”, które określają wysokość i szerokość obrazu w pikselach. Określone atrybuty działają tylko wtedy, gdy element „” jest zagnieżdżony w elemencie „” i są ignorowane, gdy są zagnieżdżone w elementach
- W CSS udostępniono zestaw funkcji trygonometrycznych sin(), cos(), tan(), asin(), acos(), atan() i atan2().
- W CSS wprowadzono funkcję round() do wyboru strategii zaokrąglania.
- W CSS wprowadzono typ , który umożliwia użycie w funkcjach matematycznych znanych stałych matematycznych, takich jak liczby Pi i E, a także wartości nieskończoności i NaN. Na przykład, „rotate(calc(1rad * pi))”.
- W CSS zapytaniu „@container” dodano eksperymentalne wsparcie dla jednostek miary cqw (1% szerokości), cqh (1% wysokości), cqi (1% od inline-size), cqb (1% od rozmiaru bloku), cqmin (najmniejsza wartość cqi lub cqb) oraz cqmax (największa wartość cqi lub cqb), które pozwala na formowanie stylu elementów w zależności od rozmiaru rodzica. Możliwość ta jest domyślnie wyłączona i można ją włączyć przez parametr layout.css.container-queries.enabled w about:config.
- W JavaScript dodano metodę Array.fromAsync do tworzenia tablicy z danych przychodzących asynchronicznie.
- W nagłówku HTTP CSP (Content Security Policy) dodano wsparcie dla dyrektyw „style-src-attr”, „style-src-elem”, „script-src-attr” oraz „script-src-elem”, które oferują funkcjonalność dyrektyw stylu i skryptu, ale z możliwością ich stosowania do poszczególnych elementów i obsługi zdarzeń, takich jak onclick.
- Dodano nowe zdarzenie domContentLoaded, wywoływane po zakończeniu ładowania treści.
- W metodzie .get() dodano opcję forceSync do wymuszonej synchronizacji.
- Wprowadzono osobny obszar panelu do umieszczania widgetów rozszerzeń WebExtension.
- Zmodyfikowano logikę działania czarnej listy sterowników Linuxa, które są niekompatybilne z WebRender. Zamiast utrzymywać białą listę działających sterowników, przeszło się na prowadzenie czarnej listy problematycznych sterowników.
- Poprawiono wsparcie protokołu Wayland. Dodano obsługę zmiennej środowiskowej XDG_ACTIVATION_TOKEN z tokenem aktywacji dla protokołu xdg-activation-v1, dzięki któremu jedna aplikacja może przenieść fokus na inną. Rozwiązano problemy występujące podczas przenoszenia myszą zakładek.
- Na większości systemów Linux włączono animację panelu.
- W about:config dodano ustawienie gfx.display.max-frame-rate do ograniczenia maksymalnej liczby klatek na sekundę.
- Dodano wsparcie dla specyfikacji znaków Emoji 14.
- Domyślnie włączono rozszerzenie WebGL OES_draw_buffers_indexed.
- Wprowadzono możliwość wykorzystania GPU do przyspieszenia rastrowania Canvas2D.
- Na platformie Windows włączono izolację sandbox dla procesów interakcyjnych z GPU.
- Dodano wsparcie dla instrukcji SIMD FMA3 (mnożenie-dodawanie z jednokrotnym zaokrągleniem).
- Procesy stosowane do obsługi zakładek w tle na platformie Windows 11 są teraz uruchamiane w trybie „Efficiency”, w którym harmonogram zadań zmniejsza priorytet wykonywania, aby ograniczyć zużycie zasobów CPU.

- Ulepszenia w wersji na Androida:
- Dodano możliwość zapisywania strony internetowej jako dokumentu PDF.
- Wprowadzono wsparcie dla grupowania zakładek na pasku (zakładki można zamieniać miejscami po dłuższym naciśnięciu na zakładkę).
- Dodano przycisk do otwierania wszystkich zakładek z określonej sekcji w nowych zakładkach w nowym oknie lub w trybie incognito.
Oprócz nowych funkcji i poprawek błędów w Firefox 108 naprawiono 20 podatności. 16 z tych podatności oznaczono jako niebezpieczne, z czego 14 (zbierane pod CVE-2022-46879 i CVE-2022-46878) spowodowanych jest problemami z pamięcią, takimi jak przepełnienia buforów i dostęp do już zwolnionych obszarów pamięci. Potencjalnie problemy te mogą doprowadzić do wykonania kodu przez złośliwego użytkownika po otwarciu specjalnie przygotowanych stron. Podatność CVE-2022-46871 związana jest z wykorzystaniem kodu z przestarzałej wersji biblioteki libusrsctp, zawierającej niezałatane podatności. Podatność CVE-2022-46872 umożliwia napastnikowi, który uzyskał dostęp do procesu obsługi stron, ominięcie izolacji sandbox w Linuksie i odczytanie zawartości dowolnych plików poprzez manipulacje z komunikatami IPC związanymi z schowkiem.
Źródło: opennet.ru


