Opublikowano wersję przeglądarki internetowej Pale Moon 31.0, która odłączyła się od bazy kodu Firefox w celu zapewnienia wyższej efektywności działania, zachowania klasycznego interfejsu, minimalizacji zużycia pamięci i oferowania dodatkowych możliwości dostosowania. Wersje Pale Moon są dostępne dla systemów Windows i Linux (x86 i x86_64). Kod projektu jest dostępny na licencji MPLv2 (Mozilla Public License).
Projekt zachowuje klasyczną organizację interfejsu, bez przejścia na zintegrowany w Firefox 29 interfejs Australis, z szerokimi możliwościami personalizacji. Spośród usuniętych komponentów można wymienić: DRM, Social API, WebRTC, przeglądarkę PDF, Crash Reporter, kod do zbierania statystyk, narzędzia do rodzicielskiej kontroli oraz dla osób z ograniczeniami. W porównaniu do Firefox, w przeglądarce zachowano wsparcie dla technologii XUL i możliwość stosowania zarówno pełnowymiarowych, jak i lekkich motywów.
W nowej wersji:
- Po wykryciu szeregu problemów z stabilnością oraz sprzeciwie jednego z kluczowych deweloperów, anulowano wcześniej wydane wersje Pale Moon 30.0.0 i 30.0.1. Przywrócono korzystanie z platformy UXP (Unified XUL Platform), rozwijającej odgałęzienie komponentów Firefox z repozytorium Mozilla Central, pozbawionej zależności od kodu napisanego w języku Rust i nie zawierającej elementów projektu Quantum. Jako silnik przeglądarki wykorzystano Goanna 5.1, wariant silnika Gecko, oczyszczony z kodu nieobsługiwanych komponentów i platform. Użytkownikom gałęzi Pale Moon 29.x zaproponowano bezpośrednie przejście na wersję 31.0.
- Zapewniono wsparcie zarówno dla starych, niemodyfikowanych dodatków do Firefox, jak i nowych dodatków, specjalnie przygotowanych dla Pale Moon. Stabilność działania starych dodatków nie jest gwarantowana, dlatego będą one oznaczane w menedżerze dodatków specjalną pomarańczową etykietą.
- Dodano wsparcie dla jednoczesnej kontroli całego łańcucha właściwości lub wywołań w JavaScript z użyciem operatora «?.». Na przykład, za pomocą «db?.user?.name?.length» można uzyskać wartość «db.user.name.length» bez wcześniejszych kontroli.
- W celu poprawy kompatybilności z witrynami dodano metody Selection.setBaseAndExtent() oraz queueMicroTask().
- W konstruktorze IntersectionObserver() przy przekazywaniu pustego ciągu zapewnione jest ustawienie domyślnej wartości dla właściwości rootMargin zamiast generowania wyjątku.
- Udoskonalono renderowanie struktur zdefiniowanych za pomocą CSS grid i flexbox.
- Zwiększono wydajność równoległego wykonywania web workerów w JavaScript.
- Poprawiono wyświetlanie czcionek w kursywie.
- Zaktualizowano wersje bibliotek dołączonych do podstawowej dostawy.
- Dodano wsparcie dla rozszerzonych identyfikatorów kodeków wideo VPx.
- Rozwiązano problem z wyświetlaniem pól zdefiniowanych bezpośrednio w tagach body i iframe bez użycia CSS.
- Usunięto kod związany z korzystaniem z usług Google SafeBrowsing i URLClassifier.
- Przywrócono kod dla budowy na platformie macOS.
- Usunięto niestandardowe API ArchiveReader.
- Przeprowadzono czyszczenie kodu z komponentów Mozilla do zbierania telemetrii.
- Usunięto kod związany z obsługą platformy Android.
- Usunięto framework automatyzacji testów Marionette.
- Przeniesiono poprawki związane z eliminacją luk w zabezpieczeniach.

Źródło: opennet.ru
