Blady księżyc 32.2.0
Pale Moon to przeglądarka internetowa typu open source oparta na Goanna, dostępna dla systemów Microsoft Windows, Linux i Android, skupiająca się na wydajności i łatwości użytkowania. Upewnij się, że w pełni wykorzystujesz swoją przeglądarkę!
Pale Moon oferuje przeglądanie w przeglądarce całkowicie zbudowanej z własnego, niezależnie opracowanego źródła, które zostało rozwidlone z kodu Firefox/Mozilla, ze starannie dobranymi funkcjami i optymalizacjami w celu poprawy szybkości przeglądarki, wykorzystania zasobów, stabilności i wygody użytkownika, jednocześnie oferując pełną personalizację i rosnącą kolekcję rozszerzeń i motywów, aby przeglądarka była naprawdę Twoja.
Cechy:
- Zoptymalizowany dla nowoczesnych procesorów
- Oparty na zastrzeżonym zoptymalizowanym silniku układu (Goanna)
- Bezpieczny: rozwidlony z dojrzałego kodu Mozilli i regularnie aktualizowany
- Bezpieczeństwo: dodatkowe funkcje bezpieczeństwa i rozwój uwzględniający bezpieczeństwo
- Obsługiwany przez naszą społeczność użytkowników i całkowicie non-profit
- Znajomy, wydajny, w pełni konfigurowalny interfejs
- Obsługa pełnych motywów: całkowita dowolność w projektowaniu dowolnych elementów
- Obsługa łatwych w tworzeniu lekkich motywów (skórek)
- Płynne i szybkie rysowanie stron i przetwarzanie skryptów
- Zwiększona stabilność: mniej awarii przeglądarki
- Obsługa wielu rozszerzeń Firefoksa
- Obsługa rosnącej liczby ekskluzywnych rozszerzeń Pale Moon
- Rozbudowana i rosnąca obsługa HTML5 i CSS3
- Wiele opcji dostosowywania i konfiguracji
Lista zmian Blade Moon 32.2.0:
To kolejna ważna, ważna aktualizacja programistyczna, kontynuująca nasze szybkie prace rozwojowe w kamieniu milowym v32. W tej wersji powinniśmy przywrócić kompatybilność internetową z większością zgłoszonych problematycznych stron internetowych. Jeśli wcześniej natrafiałeś na problematyczne witryny w Pale Moon, dobrym pomysłem może być wypróbowanie ich ponownie w tej wersji. Specjalne podziękowania dla Joba Bautisty, martoka, dbsoft, FranklinDM i Travisa za ich ciężką pracę nad urzeczywistnieniem tego!
Spowoduje to aktualizację naszej platformy UXP/Goanna do wersji 6.2.
Zmiany/poprawki:
- Zaimplementowano dynamiczne importy modułów. Zobacz uwagi dotyczące implementacji.
- Zaimplementowano eksport funkcji asynchronicznych w modułach.
- Zaimplementowane pola klas JavaScript. Zobacz uwagi dotyczące implementacji.
- Zaimplementowane logiczne operatory przypisania ||=, &&= i? ?=.
- Wdrożono rozwiązanie dla stron internetowych korzystających z oficjalnie wycofanego niejednoznacznego window.event. Ta opcja jest domyślnie wyłączona, ale można ją włączyć za pomocą preferencji about:config dom.window.event.enabled. Zobacz uwagi dotyczące implementacji.
- Zaimplementowano self.structuredClone() (może to być bardzo niejasne dla każdego oprócz twórców stron internetowych. Przepraszam ;-))
- Zaimplementowano Element.replaceChildren. Jeszcze raz przede wszystkim uwaga programisty.
- Ulepszony Shadow DOM: dopasowanie hosta.
- Zaimplementowano CSS: :slotted() WebComponents i powiązaną funkcjonalność.
- Ulepszone buforowanie strony w naszym alokatorze pamięci.
- Dodano obsługę FFmpeg 6.0, szczególnie ważną w najnowocześniejszych dystrybucjach Linuksa.
- Naprawiono potencjalny impas w rysowaniu obrazów, w szczególności SVG. To rozwiązuje wiele scenariuszy zawieszania się po zamknięciu.
- Naprawiono różne awarie związane z komponentami WebComponents i naszymi ostatnimi pracami nad JavaScriptem.
- Naprawiono różne problemy z kompilacją ze źródła na drugorzędnych platformach docelowych.
- Naprawiono różne drobne problemy ze skryptami frontonu przeglądarki, które mogły prowadzić do błędów lub nieprawidłowej funkcjonalności.
- Naprawiono obsługę funkcji asynchronicznych (strzałek) zadeklarowanych wewnątrz konstruktorów.
- Naprawiono różne drobne problemy ze zgodnością JavaScript.
- Naprawiono problem, w wyniku którego JavaScript (tylko w modułach) nie tworzył prawidłowo asynchronicznych opakowań.
- Zaktualizowano DOM Performance API do aktualnej specyfikacji (User Timing L3).
- Zapoznaj się z uwagami dotyczącymi implementacji, zwłaszcza jeśli zamierzasz użyć tego w treści internetowej w celu uzyskania krytycznych funkcji.
- Zaktualizowano obsługę zdarzeń naciśnięcia klawisza, aby wysyłać zdarzenia naciśnięcia klawisza po naciśnięciu klawiszy Ctrl+Enter.
- Zaktualizowano wewnętrzne struktury JavaScript, aby ułatwić przyszłe przenoszenie, a także poprawić wydajność JavaScript.
- Zaktualizowano obsługę i styl okien na komputerach Mac.
- Zaktualizowano bibliotekę Freetype do wersji 2.13.0.
- Zaktualizowano bibliotekę Harfbuzz do wersji 7.1.0.
- Zaktualizowano nasze wywołania wyszukiwania DNS, aby używały inet_ntoa() zamiast przestarzałego inet_ntop().
- Zaktualizowano interfejs API pobierania, aby używał podstawowego adresu URL globalnego zamiast podstawowego adresu URL dokumentu wejściowego w celu zapewnienia zgodności ze specyfikacją.
- Nie obsługujemy już przestarzałej konfiguracji czcionek w systemach GTK.
- Nie analizujemy już ani nie zwracamy treści znanych pustych odpowiedzi z serwerów (długość treści równa 0 lub w przypadku metod HEAD lub CONNECT).
- Zaimplementowano skalowane buforowanie czcionek w GTK, poprawiając wydajność.
- Naprawiono problem z kompilacją podczas budowania dla systemu Linux na architekturze ARM64 w późniejszych dystrybucjach.
- Podziel więcej części przeglądarki na osobne. dll w systemie Windows, aby zmniejszyć obciążenie kompilatora i przewymiarowany plik xul.dll
- Usunięto mozilla::AlignedStorage (czyszczenie kodu).
- Kompilacje dla FreeBSD używają teraz xz do pakowania zamiast bzip2. Na życzenie oferujemy teraz również kompilacje GTK2 dla FreeBSD.
- Połączono preferencję dom.getRootNode.enabled z prefacją dom.webcomponents.enabled. Zobacz uwagi dotyczące implementacji.
- Naprawiono potencjalny problem DoS z dekodowaniem JPEG.
- Naprawiono potencjalny problem w kodzie widżetu Windows, który mógł prowadzić do awarii.
- Wyłączono potencjalnie niebezpieczne protokoły zewnętrzne w systemie Windows.
- Dodano znane problemy. dll do wewnętrznej listy zablokowanych.
- Rozwiązane problemy bezpieczeństwa: CVE-2023-32209, CVE-2023-32214 i kilka innych, które nie mają oznaczenia CVE.
- Podsumowanie poprawek bezpieczeństwa UXP Mozilla: 4 naprawione, 1 odrzucone, 27 nie dotyczy.
Uwagi dotyczące wdrożenia:
- Moduły JavaScript mają różne metody ładowania do treści strony internetowej. Jedną z później wprowadzonych metod jest deklaracja importu w stylu funkcji, tak zwany „dynamiczny import modułów”, który był używany przez różne frameworki internetowe, powodując problemy w Pale Moon, powodując w większości przypadków puste strony (ponieważ strony internetowe w rzeczywistości nie używają struktury dokumentu HTML, ale raczej JavaScript do tworzenia treści, wszystko z importowanych modułów). Był to ostatnio poważny problem ze zgodnością sieciową iz przyjemnością ogłaszamy, że ten złożony fragment mechanizmu został zaimplementowany.
- Specyfikacja języka JavaScript jest nadal rozwadniana z języka prototypowania w kierunku hybrydy bardziej „podobnej do C”. W ramach tych wysiłków klasy JavaScript zostały wprowadzone w ECMAScript 6, a teraz zostały rozszerzone w ES2022 o pola klas i pola/metody klas prywatnych, a także statystyki. Powinniśmy mieć teraz pełną implementację tego, co stanowi ważniejsze części aktualizacji językowej ES2022.
- Używanie przestarzałego pliku global window.event przeglądarki Microsoft Internet Explorer stanowiło dla nas powszechny problem ze zgodnością sieciową, zwłaszcza że został on oficjalnie uznany za przestarzały i nigdy nie zaimplementowaliśmy tej niejednoznacznej i zawodnej właściwości, która jest wysoce wrażliwa na kontekst. Witryny internetowe powinny zamiast tego używać zdarzenia przekazanego do procedury obsługi zdarzeń, aby uzyskać źródło zdarzenia. Ponieważ jednak ani Chrome, ani Firefox nie porzuciły tego i wydaje się, że grają w „kurczaka”, nadal jest używany w Internecie. Aby rozwiązać ten konflikt, zaimplementowaliśmy odpowiednik preferencji, aby umożliwić użytkownikom (tymczasowe) korzystanie z globalnego zdarzenia window.event, podczas gdy webmasterzy aktualizują swoje witryny. Mamy nadzieję, że obóz Google w końcu wkrótce zrezygnuje z tego, abyśmy mogli skończyć z tym starym dziwactwem.
- Interfejs DOM Performance API został zaktualizowany do specyfikacji User Timing level 3. Należy krytycznie zauważyć, że interfejs DOM Performance API nigdy nie był przeznaczony do stosowania w publikowanych treściach i został zaprojektowany wyłącznie do analizy wydajności stron przez projektantów stron internetowych. Oczywiście w ramach udostępniania narzędzi programistycznych w sieci doszło do wielu nadużyć ze względu na dokładne pomiary nawigacji i czasu, które może zapewnić ten interfejs API (patrząc na Ciebie, Google!). Ze względu na ścisłą integrację z analizą zawartości sieci, starsza implementacja specyfikacji, którą mieliśmy, powodowała problemy i faktycznie psuła niektóre usługi, więc zaktualizowaliśmy ją, ale z kilkoma ważnymi kluczowymi różnicami:
- W Pale Moon wyłączamy taktowanie nawigacji, ponieważ jest to znaczący problem z prywatnością danych, które może gromadzić (dokładne zdarzenia nawigacyjne i czasy). Jeśli jesteś programistą internetowym i potrzebujesz tych pomiarów czasu, możesz je włączyć za pomocą dom.enable_performance_navigation_timing.
- Nasza implementacja, wbrew specyfikacji, nie pozwala na nieograniczone rejestrowanie zdarzeń wydajnościowych (efektywnie logując każde zdarzenie na stronie!), co dodatkowo może bardzo szybko pochłonąć pamięć. Zamiast tego wymuszamy rozsądny domyślny limit, który powinien być wystarczająco pojemny do wszystkich legalnych zastosowań, ale zapobiega niekontrolowanemu wykorzystaniu zasobów lub obszernemu rejestrowaniu działań użytkowników.
- Jeśli ustalony limit zostanie osiągnięty, w konsoli zostanie wydrukowane ostrzeżenie, a zarejestrowane zdarzenia dotyczące wydajności zostaną wyrzucone. Jeśli (nierozsądnie) polegasz na zdarzeniach Performance API, aby Twoja aplikacja internetowa działała, pamiętaj, że może to powodować problemy ze zgodnością, ponieważ interfejs API ponownie nie został zaprojektowany do użytku w taki sposób. W przypadku obsługi zdarzeń dostępne są znacznie lepsze alternatywy, które nie wymagają obszernego rejestrowania danych użytkownika ani polegania na interfejsie API narzędzia programistycznego.
- Historycznie implementowaliśmy funkcję DOM getRootNode, ponieważ była ona używana jako samodzielna funkcja, jednak jej głównym celem zawsze było bycie funkcją pomocniczą, częścią Shadow DOM/WebComponents. W związku z tym połączyliśmy teraz preferencję z preferencją WebComponents, włączając i wyłączając ją wraz z resztą naszej implementacji WebComponents.
Pobieranie: Pale Moon (64-bit) | Przenośny 64-bitowy | ~40,0 MB (Freeware)
Pobieranie: Pale Moon (32-bit) | Przenośne 32-bitowe
linki: Strona główna Pale Moon | Dodatki | Motywy | Rozszerzenia
Dodaj komentarz