34.3.0_ReleaseWindowsLinux
Pale Moon 34.3.0
Added 19
- Added powerPreference to canvas WebGL context for web compatibility
- Implemented support for the lch color space in CSS
- Added a base implementation for CSS stylesheet constructors
- Added a base implementation for CSS aspect-ratio sizing
- Added support for CSS min(), max() and clamp() functions
- Added support for CSS logical border radius properties
- Added support for ranges in CSS media queries
- Added support for CSS shadow parts
- Added support for degenerate CSS values infinity, -infinity and NaN
- Implemented full LoongArch64 Baseline/Ion/WASM JIT compiler support
- Added AV1 decoding with Dav1d for more performant AV1 video playback on 64-bit builds
- Added ES2024 Arraybuffer transfer APIs (resize, transfer, transferToFixedLength, detached, maxByteLength and resizable)
- Added support for growable/resizable SharedArrayBuffers and DataViews
- Added ES2024 grouping builtins (map .groupBy)
- Added ES2024 resolver builtins (.withResolvers())
- Added ES2024 String well-formed functions (.isWellFormed() and .toWellFormed())
- Added support for symbols as weak collection keys
- Added support for Atomics.waitAsync
- Added support for FinalizationRegistry (part of the WeakRef spec)
Changed 10
- Switched build system to Python 3
- Linux: Removed dbus-glib dependency
- Linux: Added EGL as a preferred OpenGL provider with GLX fallback
- Improved JS performance by porting various enhancements from Mozilla
- Further improved compatibility with building for Loongson architectures
- Further improved hardware accelerated decoding of WMF videos
- Improved parallel JS parsing tasks
- Improved CSS handling of calc() for web compatibility, allowing it in many more places
- Aligned CSS border width calculations with mainstream for web compatibility
- Changed the implementation of WeakRef support to be always enabled in its full implementation
Fixed 7
- Fixed various application crashes
- Fixed ARM assembler issues in the Goanna back-end
- Fixed some build issues on NetBSD
- Fixed a pertinent crash due to font handling on OS X 10.7 through 10.11
- Fixed build compatibility with 32-bit MacOS and Mac on PowerPC hardware
- Fixed a devtools crash on Big Endian machines
- Fixed an issue causing rendering artifacts on excessively large border-radius values
Removed 1
- Removed the CloudFlare workaround introduced in 34.2.0 as it should no longer be necessary with general image size handling improvements
Security 4
- Fixed a stack corruption issue in nsLocaleService that could lead to crashes
- Implemented some ANGLE upstream fixes
- Updated NSS to 3.90.11 (UXP), picking up a number of upstream security fixes
- Performed a large security audit of 190 security-sensitive reported bugs, finding and fixing 18 potential vulnerabilities applicable to the codebase
This is a major development, bugfix and security release. Special thanks to all the contributors (you know who you are!) for major work done on the platform internals this cycle, making Pale Moon better than ever :)
New features:
- Added powerPreference to canvas WebGL context for web compatibility.
- Implemented support for the
lchcolor space in CSS. - Added a base implementation for CSS stylesheet constructors.
- Added a base implementation for CSS
aspect-ratiosizing. - Added support for CSS
min(),max()andclamp()functions. - Added support for CSS logical border radius properties.
- Added support for ranges in CSS media queries.
- Added support for CSS shadow parts.
- Added support for degenerate CSS values
infinity,-infinityandNaN. - Implemented full LoongArch64 Baseline/Ion/WASM JIT compiler support.
- Added AV1 decoding with Dav1d for more performant AV1 video playback on 64-bit builds. See implementation notes. Note: AV1 is now enabled by default on Dav1d-supported configurations.
- Added ES2024 Arraybuffer transfer APIs (
resize,transfer,transferToFixedLength,detached,maxByteLengthandresizable). - Added support for growable/resizable SharedArrayBuffers and DataViews.
- Added ES2024 grouping builtins (map
.groupBy). - Added ES2024 resolver builtins (
.withResolvers()). - Added ES2024 String well-formed functions (
.isWellFormed()and.toWellFormed()). - Added support for symbols as weak collection keys.
- Added support for
Atomics.waitAsync. - Added support for
FinalizationRegistry(part of theWeakRefspec).
Changes/fixes:
- Switched our build system to Python 3. See implementation notes.
- Linux: removed
dbus-glibdependency. - Linux: Added EGL as a preferred OpenGL provider with GLX fallback; GLX remains the configured default as there are still some unresolved issues with EGL.
- Improved JS performance by porting across various enhancements from Mozilla.
- Fixed various application crashes.
- Further improved compatibility with building for Loongson architectures.
- Further improved hardware accelerated decoding of WMF videos.
- Fixed ARM assembler issues in the Goanna back-end.
- Improved parallel JS parsing tasks.
- Improved CSS handling of
calc()for web compatibility, allowing it in many more places (e.g.color()andz-index). For compatibility and performance reasons, we still strongly recommend that you use CSS variables to make calculations where possible. - Ported several smaller performance improvements from the Dactyloidae project.
- Aligned CSS border width calculations with mainstream, for web compatibility. Please note that this may impact some themes that might rely on fractional border rounding (instead of truncation).
- Removed the CloudFlare workaround introduced in 34.2.0 as it should no longer be necessary with general image size handling improvements. The preference will no longer do anything.
- White-listed driver vendors for VMWare, VirtualBox, VirtIO and Parallels to allow hardware accelleration as much as possible in VM environments.
- Changed the implementation of
WeakRefsupport to be always enabled in its full implementation. - Fixed some build issues on NetBSD.
- Mac: Fixed a pertinent crash due to font handling on OS X 10.7 through 10.11.
- Mac: Fixed build compatibility with 32-bit MacOS and Mac on PowerPC hardware.
- Fixed a devtools crash on Big Endian machines.
- Fixed an issue causing rendering artifacts on excessively large
border-radiusvalues (e.g. Tailwind CSS).
Security fixes:
- Fixed a stack corruption issue in nsLocaleService that could lead to crashes.
- Implemented some ANGLE upstream fixes.
- Updated NSS to 3.90.11 (UXP), picking up a number of upstream security fixes.
- Another large security audit was performed of 190 security-sensitive reported bugs. Many security issues were addressed, including potential crash scenarios and code correctness issues. As a summary: 18 potential vulnerabilities were found applicable and fixed, another 18 issues had DiD code changes applied, and 4 were already mitigated by us before being reported. Of the reported security bugs, 150 were not applicable to our code (with a good portion once again pertaining to e10s/multi-process browser architectures).
Implementation notes:
- The Dav1d AV1 video library was added to Pale Moon, which allows for greatly better performance in AV1 video playback, especially at higher resolutions. The codec is still very computationally intensive, so this does rely pretty heavily on having modern, capable hardware.
As an additional note, this library requires AVX hardware to properly decode at speed, and is only fully compatible with 64-bit targets. 32-bit builds will continue to use the reference AOM library for AV1 playback. If you build from source, there is a new configure option
--enable-libaomto build with the reference library instead of Dav1d. - If you build from source yourself, you will no longer have to rely on a distribution that offers Python 2.7. Please note there is some variance in Python 3 versions and not every version will work due to feature changes within the Python 3 range. Versions 3.4 through 3.14 should work; YMMV on other versions. Please ask for help on the forum if you can't figure it out.