Wydano przeglądarkę internetową Firefox 94. Dodatkowo, stworzono aktualizację gałęzi z długoterminowym wsparciem — 91.3.0. Gałąź Firefox 95 przeszła do etapu testów beta, a jej wydanie planowane jest na 7 grudnia.
Główne nowości:
- Wprowadzono nową stronę pomocniczą „about:unloads”, na której użytkownik może wymusić wyładowanie z pamięci najbardziej zasobożernych kart, nie zamykając ich (zawartość zostanie ponownie załadowana przy przechodzeniu na kartę). Na stronie „about:unloads” istniejące karty są wymienione w kolejności priorytetu wyładowania przy niedoborze pamięci RAM. Priorytet na liście ustalany jest w zależności od czasu dostępu do karty, a nie na podstawie zużywanych zasobów. Po naciśnięciu przycisku Unload z pamięci zostanie wyładowana pierwsza karta z listy, przy następnym naciśnięciu — druga itd. Nie ma jeszcze możliwości wyładowania karty według własnego wyboru.

- Przy pierwszym uruchomieniu po instalacji aktualizacji uruchamiany jest nowy interfejs do wyboru sześciu sezonowych motywów kolorystycznych, dla których zaproponowano trzy poziomy zastosowania ciemnego odcienia, wpływających na wyświetlanie w ciemnych tonach obszaru treści, paneli i paska przełączania kart.

- Zaproponowano tryb ścisłej izolacji witryn, rozwijany w ramach projektu Fission. W przeciwieństwie do dotychczas stosowanego dowolnego rozdziału przetwarzania kart na dostępny pulę procesów (domyślnie 8), tryb ścisłej izolacji wyodrębnia przetwarzanie każdej witryny do osobnego procesu, dzieląc nie według kart, a według domen (Public Suffix). Tryb ten nie jest aktywowany dla wszystkich użytkowników; jego wyłączenie lub włączenie może być dokonane na stronie „about:preferences#experimental” lub za pomocą ustawienia „fission.autostart” w about:config.
Nowy tryb zapewnia bardziej niezawodną ochronę przed atakami klasy Spectre, zmniejsza fragmentację pamięci, pozwala dodatkowo izolować zawartość zewnętrznych skryptów i bloków iframe. Efektywniej zwraca pamięć systemowi operacyjnemu, minimalizuje wpływ zbierania śmieci i intensywnych obliczeń na strony w innych procesach, zwiększa efektywność rozdzielania obciążenia na różne rdzenie CPU i poprawia stabilność (awaria procesu obsługującego iframe nie przeciągnie za sobą głównej witryny i innych zakładek). Kosztem tego jest ogólny wzrost zużycia pamięci przy dużej liczbie otwartych witryn.
- Użytkownikom zaproponowano rozszerzenie Multi-Account Containers, które wdraża koncepcję kontekstowych kontenerów do fleksyjnej izolacji dowolnych witryn. Kontenery oferują możliwość izolacji różnych typów treści bez tworzenia osobnych profili, co pozwala oddzielić informacje różnych grup stron. Na przykład, można stworzyć osobne, wzajemnie izolowane obszary dla komunikacji osobistej, pracy, zakupów oraz operacji bankowych lub zorganizować jednoczesne korzystanie z różnych kont użytkownika na jednej stronie. W każdym kontenerze używane są oddzielne magazyny dla Cookies, Local Storage API, indexedDB, pamięci podręcznej oraz zawartości OriginAttributes. Ponadto, korzystając z Mozilla, VPN można używać różnych serwerów VPN dla każdego kontenera.

- Usunięto prośbę o potwierdzenie operacji podczas wyjścia z przeglądarki lub zamykania okna za pomocą menu i przycisków zamykania okna. Tzn. omyłkowe naciśnięcie przycisku „[x]” w nagłówku okna teraz prowadzi do zamknięcia wszystkich zakładek, w tym tych z otwartymi formularzami edycyjnymi, bez wcześniejszego ostrzeżenia. Po przywróceniu sesji dane w formularzach webowych nie są tracone. Po naciśnięciu Ctrl+Q nadal pojawia się ostrzeżenie. W ustawieniach to zachowanie można zmienić (panel Ogólne/sekcja Zakładki/parametr „Potwierdź przed zamknięciem wielu zakładek”).

- W wersjach na platformę Linux dla środowisk graficznych korzystających z protokołu X11 domyślnie włączono nowy backend renderowania, który wyróżnia się używaniem EGL do wyświetlania grafiki interfejsu zamiast GLX. Backend wspiera współpracę z otwartymi sterownikami OpenGL Mesa 21.x oraz z własnościowymi sterownikami NVIDIA 470.x. Własnościowe sterowniki OpenGL od AMD na razie nie są wspierane. Użycie EGL rozwiązuje problemy z grafiką i pozwala na rozszerzenie zakresu urządzeń, dla których dostępne jest przyspieszenie wideo i WebGL. Nowy backend został przygotowany poprzez podział backendu DMABUF, pierwotnie stworzonego dla Waylanda, który umożliwia bezpośrednie wyświetlanie klatek w pamięci GPU, co może być odzwierciedlane w buforze EGL i renderowane jako tekstura przy zestawianiu elementów strony internetowej.
- W wersjach dla Linux domyślnie włączono warstwę rozwiązującą problemy z schowkiem w środowiskach opartych na protokole Wayland. Zostały również wprowadzone zmiany związane z obsługą okien podręcznych w środowiskach opartych na protokole Wayland. Wayland wymaga przestrzegania surowej hierarchii okien podręcznych, tj. okno rodzica może utworzyć okno podrzędne z oknem popup, ale wszelkie kolejne popupy inicjowane z tego okna muszą być związane z pierwotnym oknem podrzędnym, tworząc łańcuch. W przypadku Firefoksa każde okno może generować kilka popupów, które nie tworzą hierarchii. Problem polegał na tym, że przy używaniu Waylanda zamknięcie jednego z popupów wymaga przebudowy całego łańcucha okien z innymi popupami, przy czym posiadanie kilku otwartych popupów nie jest rzadkością, ponieważ w formie popupów realizowane są menu, podpowiedzi, dialogi dodatków, pytania o uprawnienia itp.
- Zmniejszono narzuty przy użyciu API performance.mark() i performance.measure() z dużą liczbą analizowanych metryk.
- Zmieniono zachowanie renderowania podczas ładowania stron w celu zwiększenia wydajności 'ciepłego' ładowania wcześniej otwieranych stron w trybie ścisłej izolacji.
- Aby przyspieszyć ładowanie stron, zwiększono priorytet ładowania i wyświetlania obrazów.
- W silniku JavaScript nieco zmniejszono zużycie pamięci i zwiększono wydajność iteracji właściwości.
- Ulepszono operacje planowania wywołania zbieracza śmieci, co pozwoliło na skrócenie czasu ładowania stron w niektórych testach.
- Zmniejszone obciążenie CPU podczas pollingu gniazd przy przetwarzaniu połączeń HTTPS.
- Przyspieszono inicjalizację pamięci i skrócono czas uruchamiania poprzez zmniejszenie operacji I/O w głównym wątku.
- Podczas zamykania narzędzi dla programistów uwolniono większą ilość pamięci niż wcześniej.
- W regule CSS @import dodano wsparcie dla funkcji layer(), która wyprowadza definicje kaskadowej warstwy zdefiniowanej za pomocą reguły @layer.
- W funkcji structuredClone() dodano wsparcie dla kopiowania złożonych obiektów JavaScript.
- Dla formularzy dodano atrybut «enterkeyhint», który pozwala określić zachowanie po naciśnięciu klawisza Enter na wirtualnej klawiaturze.
- Wprowadzono metodę HTMLScriptElement.supports(), dzięki której można sprawdzić, czy przeglądarka obsługuje określone typy skryptów, takie jak moduły JavaScript lub klasyczne skrypty.
- Dodano właściwość ShadowRoot.delegatesFocus, aby sprawdzić, czy właściwość delegatesFocus jest ustawiona w osobnym Shadow DOM.
- Na platformie Windows zamiast uciążliwych zapytań o zainstalowanie aktualizacji, przeglądarka teraz aktualizuje się w tle podczas zamykania. W środowisku Windows 11 wprowadzono wsparcie dla nowego systemu menu (Snap Layouts).
- W wersjach dla macOS tryb niskiego zużycia energii został wykorzystany dla pełnoekranowego wideo.
- W wersji na platformę Android:
- Ułatwiono powrót do wcześniej przeglądanych i zamkniętych treści – na nowej podstawowej stronie startowej udostępniono możliwość przeglądania niedawno zamkniętych zakładek, dodanych zakładek, zapytań wyszukiwania oraz rekomendacji usługi Pocket.
- Udostępniono możliwość dostosowania treści wyświetlanej na stronie startowej. Na przykład można skonfigurować wyświetlanie listy najczęściej odwiedzanych stron, niedawno otwartych zakładek, ostatnio zapisanych zakładek, zapytań wyszukiwania i rekomendacji Pocket.
- Dodano wsparcie dla przenoszenia nieaktywnych zakładek do osobnej sekcji Inactive Tabs, aby nie zaśmiecać głównej puli zakładek. W Inactive Tabs znajdują się zakładki, których nie używano przez ponad 2 tygodnie. To zachowanie można wyłączyć w ustawieniach „Settings->Tabs-> Move old Tabs to inactive.”
- Rozszerzono heurystykę przy wyświetlaniu rekomendacji podczas wpisywania w pasku adresu.

W wersji Firefox 94, oprócz nowości i poprawek błędów, usunięto 16 luk w zabezpieczeniach, z których 10 oznaczono jako niebezpieczne. 5 luk związanych jest z problemami z pamięcią, takimi jak przepełnienia buforów i odwołania do już zwolnionych obszarów pamięci. Problemy te mogą potencjalnie prowadzić do wykonania złośliwego kodu po otwarciu specjalnie przygotowanych stron.
Źródło: opennet.ru





