Wydanie Firefox 147

Wydano przeglądarkę internetową Firefox 147 oraz zaktualizowane starsze wersje z długoterminowym wsparciem — 140.7.0 i 115.32.0. Wersja Firefox 148 przeszła do etapu beta-testów, a jej wydanie planowane jest na 24 lutego.

Główne nowości w Firefox 147 (1, 2, 3):

  • Dodano wsparcie dla specyfikacji Freedesktop.org XDG Base Directory oraz możliwość używania katalogu „~/.config/mozilla” do przechowywania profili, dodatków, ustawień i wewnętrznych baz danych. Wsparcie dla przechowywania danych w starym katalogu „~/.mozilla” zostało zachowane jako opcja, aktywowana podczas uruchamiania z zmienną środowiskową „MOZ_LEGACY_HOME=1”.
  • Dodano wsparcie dla mechanizmu „Compression Dictionary Transport” (RFC 9842), który pozwala na zmniejszenie rozmiaru danych przesyłanych między klientem a serwerem, poprzez wykorzystanie algorytmów kompresji Zstandard (Content-Encoding: dcz) oraz Brotli (Content-Encoding: dcb) w połączeniu z kompresją typowych struktur przy użyciu słowników. Dostępne są dwa scenariusze użycia Compression Dictionary Transport — kompresja treści na podstawie wcześniej przesłanych przez serwer słowników oraz użycie wcześniej przesłanej treści jako słownika do kompresji jej nowej wersji (kompresja delta, w której przesyłane są tylko zmiany w porównaniu z istniejącą wersją).

    Na przykład, przy żądaniu „GET /index.html” serwer może przesłać informacje o dostępności słownika, zwracając ścieżkę do niego w nagłówku ‘Link: ; rel=„compression-dictionary”‘. Podczas ładowania słownika „…/dict” przez klienta, serwer przekaże informacje o jego zastosowaniu do plików HTML, ustawiając nagłówek ‘Use-As-Dictionary: match=„/*html”‘. Przy następnym żądaniu zasobu html, na przykład „GET /index2.html”, klient wskaże informacje o dostępności słownika poprzez nagłówek ‘Available-Dictionary: hash_słownika’‘. Jeśli serwer ma po swojej stronie słownik o danym hashu, zwróci zawartość index2.html skompresowaną za pomocą tego słownika.

    Do kompresji delta różnych wersji plików JavaScript w odpowiedzi na żądanie „GET /app.v1.js” serwer może ustawić nagłówek ‘Use-As-Dictionary: match=„/app*js”‘, informując, że zwrócona zawartość może być użyta jako słownik dla ścieżek „/app*js”. Przy następnym żądaniu pliku odpowiadającego tej masce, na przykład „GET /app.v2.js”, klient przekaże hash istniejącego słownika poprzez nagłówek „Available-Dictionary:”, a serwer zwróci tylko zmiany między plikami app.v1.js a app.v2.js.

  • Dodano stronę about:keyboard do konfiguracji kombinacji klawiszy i nadpisywania istniejących skrótów klawiszowych, na przykład, aby ustawić bardziej znajome dla siebie opcje lub wykluczyć konflikty z innymi programami.
    Wydanie Firefox 147
  • Optymalizowano odtwarzanie wideo z wykorzystaniem sprzętowego przyspieszenia dekodowania na GPU AMD. Na systemach z GPU AMD sprzętowo dekodowane wideo teraz odtwarzane jest bez dodatkowego kopiowania danych (tryb zero-copy), tak jak wcześniej realizowano to dla systemów z GPU Intel i NVIDIA.
  • Dla wersji 5 zaktualizowano realizację protokołu Safe Browsing, stosowanego do sprawdzania adresów URL pod kątem obecności na listach niebezpiecznych zasobów (strony phishingowe, strony z złośliwym oprogramowaniem itp.), które są dostarczane przez Google. Nowa wersja protokołu pozwala na pobieranie list blokad do używania na lokalnym systemie (baza danych z prefiksami hashy SHA256 problematycznych URL), które są teraz stosowane w Firefoxie.
  • Dodano ustawienie automatycznego kontynuowania odtwarzania wideo w trybie „obraz w obrazie” po przełączeniu karty.
  • W trybie wzmożonej ochrony przed śledzeniem (ETP, Enhanced Tracking Protection => Strict) domyślnie włączono zastosowanie specyfikacji LNA (Local Network Access) w celu ograniczenia dostępu do lokalnego systemu (loopback, 127.0.0.0/8) lub sieci wewnętrznej (192.168.0.0/16, 10.0.0.0/8 itd.) podczas interakcji z publicznymi witrynami. Dostęp do wewnętrznych zasobów jest wykorzystywany przez przestępców do przeprowadzania ataków CSRF na routery, punkty dostępu, drukarki, korporacyjne interfejsy webowe i inne urządzenia oraz usługi, które przyjmują żądania tylko z sieci lokalnej. Dodatkowo skanowanie wewnętrznych zasobów może być używane do pośredniej identyfikacji lub zbierania informacji o sieci lokalnej.
  • Na systemach Linuх z GNOME i serwerem kompozycyjnym Mutter rozwiązano problem z nieostrym wyświetlaniem treści przy użyciu ułamkowego poziomu skalowania.
  • Na komputerach Apple z chipami Apple Silicon i systemem macOS włączono wsparcie dla API WebGPU.
  • Priorytety wyboru języka (parametry q) przedstawiane w nagłówku HTTP Accept-Language są synchronizowane z wartościami stosowanymi w innych przeglądarkach, co rozwiązało niektóre problemy z przenośnością. Na przykład dla drugiego języka teraz priorytet wynosi q=0.9 zamiast q=0.5, a dla każdego kolejnego języka priorytet zmniejsza się o 0.1.
  • Biblioteka ICU została zaktualizowana do wersji 78 z obsługą Unicode 17 i danymi lokalizacji.
  • W Service Workerach zezwolono na użycie modułów JavaScript ESM (ECMAScript Module), importowanych i eksportowanych przez wyrażenia import i export.
  • Dodano wsparcie dla specyfikacji CSS Module Scripts, umożliwiającej użycie systemu modułów JavaScript do importowania zasobów CSS. Na przykład: import styles from „./styles.css” with { type: „css” };
  • W pseudo-elemencie „::marker”, który umożliwia dostosowanie parametrów numerów i punktów dla wypunktowań w blokach
      i
        , zezwolono na użycie właściwości CSS „counter-*” oraz „quotes”.
      1. W API CompressionStream i DecompressionStream dodano wsparcie dla formatu kompresji Brotli.
      2. W API View Transitions, stosowanym do tworzenia efektów animacyjnych przy przełączaniu między różnymi stanami DOM, dodano właściwość „type”, zawierającą tablicę typów przejść. Dodano również odpowiadający CSS selektor „:active-view-transition-type” oraz właściwość document.activeViewTransition, zwracającą instancję aktywnego obiektu ViewTransition dla dokumentu.
      3. Włączono zestaw właściwości CSS do zarządzania wyświetlaniem elementów, związanych z położeniem innych elementów (CSS Anchor Positioning), bez użycia JavaScript, na przykład do przyczepiania do elementów okienek podręcznych (popover), pojawiających się na wzór podpowiedzi.
      4. Wdrożono specyfikację „Storage Access Headers”, definiującą nagłówek żądania „Sec-Fetch-Storage-Access” oraz nagłówek odpowiedzi „Activate-Storage-Access” w celu uzyskania dostępu do zewnętrznych plików cookie bez wywoływania metody document.requestStorageAccess(). Serwer może żądać dostępu do plików cookie za pomocą nagłówka „Activate-Storage-Access”, a klient go wyśle, jeśli wcześniej użytkownik potwierdził udzielenie dostępu do pamięci cookie za pomocą API Storage Access.
      5. W właściwości CSS „root-font-relative” dodano wsparcie dla względnych jednostek miary rcap, rch, rex i ric.
      6. Zrealizowano API Navigation, które pozwala aplikacjom webowym przechwytywać operacje nawigacji w oknie, inicjować przejścia i analizować historię działań z aplikacją. API oferuje alternatywę dla właściwości window.history i window.location, zoptymalizowaną dla jednoskalowych aplikacji webowych.
      7. W narzędziach dla web-developerów w panelu z regułami CSS wprowadzono obsługę edytowania i dodawania selektorów pseudo-elementów. Do interfejsu przeglądarki danych w formacie JSON dodano przycisk do importowania zasobu do systemu profilowania (Firefox Profiler) w celu określenia informacji o jego rozmiarze. W panelach inspekcji elementów HTML i animacji zapewniono wyświetlanie pseudo-elementów View Transitions. W panelu z regułami CSS wdrożono wyświetlanie reguł @position-try, stosowanych do zarządzania wyświetlaniem elementów powiązanych z lokalizacją innych elementów (CSS Anchor Positioning).
      8. W wersji Firefox dla Androida dodano ochronę przed atakami przez zewnętrzne kanały, takie jak Spectre, które są stosowane do omijania izolacji między stronami. Wcześniej podobna ochrona była dostępna tylko w wersjach dla systemów desktopowych.

    Oprócz nowości i poprawek błędów w Firefox 147 usunięto 23 podatności. 10 podatności wynikało z problemów związanych z pamięcią, takich jak przepełnienia buforów i odwołania do już zwolnionych obszarów pamięci. Potencjalnie problemy te mogą prowadzić do wykonania kodu przez złośliwców po otwarciu specjalnie przygotowanych stron. 3 podatności pozwalają na ominięcie izolacji sandboxa z powodu niepoprawnej weryfikacji granic i całkowitego przepełnienia w komponencie do pracy z grafiką.

    Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster