A fost publicat release-ul browserului web Pale Moon 31.0, derivat din baza de cod Firefox pentru a oferi o eficiență mai mare, menținerea interfeței clasice, minimizarea consumului de memorie și oferirea unor opțiuni suplimentare de personalizare. Versiunile Pale Moon sunt disponibile pentru Windows și Linux (x86 și x86_64). Codul proiectului este distribuit sub licența MPLv2 (Mozilla Public License).
Proiectul păstrează organizația clasică a interfeței, fără a trece la interfața integrată din Firefox 29, cunoscută sub numele de Australis, și oferă ample opțiuni de personalizare. Printre componentele eliminate se numără DRM, Social API, WebRTC, vizualizator PDF, Crash Reporter, cod pentru colectarea statisticilor, instrumente pentru control parental și pentru persoanele cu dizabilități. Comparativ cu Firefox, browserul păstrează suportul pentru tehnologia XUL și menține posibilitatea de a utiliza atât teme complete cât și teme ușoare.
În noua versiune:
- După identificarea unor probleme legate de stabilitate și la solicitarea unuia dintre dezvoltatorii cheie, au fost anulate versiunile Pale Moon 30.0.0 și 30.0.1. S-a revenit la utilizarea platformei UXP (Unified XUL Platform), care dezvoltă ramura componentelor Firefox din depozitul Mozilla Central, eliberate de legăturile cu codul în Rust și fără implementările proiectului Quantum. Motorul browserului folosește Goanna 5.1, o variantă a motorului Gecko, curățată de codul componentelor și platformelor neacceptate. Utilizatorii ramurii Pale Moon 29.x au fost invitați să facă o tranziție directă la versiunea 31.0.
- S-a asigurat suport pentru atât extensiile vechi ne-modificate pentru Firefox, cât și pentru extensiile noi, pregătite special pentru Pale Moon. Stabilitatea funcționării extensiilor vechi nu este garantată, prin urmare acestea vor fi etichetate în managerul de extensii cu o marcă portocalie specială.
- A fost adăugat suport pentru verificarea simultană a întregii lanțuri de proprietăți sau apeluri în JavaScript folosind operatorul „?.”. De exemplu, prin „db?.user?.name?.length” se poate accesa valoarea „db.user.name.length” fără verificări prealabile.
- Pentru a îmbunătăți compatibilitatea cu site-urile, au fost adăugate metodele Selection.setBaseAndExtent() și queueMicroTask().
- În constructorul IntersectionObserver(), la transmiterea unui șir gol, este asigurată setarea implicită a proprietății rootMargin în locul generării unei excepții.
- S-a îmbunătățit redarea structurilor definite prin CSS grid și flexbox.
- A fost crescută performanța execuției paralele a web worker-ilor în JavaScript.
- A fost îmbunătățită afișarea fonturilor cursive.
- Au fost actualizate versiunile bibliotecilor incluse în livrarea de bază.
- A fost adăugat suport pentru identificatori extinși ai codec-urilor video VPx.
- A fost rezolvată o problemă de lungă durată legată de afișarea câmpurilor definite direct în etichetele body și iframe fără a folosi CSS.
- A fost eliminat codul legat de utilizarea serviciilor Google SafeBrowsing și URLClassifier.
- A fost restabilit codul pentru compilarea pe platforma macOS.
- API ArchiveReader non-standard a fost eliminat.
- Codul a fost curățat de componentele Mozilla pentru colectarea telemetriei.
- Codul legat de suportul platformei Android a fost eliminat.
- Frameworkul de testare automată Marionette a fost eliminat.
- Au fost implementate corecții legate de eliminarea vulnerabilităților.

Sursa: opennet.ro
