AfterDawn | News | Guides | Software downloads | Tech Support | Forums | HIGH.FI
AfterDawn

Version history for Pale Moon (64-bit)

<<Back to software description

Changes for v28.11.0 - v28.12.0

  • This is a development, bugfix and security update.
  • Changes/fixes:
  • Added controls for WASM to the browser's preferences, and enabled by default.
  • Enabled various arbitrarily-disabled CSS functions.
  • Added the use of basic path descriptors (i.e. polygon) to css clip paths.
  • Implemented multithreaded request signal handling for the Abort API. Please see implementation notes below.
  • Updated the included US-English dictionary, adding approximately 2500 additional words.
  • Removed the DOM battery API. This was already disabled for privacy reasons for a long while.
  • Fixed an erroneous warning displayed on toolkit-only add-ons like supplied dictionaries.
  • Fixed an issue with the sessionstore tab load preference.
  • Improved the generation of the names of downloaded files to prevent confusion. (CVE-2020-15658)
  • Fixed a code issue with base64 encoding of data.
  • Fixed 2 safety hazards in JavaScript. (One being CVE-2020-15656) DiD
  • Fixed a spec compliance issue with regards to the cross-origin loading of scripts. (CVE-2020-15652)
  • Improved the loading of a system DLL on Windows, preventing low-risk hijacking potential. (CVE-2020-15657) See implementation notes.
  • Unified XUL Platform Mozilla Security Patch Summary: 4 fixed, 2 defense-in-depth, 15 not applicable.
  • Implementation notes:
  • In 28.11.0, we introduced the Abort API as new code. The implementation of it still had an issue where especially web workers would not always see the availability of abort signals on fetch requests while AbortSignal was implemented in the browser. This effectively made some websites (especially those using a particular polyfill for the Abort API that would detect the need to polyfill by way of Request.signal) throw errors that were fine before. We offered users a workaround by temporarily disabling the AbortController in the browser by way of a preference (dom.abortController.enabled).
  • v28.12.0 fixes the multi-threaded handling of signals, which should solve these problems. As such, the workaround is no longer needed and upon upgrade the preference will be reset to enable AbortControllers again.
  • DLL-hijacking on Windows would only be possible if a malicious actor already either gained administrative access to the program's installation folder or otherwise have unrestricted access to the program folder (by having it installed in local application folders inside the user's profile space or other insecure program locations). In that case the system is already compromised and any executable can be replaced, so having dll loading hijacked would be the least of your concerns (i.e. the main program .exe could also be replaced/infected in that case)



Changes for v28.9.2 - v28.9.3

  • This is a security update.
  • Fixed a potential vulnerability in the zip file reader. DiD
  • Fixed a potential vulnerability in the JavaScript JIT compiler related to aliases. DiD
  • Ported several upstream devtools fixes (addresses CVE-2020-12392 and CVE-2020-12393).
  • Improved memory safety of some WebAudio calls.
  • Improved memory safety in the XUL window destructor. DiD
  • Unified XUL Platform Mozilla Security Patch Summary: 3 fixed, 3 Defense-in-depth, 16 not applicable.



Changes for v28.8.3 - v28.8.4

  • Implemented optional catch binding (ES2019).
  • Fixed a hazardous crash related to module scripting (CVE-2020-9545).



Changes for v28.8.2.1 - v28.8.3

  • Changes/fixes:
  • Fixed an issue in CSP blocking requests without a port for custom schemes.
  • Fixed a potentially hazardous crash in layers.
  • Fixed random crashes on some sites using IndexedDB.
  • Changed the way the application can be invoked from the command-line to prevent a whole class of potential exploits involving modified omnijars.
  • If your special-needs environment requires that you launch the browser with custom browser/gre omnijars from the command-line, you must set the UXP_CUSTOM_OMNI environment variable before launch from this point forward.
  • Fixed an issue in the html parser after using HTML5 template tags, allowing JavaScript parsing and execution when it should not be allowed, risking XSS vulnerabilities on sites relying on correct operation of the browser. (CVE-2020-6798)
  • Unified XUL Platform Mozilla Security Patch Summary: 2 fixed, 2 DiD, 10 not applicable.



Changes for v28.8.2 - v28.8.2.1

  • This is a minor release in response to YouTube deprecating their old web UI. This change will enable the new YouTube UI by default.



Changes for v28.7.1 - v28.8.0

  • This is a major development release. Many things have been improved, some landmark features have been added/enabled, and many libraries have been updated for added stability and performance. We hope you are as happy with this progress as we are!
  • All the best wishes for the Holidays to everyone!
  • New features:
  • Added support for modern Solaris operating systems like Illumos (thanks Athenian200!).
  • Implemented position:sticky for table parts - You can now use CSS to e.g. stick table headers so they don't scroll off the screen!
  • Enabled basic implementation of module type scripting. While not fully spec compliant (yet), this will fix the few web compatibility issues with sites that rely on this feature without fallback (e.g. the Chromium bugtracker).
  • Implemented Promise.prototype.finally() (ES2018).
  • Implemented Regular Expression lookbehind (ES2018).
  • Implemented Regular Expression /s flag (dotAll support) (ES2018).
  • Implemented String.prototype.matchAll (regex) (ES2020).
  • Added Ekoru to the list of default search engines. This is a Bing-backed search engine that donates the majority of its revenue to various charities that support the planet and animals. An environment-supporting alternative to Ecosia if you don't want to support Google in the process.
  • Changes/fixes:
  • Changed the way tables are rendered to fix a number of spec compliance issues and allow relative positioning of table parts.
  • Now building against the Windows 10 SDK 10.0.17763.132 for increased compatibility with Windows 10 and improved Spectre mitigation.
  • Removed the unused DiskSpaceWatcher component.
  • Updated cairo code.
  • Updated SQLite to 3.30.1.
  • Updated the Brotli library to 1.0.7.
  • Updated the woff2 library to 1.0.2.
  • Updated the OpenType Sanitizer to 8.0.0.
  • Updated the Javascript math library for precision and performance fixes.
  • Updated the embedded Emoji font to Mozilla's COLR-mapped twemoji 0.5.0 (Twemoji 12.1.3), to support Emoji 12.
  • Improved CSS grid rendering.
  • Changed packaging for archives to use 7z/xz instead of zip/bz2.
  • Made the second argument of (DOM/CSS) insertRule() optional for (Chrome) web compatibility.
  • Removed the non-standard object.prototype.watch()/unwatch() functions. Please note that this may affect some extensions; those will need to be updated to no longer use these non-standard functions.
  • Fixed the status bar module to work around an issue with relying on watch()/unwatch().
  • Fixed a build failure in the libcubeb sndio module.
  • Fixed a small oversight in the release branch that would potentially still mark "jnlp" (Java Web Start) files as executable.
  • Fixed the certificate retrieval logic in the certificate exception dialog.
  • Fixed an issue with add-ons potentially getting confused during add-on updates due to cached scripts.
  • Fixed a crash due to unnecessary reparenting calls in layout.
  • Reinstated the mentioning of the number of accelerated/total windows in Troubleshooting Information, for completeness.
  • Moved the embedded font for Emoji from application to platform so all UXP applications can easily benefit from it (thanks Tobin!).
  • Cleaned up the jemalloc code: Removed dead/unused code, removed conditionals around "always on" code, and made the allocator VLA-free.
  • Security-related fixes:
  • Removed the silent fallback to insecure install locations on Windows.
  • Pale Moon will no longer by default install into unprotected program locations (this was a regression in v28).
  • If your operating system account does not have the necessary privileges, you need to manually select an accessible folder to install into. This is important to prevent malware from modifying installed programs in well-known but otherwise unprotected installation locations.
  • Added a preference for, and disabled, the confirmation prompt for URL authentication (prevents evil traps).
  • Disabled the use of HPKP by default due to the inherent risks involved with this feature. A preference was added to completely disable header processing, and using preloaded pins is effectively disabled. Please note that this is automatically disabled by default for everyone, regardless of your previous setting for this feature, and it is strongly recommended you keep this feature disabled. HPKP will eventually be removed (overall Internet concensus).
  • Fixed a potential issue when interacting with plugins. (DiD)
  • Fixed a potential crash scenario when reading PAC configuration. (DiD)
  • Fixed a potential issue with text selection painting. (DiD)
  • Fixed an issue with element references not being properly updated. (DiD)
  • Fixed an issue with incorrect saving of web pages as text. (DiD)
  • Fixed a potential issue with clipboard handling. (DiD)
  • Fixed a potential issue with attaching the debugger to web workers. (DiD)
  • Updated NSS to 3.41.4 to address CVE-2019-11756 and CVE-2019-11745.
  • Unified XUL Platform Mozilla Security Patch Summary: 2 fixed, 8 DiD, 16 not applicable.



Changes for v28.7.0 - v28.7.1

  • This is a security and bugfix update.
  • Changes/fixes:
  • Fixed an issue where saving a webpage to disk would sometimes drop tags from the document.
  • Fixed an issue with click-to-play plugin content throwing up a blank notification.
  • Fixed an issue in the renderer where region intersections would sometimes return the wrong result.
  • This fixes a regression caused by the fix for CVE-2016-5252.
  • Fixed security issues: CVE-2019-11744, CVE-2019-11752, CVE-2019-11737, CVE-2019-11746, CVE-2019-11750, CVE-2019-11747 and CVE-2019-11738.
  • Unified XUL Platform Mozilla Security Patch Summary: 7 fixed, 1 DiD, 1 already covered, 22 not applicable.



Changes for v28.6.0.1 - v28.7.0

  • Landed a large JavaScript parser tune-up, which as a targeted goal brings our ES6 stringification fully in line with the ES2018 revision for classes, and implements rest/spread parameters for object literals. (Cheers to Luke!)
  • Fixed a crash with the tuned-up parser code when certain error messages were triggered.
  • Aligned browser behavior with mainstream regarding inner window behavior when domain is manipulated.
  • Improved performance dealing with frame properties.
  • Improved performance for handling html5 strings.
  • Improved performance of image content loading.
  • Fixed potential type confusion in array joins.
  • Fixed an issue on some pages causing high CPU usage when wrongly specifying plugin content.
  • Fixed an issue with the add-ons manager "discover" pane if no network connection is present.
  • Fixed an issue with bookmark/history search results offering context menu options that would be invalid without a selection.
  • Fixed the devtools JSON viewer and enabled it by default.
  • Fixed searching from about:home not working for search plugins using the POST method.
  • Fixed an issue with the checkboxes for location bar preferences.
  • Fixed SVG alignment issues if SVG-containing elements fall on odd pixel sizes, causing blurry display of especially small SVGs like icons/glyphs.
  • SVGs will now always be pixel-snapped to provide expected crisp display.
  • Fixed precompilation of Sync client modules when packaging. This also removes the redundant services.sync.enabled pref.
  • Added support for matroska containers and h264-based webm video formats.
  • Added support for AAC audio in matroska and webm video formats.
  • Added support for spaces in the Mac package and application name.
  • Added an exception to the unique file origin policy for font types.
  • Added native file picker support for xdg on Linux.
  • Updated the default bookmark icons.
  • Updated the SQLite lib to 3.29.0.
  • Removed e10s information from about:troubleshooting.
  • Removed hotfix leftovers.
  • Removed the WebIDE developer tool.
  • Removed conditional build-time disabling of the Pale Moon status bar code.
  • Removed "Delete this page" and "Forget about this site" links from live bookmarks (since they make no sense on feeds).
  • Removed the Financial Times' polyfill user-agent override since they updated their detection to work with Pale Moon.



Changes for v28.6.0 - v28.6.0.1

  • Updated the application icon to provide better visuals on Windows classic and other grey backgrounds.
  • Reduced the Master Password hashing rounds to prevent issues with stored password retrieval while still sufficiently strengthening the encryption.
  • If you have previously re-keyed the database after the update to 28.6.0, you should do so again by going through the change master password process to reduce access times.
  • Updated the WhatsApp Web site-specific user-agent override to respond to Google refusing access based on the old string.
  • Updated the branding for the portable launcher.



Changes for v28.5.2 - v28.6.0

  • This is a major development update, focusing on under-the-hood improvements and bugfixes, code cleanup, and performance.
  • Changes/fixes:
  • Implemented String.prototype.trimStart and String.prototype.trimEnd (ES2019)
  • Implemented Array.prototype.flat and Array.prototype.flatMap (ES2019)
  • Implemented Symbol.prototype.description (ES2019)
  • Added support for gzip-compressed SVG-in-Opentype fonts.
  • Updated official branding.
  • Updated reader view components.
  • Added a preference to control the setting of cookies through meta header information (non-standard feature) and disabled by default.
  • Updated ES6 Atomics and re-enabled them.
  • Updated internationalization code to support updated time zones and the Japanese Reiwa era.
  • Updated NSS to a custom version to have better encryption strength for master passwords.
  • IMPORTANT: To use this strong encryption and re-key the password database with it, change your master password (can be changed to the same one you already had if desired, but you have to go through the change password process). Depending on your computer and the number of stored passwords, this encryption update may take some time, so please be patient. Please be aware that once re-keyed, the password store will be locked to the new encryption and will no longer be accessible with the master password in older versions of Pale Moon.
  • Restored "Release notes" in the help menu.
  • Rearchitectured the application/extension update code.
  • Added several performance improvements to DOM and the parser.
  • Improved JavaScript garbage collection of dead compartments.
  • Fixed a performance issue with painting on some pages.
  • Improved performance of some websites with complex event regions.
  • Fixed a potential performance issue in display lists on some pages.
  • Fixed a rendering bottleneck for the use of XRender when using a remote session.
  • Fixed graphical artifacts/flickering when using XRender on Intel or Intel-hybrid GPU setups.
  • Added a DiD fix for potential future issues with inlining array natives.
  • Fixed a potential UAF situation in the HTML5 parser (DiD)
  • Fixed an origin-clean bypass issue.
  • Changed the way permissions for predefined sites are loaded.
  • Reverted the 28.5.1 change to treat *.jnlp files as executables (CVE-2019-11696) after input from an Oracle representative. Java Web Start files are not executable and should not be treated any different than regular documents handled by external applications.
  • Removed SecurityUI telemetry.
  • Removed some other dead telemetry code.
  • Removed geo-specific selection of default search engines.
  • Deprecated the use of FUEL.
  • Removed the unused code for "enhanced tiles" in the new tab page.
  • Removed preference to brute-force e10s to on.
  • Removed Unboxed Array code.
  • Removed Unboxed Object code.
  • Fixed failure to print if a page contains a 0-sized element.
  • Fixed an issue with tab-modal dialogs being presented in the wrong order.
  • Fixed an issue with the tab bar remaining collapsed in customize mode if normally hidden.
  • Fixed an issue with Sync when choosing to overwrite data with synced data.
  • Fixed an issue with tab previews on the taskbar.
  • Fixed an issue with IntersectionObserver viewport accuracy.
  • Fixed Scroll bar orientation on Mac OS X.
  • Fixed an issue with anchor/link targets not re-using a named target.
  • Fixed a build issue with Gnu-CC on PPC64.
  • Fixed browser.link.open_newwindow functionality.



Changes for v28.5.0 - v28.5.2

  • Changes/fixes:
  • Fixed issues with image/texture allocation incorrectly being marked as insecure.
  • v28.5.1 (2019-06-04)
  • This is a security and bugfix update.
  • Changes/fixes:
  • Restored a global getBoolPref() function shortcut for extension compatibility with old extensions.
  • If you are currently using this global function, please change it to Services.prefs.getBoolPref()
  • Fixed an issue with the UI when the address bar was removed from the navigation toolbar.
  • Fixed an issue with scripting of the Help menu.
  • Fixed a crash resulting from non-standard manipulation of XML stylesheets by extensions.
  • Fixed Aero Peek (taskbar previews) on Windows.
  • Fixed browser.link.open_newwindow functionality.
  • Sorry, not yet! This will be in the next major update.
  • Removed the default handler for webcal since the site doesn't seem to be properly maintained.
  • Prevented some ways smart places queries could be abused for social engineering attacks.
  • Ported an upstream Skia fix.
  • Improved the origin-clean algorithm for canvases.
  • Improved the efficiency of certain types of memory allocations in the JavaScript compiler.
  • Changed the way the application update checker code is hooked up so it will not require a user to go idle before being activated.
  • This solves the primary issue with application updates not notifying users as promptly as they should; more improvements are slated for the next major release.
  • Applicable security issues fixed: CVE-2019-7317, CVE-2019-11701, CVE-2019-11698, CVE-2019-9817 (DiD), CVE-2019-11700, CVE-2019-11696, CVE-2019-11693, and several potentially exploitable crashes and memory safety hazards that do not have a CVE number assigned to them.



Changes for v28.4.1 - v28.5.0

  • Redesigned the about box.
  • Added "Check for updates" menu entries to the AppMenu and classic menu (since the About box redesign no longer has application update in it).
  • Restored the app.update.url.override pref for AUS testing/override.
  • Added "Loop" control to html5 video.
  • Fixed a crash with frames (e.g. when using Tile Tabs).
  • Fixed an issue with textarea placeholders (spec compliance).
  • Removed the Windows Maintenance Service one last time.
  • Improved http basic auth DoS heuristics.
  • Fixed an issue on big-endian machines (e.g. PPC64/linux).
  • Removed e10s code from widgets.
  • Preffed the various http "Accept" headers and aligned with the Fetch spec (except for image requests).
  • Aligned URLSearchParams with the spec.
  • Updated several site-specific UA overrides.
  • Fixed "Yet Another special case of a flex frame being the absolute containing block"™
  • Fixed border drawing when the tab bar is hidden.
  • Pref-controlled and disabled the use of unboxed plain objects in JavaScript's JIT compiler.
  • Improved handling of interrupted connections through proxies and pseudo-VPN extensions.
  • Removed contextual identity.
  • Updated the 7zip installer stub to a much more recent code version.
  • Fixed an issue with applying percentages to 0 in layout sizes.
  • Fixed an issue with calculating linear sums in JS JITed code.
  • Added default value feature to get*Pref() preference functions.
  • Fixed an issue that would occasionally overwrite the new tab custom URL.
  • Updated the SQLite library to 3.27.2
  • Killed the crashreporter toolkit files and exception handler hooks.
  • Fixed an issue with a missing border on the tab bar when on the bottom.
  • Fixed a crash with badly-formatted SVG files.
  • Showed the robots to the exit after squatting in the browser for decades.
  • JavaScript: Implemented TC39 toString() revision proposal.
  • Rearchitectured the JavaScript front-end parser to provide better and more logical parsing of JS code.
  • Removed support code and leftovers for unsupported SunOS, AIX, BEOS, HPUX and OS/2 operating systems.
  • Fixed a scrollbar arrow issue on OS X.
  • Removed all Firefox Accounts code.
  • Made the CSS parser more robust and aligned url() behavior with the CSS3 spec in case of bad input.
  • Fixed an issue with blocklist updates not actually dynamically applying due to a wrong URL.
  • Updated the embedded emoji font to the TweMoji v11.4.0 equivalent.
  • Fixed an issue with async/deferred scripts preventing page loads from completing.



Changes for v28.4.0 - v28.4.1

  • Fixed hover state arrows on some controls.
  • Fixed potential denial-of-service issues involving FTP (loading of subresources and spamming errors).
  • Disabled Microsoft Family Safety (Win 8.1) by default. This prevents security issues as a result of a local MitM setup.
  • Added several site-specific overrides (Firefox Send and polyfill.io) to work around website UA-sniffing isues.
  • Implemented the origin-clean algorithm for controlling access to image resources.
  • Cleaned up the helper application service code.
  • Ported applicable security fixes from Mozilla (CVE-2019-9791, CVE-2019-9792, CVE-2019-9796, CVE-2019-9801, CVE-2019-9793, CVE-2019-9794, CVE-2019-9808 and ZDI-CAN-8368).
  • Implemented several defense-in-depth measures (for CVE-2019-9790, CVE-2019-9797, CVE-2019-9804, and a JavaScript issue).
  • Fixed several memory safety hazards and crashes.
  • Binaries are now code-signed again (including the setup program for the installer).



Changes for v28.3.1 - v28.4.0

  • This is a major development, stability and security release.
  • Changes/fixes:
  • Removed more telemetry code from the platform.
  • Fixed implementation of the IntersectionObserver API to avoid crashes, and enabled it by default.
  • Switched to the new ffmpeg decode API to avoid dropping of frames.
  • Fixed a buffering issue in the WebP decoder that caused intermittent browser crashes.
  • Improved resource-efficiency for internal stopwatch timers.
  • Improved handling of incorrectly-encoded CTTS in media files, resolving some playback issues of videos.
  • Improved the Cycle Collector and Garbage Collector.
  • Improved fullscreen navigation bar handling in the situation it has focus when switching to full screen.
  • Aligned instanceof with the final ES6 spec.
  • Improved Windows DIB (bitmap) clipboard data handling.
  • Exposed TLS 1.3 cipher suite prefs in about:config in case people want to disable them individually.
  • Allowed empty string on the location.search setter to clear URL query parameters from JS.
  • Added a potential fix for external links not opening in the current window/tab (untested).
  • Enabled C++11 thread-safe statics in the entire application.
  • Updated several preferences for integration with the new add-ons site.
  • Security fixes:
  • Fixed a potential use-after-free in IndexedDB code. (DiD)
  • Improved proxy handling to avoid localhost getting proxied. (CVE-2018-18506)
  • Ported upstream Skia fixes. (CVE-2018-18356, CVE-2018-18335)
  • Fixed an additional Skia issue. (CVE-2019-5785)
  • Fixed several potentially-exploitable memory safety hazards and crashes. (DiD)
  • Fixed a possible data race when performing compacting GC.
  • DiD This means that the fix is "Defense-in-Depth": It is a fix that does not apply to a (potentially) actively exploitable vulnerability in Pale Moon, but prevents future vulnerabilities caused by the same code, e.g. when surrounding code changes, exposing the problem, or when new attack vectors are discovered



Changes for v28.3.0 - v28.3.1

  • This is a minor bugfix and stability release.
  • If you are using a language pack, please make sure you have the matching version for this browser version installed. Some strings were added for Captive Portal detection (see below) and outdated language packs will cause blank preference pages.
  • Changes/fixes:
  • Improved toolbar icon display for all DPIs on Windows.
  • Disabled the IntersectionObserver API by default while we work on resolving crashes caused by it.
  • Added isIntersecting to the IntersectionObserver API per specification.
  • Added an option to the preferences window to enable Captive Portal detection (Advanced -> General). If your network connection regularly encounters Captive Portals (e.g. using a laptop on the road or other WiFi connections that require login or agreement to terms) then enabling this detection may make your use of such networks more convenient.
  • For those worried about privacy: the detection service makes use of our own infrastructure and does not contact third parties like Apple or Google.



Changes for v28.2.2 - v28.3.0

  • This is a major development and bugfix release.
  • Changes/fixes:
  • Added AV1 support for MP4/MSE videos. Please note that this is a reference library implementation and the upstream decoding lib currently has poor performance for higher resolutions (720p+). This is disabled by default; use the about:config preference media.av1.enabled to enable this codec.
  • Changed the API used for video playback with FFmpeg 58+. This should solve performance issues with VPx.
  • Redesigned the main toolbar icons as SVG images to make them HiDPI compliant.
  • Fixed the sync notification (infobar) icon.
  • Fixed a potential cycle collector resource leak.
  • Added icons and controls to tabs to indicate if sound is playing the tab and if so, allowing the user to mute it with a click.
  • This is a native implementation of the API in use in Basilisk and performs the same function as the "expose noisy tabs" extension, although the extension may still be preferred by some for e.g. skinning capabilities. The feature may be disabled with browser.tabs.showAudioPlayingIcon.
  • Removed support for VR hardware.
  • Fixed out-of-bounds sizes for CSS calculation strings.
  • Removed the DirectShow component since it is no longer necessary.
  • Removed Firefox Accounts integration, phase 1:
  • Changed the Sync client to the one from Tycho.
  • Made Sync optional at build time.
  • Stopped trying to cater to addons.mozilla.org since they no longer offer anything useful to Pale Moon after the Great XUL Extension Purge™.
  • Added an option to process favicons for optimal sized display and removing animations. Enable this with browser.chrome.favicons.process
  • Fixed an incorrect preference reference in feed reader.
  • Fixed an issue with lazy frame construction on display:contents elements. This should solve e.g. the use of mathjax in comments on stackoverflow.
  • Media code improvements and cleanup (ongoing).
  • Updated the DropBox useragent override to solve login issues.
  • Fixed potential crashes due to shutdown observers in VTT and font lists. DiD
  • Enabled some mistakingly-disabled optimizations in the JS JIT compiler.
  • Fixed several potential crashes in JS. DiD
  • Fixed several potential crashes in WebCrypto. DiD
  • Fixed a potential crash in JS Range Analysis. DiD
  • Fixed a potential crash in the layout engine due to combo boxes. DiD
  • Fixed a potential shutdown crash in non-standard environments related to 2D Canvas. DiD
  • Fixed a potential overflow in the PNG writer. DiD
  • Fixed a potential double-free in the MAR signing utility. DiD
  • Fixed an issue where URLs could be extracted cross-origin (CVE-2018-18494).
  • Updated NSPR to v4.20.
  • Updated NSS to 3.41, providing (among other things) full compatibility with the final version of TLS 1.3 on websites.
  • Updated location.protocol to the latest spec.
  • Updated Intersection Observers to the latest spec and enabled them by default.
  • Updated the SQLite lib to 3.26.0.
  • Fixed errors about the login manager's recipeManager not being available (yet).
  • Switched status bar download arrow to SVG.
  • Fixed a crash in IntersectionObservers.
  • Fixed initialization of the Search service from browser code to avoid synchronous init.
  • Added logging of performance warnings to devtools consoles.
  • Fixed favicons in taskbar tab preview listings.
  • Blocked Comodo IS dll < version 6.3 to prevent startup crashes.
  • Fixed issues in the HTML form submit observer module.
  • Limited resolving depth of CSS variables to a sane maximum (fixes cras.sh issue).
  • Removed Mozilla's proprietary constructor on WebAudio's AudioContext, aligning it with the standard specification.
  • Exposed the previously hidden preference in about:config for page thumbnail generation (some people prefer this for local privacy).
  • Aligned Element.ScrollIntoView with the DOM specification. This improves, among other things, compatibility with the React framework.



Changes for v28.2.1 - v28.2.2

  • Changed the about:feeds icon for external applications to a generic icon, since that kind of access to executables is no longer allowed for security reasons.
  • Fixed issues with copying/pasting bookmarks in the Library View.
  • Fixed a crash occurring when using HTTP pipelining over some (broken) proxies.
  • Fixed several issues with animated WebP display (animations stopping, corrupted frames on lossy images, etc.)
  • Fixed an issue with the display of truncated GIF images.
  • Fixed an issue with deleting recent history not working properly.
  • Fixed incorrect duplicate compatibility mode preferences in about:config.



Changes for v28.2.0 - v28.2.1

  • This is a bugfix release to address critical usability issues with the bookmarks/history window.



Changes for v28.1.0 - v28.2.0

  • Changes/fixes:
  • Fixed a major performance issue with web workers.
  • Fixed a rare crash on local networks with HTTP basic auth and unsupported cipher suites.
  • Fixed a performance/timer issue when leaving the browser idle.
  • Fixed an issue causing an empty dialog when launching executable files from the browser.
  • Fixed an issue preventing making entries to disallow sites to store data for off-line use.
  • Removed code to prevent extensions with binary components.
  • Fixed an issue with common dialogs being sized incorrectly for their content.
  • Fixed an issue with event handling on the tab bar that would cause frustrating behavior when trying to open/close tabs in rapid succession.
  • Switched default behavior for scrolling when a context or pop-up menu is open to allow scrolling, like in v27. This also affects scrolling in very long menus, e.g. bookmarks.
  • Added experimental Asynchronous Panning and Zooming (APZ) for desktop use.
  • Re-enabled the use and parsing of ICC v4 color profiles.
  • Removed telemetry code from the caching subsystem.
  • Improved full-screen detection for suppressing status messages.
  • Made all arguments passed to Init*Event() optional except the first for parity with other browsers.
  • Cleaned up some internal installer code.
  • Fixed making caret width configurable when dealing with CJK characters (regression).
  • Fixed drawing of table borders consistently when zooming a page (regression).
  • Exposed the "Save download location per site" pref in about:config.
  • Improved media handling (ongoing).
  • Added experimental support for AV1 in WebM videos (disabled by default).
  • Note: this is for WebM only for now, so MP4 and MSE AV1 streams (e.g. YouTube) will not (yet) play.
  • Removed the (defunct and incomplete) in-browser translation code.
  • Fixed an issue with CSS Grid layouts unnecessarily shrinking element blocks.
  • Fixed notification settings menu entry (opes about:permissions with relevant data now).
  • Fixed the launching of an undesirable background content process for capturing page thumbnails.
  • Fixed a focus issue in the bookmark properties dialog.
  • Changed the setting for reporting CSS errors to the console to false by default, to prevent unnecessary performance loss for recording this data.
  • Added control mechanisms for Opportunistic Encryption (both for alternative services and upgrade-insecure-requests) in preferences, and disabled this by default due to potential security and privacy issues with this transitional technology.
  • Updated the default reported Firefox version in Firefox Compatibility Mode to prevent "too old Firefox" complaints on websites.
  • Updated libnestegg, ffvpx, reader view components and several other modules from upstream.
  • Implemented security fixes for CVE-2018-12381, CVE-2017-7797, a better fix for CVE-2018-12386 (DiD), CVE-2018-12401 (DiD), CVE-2018-12398, CVE-2018-12392, several Skia bugs, and several crashes and memory safety hazards that do not have a CVE number.



Changes for v28.0.1 - v28.1.0

  • Changes/fixes:
  • Updated NSS to 3.38, removed TLS 1.3 draft version check since it's considered final.
  • Reinstated RC4 as an optional encryption cypher for non-standard environments (e.g. old routing/peripheral networked hardware on LAN). RC4 and 3DES are marked weak and disabled, and will never be used in the first handshake with a site, only as last-ditch fallback when specifically enabled (meaning they won't show up on ssllabs' test, for example).
  • Removed Telemetry accumulation calls, automatic timers and stopwatches. This removes a very noticeable performance sink for all operations on all platforms.
  • Fixed many occurrences of discouraged types of memory access for primarily GCC 8 compatibility. This improves overall code security as a defense-in-depth measure.
  • Re-implemented the pref-controlled custom background color for standalone images.
  • Updated session history handling for internal pages. about:logopage is no longer stored in history, and you can choose to store the QuickDial page in history by setting the pref browser.newtabpage.add_to_session_history to true. This is disabled by default (meaning you can't use the "Back" button to go back to the QuickDial page) as a defense-in-depth security measure.
  • Added ui.menu.allow_content_scroll to control whether content can be scrolled if a context menu is open.
  • Fixed incorrect code removal in ipc.
  • Removed support for TLS session caches in TLSServerSocket.
  • Added support for local-ref as SVG xlink:href values.
  • Changed the find bar to be a browser-global toolbar again (like in Pale Moon 27) instead of per-tab. For people who prefer search terms to be saved on a per-tab basis (like with the per-tab findbar previously), this is possible by setting findbar.termPerTab to true. This resolves a number of issues, including styling with lightweight themes not applying to the find bar, and status pop-ups overlapping the find bar.
  • Ported all relevant security fixes from Mozilla's Gecko/62 release, including CVE-2018-12377 and CVE-2018-12379.
  • Restored part of the searchplugin API that was removed by Mozilla, so extensions can provide and save edits to installed search engines.
  • Improved the speed of restoring browsing sessions upon startup.
  • Fixed the "Restore previous session" button sometimes being missing from about:home, while a restorable session would be present.
  • Fixed tab previews in the Windows taskbar (if enabled).
  • Fixed the setting of the new tab page being "My Home Page" so it'll pick up subsequent changes to the home page URL automatically.
  • Removed the Firefox Accounts migrator from Sync.
  • Fixed an issue with the enabled state of number controls if appearances changed.
  • Stopped building ffvpx on 32-bit platforms (except windows) to use the (faster) system-installed lib instead.
  • Re-added a horizontal scroll action option for mouse wheel. (regression)
  • Fixed handling of content language if the locale is changed.
  • Fixed document navigation with the F6 key.
  • Fixed toolbar styling in toolkit themes.
  • Fixed viewing the source of a selection.



Changes for v28.0.0.1 - v28.0.1

  • This is a bugfix point release to address serious performance bottlenecks and general run-time issues (UI slowness, crashes, hangs) with the browser. Once again this impacted 32-bit operating systems more severely than 64-bit ones due to its more limited address space that would get flooded with bogus data.
  • Changes/fixes:
  • Backed out a Mozilla upstream patch causing issues with IPC and texture allocation for the compositor.
  • Backed out a Mozilla upstream patch causing issues with Javascript memory buffer allocation.



Changes for v28.0.0 - v28.0.0.1

  • This is a Windows-only update to address some stability/performance issues that have popped up with the new milestone release on especially 32-bit systems.
  • The cause seems to be a compiler bug in Visual Studio 2015 with certain optimizations. Although 64-bit does not seem to be directly affected, we are still applying more cautious optimizations there too from this point forward until we can figure out exactly what the cause is and which (more aggressive) optimizations are safe to use.



Changes for v27.9.4 - v28.0.0

  • We are now building on the Unified XUL Platform which has been forked off from Mozilla's mozilla-central at a point before Rust and Quantum to continue focus on the XUL interface language and traditional browser extensions. Many thousands of things have changed since the v27 (AKA "Tycho") versions, which can't possibly all be listed here. Instead, the most pertinent improvements in this new release are highlighted here:
  • SpiderMonkey update: The JavaScript engine has received a major upgrade and now supports all landmark features from the ECMAScript standards as carried by mainstream browsers. This should put an end to the increasing JavaScript issues we've seen due to web frameworks not being browser-agnostic in that respect, or the browser not supporting what websites expect.
  • Goanna update: The layout and rendering engine (Goanna) has been updated to its 4th generation (version 4.*) which brings with it improved compatibility with "trendy" CSS styling techniques that build on a few very specific features (e.g. CSS Grid). Goanna continues to build on tried-and-tested software fallbacks in case hardware acceleration can't be used, and Linux remote desktop users can continue to leverage xrender for speedy remote screen updates in Pale Moon.
  • DOM enhancements: Enhancements in the Document Object Model provides websites with updated APIs to perform their tasks. (e.g. Fetch, WebAnimations, WebCrypto, HTML Input Element Extensions, etc.)
  • Media enhancements: Our media back-end update is, for all intents and purposes, complete. MSE media streaming (for MP4) should be compatible with all major players on the market now. MSE for WebM is still disabled by default due to some compatibility issues that need to be examined, but you may enable this in preferences to e.g. allow 4k video playback on some sites that only offer UHD in WebM format. We now also support playback of FLAC-encoded audio.
  • New: WebGL2 support! Pale Moon now supports the WebGL2 standard for enhanced graphical experiences in 2D and 3D.
  • Devtools have been given a refresh. Just in case you thought they weren't extensive enough yet, some new categories have been added to inspect and manipulate all aspects of web content.
  • Updates to the login manager: Login credentials can now be stored specifically with or without a user name, and selected individually. This is a behavior change from previous, and clicking a password field can now pop-up a selection list of user names for which passwords are stored (if multiple credentials are saved). Clicking the appropriate login name (or date-stamped version if no name is present) will fill in the accompanying password.
  • What might be more important for people worrying about upgrading to this milestone is what hasn't changed.
  • We continue to support NPAPI plugins.
  • We continue to support complete themes as well as lightweight themes.
  • We continue to offer a fully customizable interface like before. Australis (like seen in Basilisk) is not used.
  • We continue to support XUL overlay, bootstrapped and (deprecated) Jetpack extensions (collectively called "legacy extensions" by Mozilla).
  • We do not include any DRM in the browser (people needing this can use e.g. the Silverlight plugin to play protected content), even though the platform we build on supports it.



Changes for v27.9.3 - v27.9.4

  • This is a security and usability update.
  • Changes/fixes:
  • Updated the useragent for addons.mozilla.org to work around their "Only with Firefox" discrimination preventing users from downloading themes, old versions of extensions, and other files with Pale Moon.
  • Restricted web access to the moz-icon:// scheme that could potentially be abused to infringe the user's privacy.
  • Prevented various location-based threats. DiD
  • Fixed a potential vulnerability with plugins being redirected to different origins (CVE-2018-12364).
  • Improved the security check for launching executable files (by association) on Windows from the browser. For users who have (most likely accidentally) granted a system-wide waiver for opening these kinds of files without being prompted, this permission has been reset.
  • Fixed an issue with invalid qcms transforms (CVE-2018-12366).
  • Fixed a buffer overflow using the computed size of canvas elements (CVE-2018-12359).
  • Fixed a use-after-free when using focus() (CVE-2018-12360).
  • Added some sanity checks on nsMozIconURI. DiD
  • Fixed an issue in the case the preferences file in the profile would not be writable (e.g. temporary permission issues due to backup, virus scanning or similar external processes).
  • DiD This means that the fix is "Defense-in-Depth": It is a fix that does not apply to a (potentially) actively exploitable vulnerability in Pale Moon, but prevents future vulnerabilities caused by the same code, e.g. when surrounding code changes, exposing the problem, or when new attack vectors are discovered.



Changes for v27.9.1 - v27.9.2

  • We changed the language strings for softblocked items so people will cry less when we do our job.
  • (CVE-2018-5174) Prevent potential SmartScreen bypass on Windows 10.
  • (CVE-2018-5173) Fixed an issue in the Downloads panel improperly rendering some Unicode characters, allowing for the file name to be spoofed. This could be used to obscure the file extension of potentially executable files from user view in the panel.
  • (CVE-2018-5177) Fixed a vulnerability in the XSLT component leading to a buffer overflow and crash if it occurs.
  • (CVE-2018-5159) Fixed an integer overflow vulnerability in the Skia library resulting in possible out-of-bounds writes.
  • (CVE-2018-5154) Fixed a use-after-free vulnerability while enumerating attributes during SVG animations with clip paths.
  • (CVE-2018-5178) Fixed a buffer overflow during UTF8 to Unicode string conversion within JavaScript with extremely large amounts of data. This vulnerability requires the use of a malicious or vulnerable extension in order to occur.
  • Fixed several stability issues (crashes) and memory safety hazards.



Changes for v27.9.0 - v27.9.1

  • This is a maintenance release.
  • Changes/fixes:
  • Removed the unused/incomplete places protocol handler.
  • Worked around an issue with MSE media without a Track ID. This should help with the playability of some live streams.
  • Ported across jemalloc improvements from UXP.
  • Ported across cairo mutex improvements from UXP.
  • Added support for FFmpeg 4.0/libavcodec 58.
  • Added a fix for Windows 10's "isAlpha()" not being what one would expect in v1803.



Changes for v27.8.3 - v27.9.0

  • This is the last major development update for the v27 milestone (codenamed "Tycho").
  • After this, we will be focusing our efforts for new features entirely on UXP and the new v28 milestone building on it. We will continue to support v27.9 with security and stability updates for a while, but no major new features will be added from this point forward.
  • Changes/fixes:
  • Fixed a number of spec compliance issues in our media subsystem.
  • Added a trailing slash to referrers when policy is set to fix some web compatibility issues.
  • Fixed the property order in Object.getOwnPropertyNames(string) and others for web compatibility.
  • Updated RegExp(RegExp object, flags) to the ES6 standard specification.
  • Changed the embedded font from the no longer free EmojiOne to the open-licensed Twemoji (with additional fixes). This also further extends unicode support to Unicode 10 emoji(s). Please note that as a result, color emoji(s) will look different than before.
  • Adjusted some things in our memory allocator code to provide, among other things, better allocation alignment on Windows.
  • Made the attempt to migrate people from the old sync server domain name to the current one more aggressive. We will be retiring the old pmsync.palemoon.net Sync server address shortly to remove the need for us to maintain a security certificate for it; this preference migration should automatically put everyone on the correct server address (pmsync.palemoon.org) when upgrading.
  • Made reading of the sessionstore synchronous, to speed up startup and prevent the homepage from being loaded when restoring a session.
  • Added a fix to switch to the correct window/tab when a web notification is clicked.
  • Changed the placeholder text to not include "Search" when all search functions from the address bar are disabled.
  • Enabled the use of Skia for canvas on Linux and OSX.
  • Worked around a potential cause for some non-standard bitmapped fonts ending up with incorrect line heights (I'm looking at you, Noto fonts!).
  • Added a workaround for incorrectly-encoded JPEG-XR images with planar alpha. Ultimately, the jxrlib reference implementation should be fixed to encode according to spec.
  • Aligned XCTO:nosniff allowed script MIME types with the updated spec.
  • Improved the logic for storing vector images in the surface cache.
  • Fixed character set handling for XMLHttpRequests.



Changes for v27.8.2 - v27.8.3

  • Backed out some responsive layout code that caused intermittent but not uncommon crashes in the browser depending on window sizes and page content.



Changes for v27.8.0 - v27.8.2

  • This is a security update.
  • Changes/fixes:
  • Privacy fix: prevented update checks for the default theme.
  • Added a user-agent override for Dropbox to improve compatibility with their service.
  • Fixed an issue with mouseover handling related to (CVE-2018-5103). DiD
  • Disabled the Mac OSX Nano allocator. DiD
  • Fixed (CVE-2018-5129) OOB Write.
  • Updated the lz4 library to 1.8.0 to solve potential issues. DiD
  • Fixed (CVE-2018-5137) Path traversal on chrome:// URLs
  • Fixed several memory safety an synchronicity hazards.
  • DiD This means that the fix is "Defense-in-Depth": It is a fix that does not apply to a (potentially) actively exploitable vulnerability in Pale Moon, but prevents future vulnerabilities caused by the same code, e.g. when surrounding code changes, exposing the problem, or when new attack vectors are discovered.
  • 27.8.1 (2018-03-06)
  • This is a small update to address some breaking issues.
  • Changes/fixes:
  • Backed out the NSPR/NSS update from 27.8.0 for causing crashes, general operational instability and handshake issues.
  • Disabled TLS 1.3 draft support by default, because with the NSS backout we only support an older draft right now that is no longer current and may cause connectivity issues. You can manually re-enable it at your own risk in about:config by setting security.tls.version.max to 4.



Changes for v27.7.2 - v27.8.0

  • Added support for emojis on Windows systems that have relatively poor support for them with standard font sets by including our own font (EmojiOne based for now).
  • Added a setting in preferences to select the use of tab previews with Ctrl+Tab.
  • Added Eyedropper menu entry to the AppMenu.
  • Added a preference to control whether the text cursor (caret) should be thicker when dealing with CJK characters or not (default = yes).
  • Added URL fix-ups for schemes (mis-typed "ttp://" etc.).
  • Added support for ES6 "Symbol species".
  • Updated our TLS 1.3 support to the latest (probably final) draft.
  • Fixed gap inconsistency in the tabstrip.
  • Fixed a number of browser crashes.
  • Fixed a crash with the exponentiation operator "**"
  • Set the performance timer granularity to 1 ms.
  • Updated the kiss-fft library to our forked 1.4.0 version.
  • Disabled a potentially problematic optimization on Win 8+ with high contrast themes in use.
  • Removed the notification bar when in full screen to prevent unwanted visible screen elements.
  • Removed unmaintained and insecure WebRTC code - building with WebRTC enabled is no longer an option.
  • Removed redundant checks for "Vista or later" since that is all we support.
  • Added display of the http status to raw request displays.
  • Added a workaround for cloned videos not retaining their muted state.
  • Added a temporary workaround to avoid crashes on trackless media.
  • Removed some superfluous ellipses from menu labels.
  • Fixed undesired shrinking of line heights as a result of setting minimum font size in preferences.
  • Fixed some issues with setting the new tab preference (regression).



Changes for v27.7.1 - v27.7.2

  • Changed the X-Content-Type-Options: nosniff behavior to only check "success" class server responses, for web compatibility reasons.
  • Changed the performance timer resolution once more to a granularity of 1 ms, after evaluating more potential ways of abusing Spectre.
  • This takes the most cautious approach possible lacking more information (because apparently NDAs have been signed over this between mainstream players), follows Safari's lead, and should make it not just infeasible but downright impossible to use these timers for nefarious purposes in this context.
  • Improved the debug-only startup cache wrapper to prevent a rare crash.
  • Fixed a crash in the XML parser.
  • Added a check for integer overflow in AesTask::DoCrypto() (CVE-2018-5122) DiD
  • Fixed a potential race condition in the browser cache.
  • Fixed a crash in HTML media elements (CVE-2018-5102)
  • Fixed a crash in XHR using workers.
  • Fixed a crash with some uncommon FTP operations.
  • Fixed a potential race condition in the JAR library.



Changes for v27.6.2 - v27.7.1

  • Changes/fixes:
  • Added support for Array.prototype[@@unscopables].
  • Unfortunately, the addition of Javascript's ES6 Unscopables in 27.7.0 was incomplete, which caused a number of websites (e.g. Chase on-line banking, some Russian government sites) to display blank or not complete loading after updating to that version of the browser. This update should fix the problem by adding the missing part of the feature.
  • Fixed an issue with the default theme causing tab borders to be drawn too thick at higher settings for visual element scaling (125%/150%) in Windows.
  • 27.7.0 (2018-01-15)
  • This is a stability and bugfix release, as well as adding a number of new features to further improve web compatibility.
  • Changes/fixes:
  • Reorganized access to preferences (moved to the Tools menu on Linux, and renamed from "Options" to "Preferences" on Windows).
  • Renamed "Restart with add-ons disabled" to "Restart in Safe Mode" to better reflect what it does.
  • Worked around an issue with some improperly-encoded PNG files not decoding after our libpng update.
  • Fixed an issue on Mac builds not properly populating the application menu.
  • Added "My home page" as an option for new tabs.
  • Added an option to disable the 4th and 5th mouse buttons (Windows).
  • (mouse.button4.enabled and mouse.button5.enabled, respectively)
  • Improved the resetting of non-default profiles.
  • Fixed an issue with details/summary having the incorrect height if floated, breaking layouts.
  • Made several more improvements to the details/summary tags to align them with the current spec and fix some additional bugs.
  • Implemented support for flex/columnset contents inside buttons to align its behavior with other browsers.
  • (this should fix layout issues with Twitch's new web interface)
  • Fixed an issue where CSS clone operations would draw a border.
  • Changed the way fractional border widths are rounded to provide more natural behavior.
  • Fixed an issue where number inputs would incorrectly be flagged as read-only.
  • Added assets for tile display in the Windows start panel.
  • Finished sync infra swapover by adding a one-time pref migration for server used.
  • Improved WebAudio API: Return the connected audio node from AudioNode.connect()
  • Added support for a default playback start position in media elements.
  • Fixed an assert in cubeb-alsa code (Linux).
  • Added support for media cue-change events (e.g. subtitles).
  • Updated SQLite to 3.21.0.
  • Fixed a crash when trying to use the platform embedded.
  • Fixed devtools (gcli) screenshots on vertical-text pages.
  • Fixed devtools copy as cURL for POST requests.
  • Improved the HTML editor component (several bugfixes).
  • Added support for ES7's exponentiation a ** b operator.
  • Fixed an issue with arrow functions incorrectly creating an 'arguments' binding.
  • Added Javascript's ES6 "unscopables".
  • Security/privacy fixes:
  • Disabled automatic filling in of log-in details by default to prevent potential risks of credentials being abused (e.g. for tracking) or stolen.
  • Added a preference (in the category security) to easily enable or disable automatic filling in of log-in data.
  • Removed the sending of referrers when opening a link in a new private window.
  • Added an option to disable the page visibility Web API (dom.visibilityAPI.enabled), allowing users to prevent pages from knowing whether they are being actively displayed to the user or not.
  • Removed the "ask every time" policy for cookies. For granular control, please use any of the excellent available extensions to regulate cookie use on a per-site or per-url basis.
  • Added support for X-Content-Type-Options: nosniff (for scripts).
  • Changed the resolution of performance timers to a level where any future potential abuse for hardware-timing attacks becomes impractical.



Changes for v27.6.1 - v27.6.2

  • This is a security and minor bugfix update to the browser.
  • This will most likely be the last update for 2017, with the holidays not far away.
  • Changes/fixes:
  • Implemented the concept of so-called "cookie-averse document objects" which is a security&privacy measure that blocks certain web content from setting cookies. This mitigates cookie-injection, which might help against "hidden" cookie tracking.
  • Mitigated some domain name spoofing through IDN by using dotless-i and dotless-j with accents. (CVE-2017-7832)
  • Pale Moon will display these kinds of spoofed domains in punycode now in the actual address bar.
  • Please note that the identity panel will always be able to help you on secure sites when IDNs are in use to notice potential spoofing, as opposed to relying on detection algorithms in the URL itself. As such, some other issues like CVE-2017-7833 are already mitigated by us.
  • Fixed an issue with mixed-content blocking. (CVE-2017-7835)
  • Added an extra check for the correct signature data type on certificates.
  • Added missing sanitization in exporting bookmarks to HTML. (CVE-2017-7840)
  • Fixed several crashes and memory safety hazards.
  • Fixed the Linux load throbber image to be properly encoded, to prevent flickering.
  • Removed the shortcut key combination for restarting the browser to avoid issues with people using certain keyboard layouts hitting the combination and unintentionally triggering a browser restart.



Changes for v27.6.0 - v27.6.1

  • Fixed a regression with new windows (opening two windows from the command-line or file association, focus issues on new windows, not loading the home page in a new window, etc.)
  • Aligned XHR with the currect spec to allow withCredentials.
  • Fixed an input element focus issue within handlers.
  • Fixed the processing of all-padding HTTP/2 frames to prevent rare HTTP/2 hangups.
  • Updated CitiBank override to work around their login issues.
  • Updated Netflix override to a community-supplied one that seems to satisfy their arbitrary restrictions better.



Changes for v27.5.1 - v27.6.0

  • Changes/fixes:
  • Dropped support for Direct2D 1.0 to avoid font rendering issues. Windows installations not capable of using Direct2D 1.1 will now fall back to software rendering. As a result, fonts may look different from this version onwards if you are on Windows Vista or Windows 7. Users on Windows 7 affected by this should install the Platform Update to re-enable Direct2D.
  • Updated the Brotli decoder library, and enabled support for Brotli HTTP content-encoding by default.
  • Added notifications to inform users about WebExtensions not being supported if they try to install them (as opposed to "extension is corrupt")
  • Added a number of DOM childNode convenience functions. This should fix some lazy-loading frameworks.
  • (enjoy your LOLcats again!)
  • Changed automatic updates over to the new infrastructure.
  • Added extra proxy settings in Options, covering DNS lookups through SOCKS v5 and automatic proxy authentication with known credentials.
  • Added a selectable fallback character encoding of UTF-8 and fallback to UTF-8 as a last effort. (Issue #1423)
  • Improved timing of canplay and canplaythrough firing to work around a potential race condition locking up queued video playback.
  • Improved upmixing of mono sound for multi-channel setups.
  • Fixed a parallelization issue with the KISS-FFT library causing CPU-deadlocked threads (Issue #1425)
  • Fixed "Remove from history" function from the downloads panel.
  • Forced focus on the address bar in new windows if the content is a blank/empty document.
  • Fixed the dropmarker in the address bar to allow the suggestions to be closed with a click.
  • Further cleaned up the status bar code.
  • Disabled window.showModalDialog; it's been removed from the spec 2 years ago and has potential abuse issues (modal dialogs block the UI)
  • Fixed image decoder calls to make sure the image load event doesn't fire prematurely.
  • Updated LibPNG to 1.6.28, and enabled faster SSE2 decoding.
  • Updated WOFF2 code from upstream.
  • Updated the zlib compression library.
  • Made general improvements to internal code structure and spec adherence.
  • Fixed an issue with certain command-line parameters being used.
  • Updated the default theme to improve consistency and contrast of toolbar and download buttons.
  • Increased the default duration of notification pop-ups and made them configurable.
  • Improved handling of audio-visual media (ongoing).
  • Fixed an issue in CSS where elements would sometimes reflow to the next line even with sufficient visual space.
  • Aligned the implementation of for(let x=y;;) loops with the final ES6 specification.
  • Fixed the selection system inside of a nested contenteditable element being broken.
  • Fixed Windows 10 detection for blocklisting graphics drivers.
  • Enabled pasting of clipboard data in documents without an editor element to improve web compatibility.
  • Fixed the uninstallation routine of restartless add-ons.
  • Fixed the handling of unimplemented functions in the console API.
  • Updated the Facebook user-agent to enable otherwise vendor-restricted functionality.
  • Updated the SVG scaling cache limit to be more lenient for larger SVG images at a small performance trade-off, working around some sites' design issues.
  • Security/privacy fixes:
  • Added an option to clear Site Connectivity Data (delete history).
  • Removed stale entries from the HSTS preload list, and improved generation/processing of it.
  • Removed undesired certificate issuer organization to common name fallback (if issuer org is empty).
  • Added pretty-printing for ECDSA-SHA224, 256, 384 and 512 hashed certificate signatures.
  • Worked around some more issues with broken Apple fonts.



Changes for v27.5.0 - v27.5.1

  • Changes/fixes:
  • Changed the default Windows 10 styling when no accent color is applied to black-on-white.
  • Changed the theme styling on Windows 10 when the system window frame is used (menu bar enabled) to use the window manager background directly, preventing visual lag updating the window color when it changes.
  • Updated user agent overrides for DropBox, YouTube and Yahoo to work around user agent sniffing issues.
  • Fixed a crash in the media subsystem.
  • Fixed a regression where video playback hardware acceleration was disabled incorrectly on some systems.
  • Security fixes:
  • Updated the hyphenation library to the latest upstream code to fix a security issue.
  • Updated NSPR to 4.16-RTM with a patch to un-bust building on win64.
  • Updated NSS to 3.32.1-RTM.
  • Worked around some more issues with Mac fonts (CVE-2017-7825).
  • Fixed a potential rooting hazard in NPAPI plugin code. DiD
  • Fixed a potential reference issue in JavaScript arrays. DiD



Changes for v27.4.2 - v27.5.0

  • Changes/fixes:
  • User interface:
  • Added a menu option to restart the browser.
  • Added Windows-specific CSS parameters and queries for the use of the system accent color. Added are parameters -moz-win-accentcolor and -moz-win-accentcolortext, and the media query -moz-win-accentcolor-applies to know if Windows is actively using an accent color.
  • Changed Windows' browser CSS sheet ot use variables instead of hard-coding colors, simplifying its style and making it more flexible. Further cleaned up the Windows 10 specific browser style.
  • Changed the theme on Windows 10 to use the new accent colors and improve O.S. consistency.
  • Fixed some general inconsistencies in the Windows theme on all Windows operating systems.
  • Updated Windows widgets to be able to pick up Windows 10 accent colors dynamically and have the browser 's look and feel respond accordingly, even with automatic color changes based on desktop wallpaper.
  • Removed the experimental FF4 prerelease status-in-addressbar feature because the already-crowded address bar needs a break. This should solve some extension interop issues, theme issues and domain highlighting issues people have reported.
  • Cleaned up some dead code for the plugin updater that no longer exists.
  • Fixed a text direction issue in preferences.
  • Fixed an issue with disabled context menu entries after using Customize...
  • Reorganized and cleaned up the status preferences.
  • Media:
  • MSE Media updates (ongoing). We are focusing on improving MP4 handling.
  • Improved MP3 metadata parsing (e.g. incorrect duration with embedded album cover)
  • Fixed a number of searching issues in MP3 files
  • Fixed a few crashes.
  • Fixed an issue with automatically exporting bookmarks to HTML on shutdown.
  • Fixed a regression re: domains allowed to/blocked from installing add-ons.
  • Fixed several internal errors thrown in the front-end.
  • Fixed several minor issues in the devtools.
  • Added a fix to prevent the home page from being loaded (and subsequently overridden) when restoring a session.
  • Added an option to control add-on blocklist behavior (Options -> Security)
  • Added DOM function isSameNode().
  • Added DOM onvisibilitychange event.
  • Added document.scrollingelement (CSSOM).
  • Added a basic implementation of Object.values and Object.entries enumerator functions (ECMA2017 draft).
  • Added "Open in new private window" to bookmarks, feeds and history entries.
  • Added HTTP request method OPTIONS.
  • Added an option to exit to a no-content page after encountering a network or security error.
  • This is controlled with the preference browser.escape_to_blank -- when set to true, "Get me out of here" buttons will load a blank page instead of the browser's home page.
  • Added experimental Brotli accept-encoding (alternative to gzip/deflate compressed http data transfer). Disabled by default for now because it causes issues.
  • Improved the handling of several CSS selectors.
  • Changed session storage to remember form data for https sites by default.
  • Added (yet another) trap prevention method to onbeforeunload events.
  • Fixed privacy preferences not correctly resetting all options when choosing "Remember History"
  • Fixed not being able to deselect loading bookmarks in the sidebar.
  • Limited the display of user names and hosts in the http auth dialog to sane lengths, preventing over-sizing issues.
  • Fixed a number of potential crash points.
  • Improved the security of the Windows dll loader module.
  • Reinstated "Open all in tabs" option on folders of live bookmarks (feeds).
  • Made URL matching more liberal in selected text to make it easier to open stated addresses.
  • Fixed an issue with Graphite font rendering where automatic font collision fixing didn't always work.
  • Color Management for images is now disabled by default on Linux, due to many distributions not having a streamlined setup with sane default ICC profiles, which makes images look worse when color management is enabled.
  • Tightened the update security check to prevent acceptance of update manifests that have been intercepted/replaced through https MitM attacks.
  • Please be aware that https-filtering antivirus may interfere with future application updates as a result.
  • Updated the ANGLE library to broaden WebGL support and reduce the potential of crashes (due to junk being sent to the video driver).
  • Added content-sniffing for WebP images (working around CloudFront's incorrect content-type headers).
  • Fixed a problem with some H.264 media not playing (SPS NAL).
  • Improved timer efficiency (switch back to lower precision when high precision is no longer needed, reducing CPU/power consumption).
  • Improved context search on selected text/links.
  • Updated address bar handling with Alt or Shift modifiers, so that "switch to tab" with a modifier can open copies of already-opened sites.
  • Added a fix on Linux for starting the browser from Enlightenment.
  • Privacy fix: Pale Moon will now clear QuotaManager storage (asm.js cache/IndexedDB data) as part of clearing Offline Website Data.



Changes for v27.4.1 - v27.4.2

  • Changes/fixes:
  • Fixed a number of crashes.
  • Enabled the opt-in debugging feature to log SSL keys to a file in all builds.
  • Added a fix for TLS 1.3 handshakes causing a browser hangup.
  • Handshakes should be considerably faster now and no longer stall in the wrong circumstances.
  • Security fixes:
  • Updated NSPR to 4.15.
  • Updated NSS to 3.31.1.
  • Fixed a DoS issue using overly long Username in URL scheme (CVE-2017-7783)
  • Fixed an issue where (cross domain) iframes could break scope (CVE-2017-7787)
  • Fixed an issue in WindowsDllDetourPatcher (CVE-2017-7804)
  • Fixed an issue with elliptic curve addition in mixed Jacobian-affine coordinates (CVE-2017-7781)
  • Fixed a UAF in nsImageLoadingContent (CVE-2017-7784)
  • Fixed a UAF in WebSockets (CVE-2017-7800)
  • Fixed a heap-UAF in RelocateARIAOwnedIfNeeded (CVE-2017-7809) DiD (accessibility is disabled)
  • DiD This means that the fix is "Defense-in-Depth": It is a fix that does not apply to a (potentially) actively exploitable vulnerability in Pale Moon, but prevents future vulnerabilities caused by the same code when surrounding code changes, exposing the problem.



Changes for v27.4.0 - v27.4.1

  • Fixed an issue where media playback would not use hardware acceleration properly when using MSE.
  • This would cause high CPU usage and/or choppy playback for HD video on e.g. YouTube.
  • Fixed ES6 iterator chains to be spec-compliant.
  • Fixed ES6 vector append calls and some related memory leaks.
  • Added a workaround to reduce the likelihood of a potential rare (timing-critical) crash.



Changes for v27.3.0 - v27.4.0

  • This is a major update to straighten out most of the media streaming issues, as well as adding the necessary enhancements, bugfixes and security fixes to the browser.
  • Changes/fixes:
  • Completely re-worked the Media Source Extensions code to make it spec compliant, and asynchronous as per specification for MSE with MP4. This should fix playback problems on YouTube, Twitch, Vimeo and other sites that previously had some issues. A massive thank you to Travis for his tireless work on making this happen!
  • Please note that MSE+WebM (disabled by default) is not using this new code yet (planned for the next release), and as such there is a temporary set of things to keep in mind if you don't use default settings:
  • If you have previously enabled MSE+WebM, this setting will be reset when you update to avoid conflicting settings with the updated MSE code.
  • We've added an extra setting in Options to disable the updated MSE code (asynchronous use) in case you need to use WebM or are otherwise having issues with the updated code (please let us know in that case).
  • Once again, the MSE+WebM and Asynchronous MSE use are currently mutually exclusive. You can have one or the other, not both, until we sort out the code for WebM. To enable MSE+WebM you will first have to disable Asynchronouse MSE in settings (otherwise the WebM setting will be greyed out and disabled).
  • Added a control in options/preferences for HSTS and HPKP usage.
  • Changed HTML bookmark exports to write CRLF line endings to the file on Windows.
  • Leveraged multi-core rendering for libVPX (VP8/VP9 WebM decoding).
  • Fixed some issues accessing DeviantArt (useragent-sniffing).
  • Aligned CSS text-align with the spec.
  • Added a recovery module for browser initialization issues (e.g. when using a wrong language pack).
  • Fixed spurious console errors for XHR requests with certain http response codes.
  • Enabled v-sync aligned refresh for a smoother scrolling experience.
  • Removed support for CSS XP-theme media queries.
  • Improved console error reporting.
  • Fixed resetting toolbars and controls from the safe mode dialog.
  • Fixed bookmark recovery option from the safe mode dialog.
  • Fixed innerText getters for display:none elements.
  • Fixed a GL buffer crash that might occur with certain combinations of drivers and hardware.
  • Added some more details to about:support.
  • Fixed a potential crash when the last audio device is removed during playback.
  • Fixed a crash on about:support when windowless browsers are created.
  • Updated