Tech Central - More than just mobile!

Binary Outcast’s view into the future of Pale Moon

By Matt A. Tobin on Saturday, August 30th, 2014

If you had not noticed yet, we love the Pale Moon project for its commitment to continue being the most customizable, stable, thoughtful, and useable browser for Windows, Linux, Android, and now Mac. (After all, you need a great web browser to visit Binary Outcast!) BinOC has contributed some specialized 3rd party builds to the project as well as actual development of the code base. We are also spearheading the formation of the future dedicated site for browser add-ons. However, there seem to be those still confused about what Pale Moon is, especially in comparison with Firefox, and where it is heading in the future.

As some may recall (before contributing anything to Pale Moon) we wrote our review of the gecko-based browser which included a multi-paragraph history lesson up to the use of the Mozilla ESR24 codebase. So consider this, in part, to be follow up to that section of the article.

For those of you who don’t wish to go back and read our review, here’s a condensed summary: Pale Moon started as Moonchild tinkering with the codebase for Gecko 1.8 (Firefox 2) then by Gecko 1.9.x (Firefox 3.x) he reached a state that he was happy with and released the first version of his browser in 2009. This continued along the mostly equivalent Firefox versions until Gecko 12 (Firefox 12) when it was decided that releasing Pale Moon based on a calendar for no compelling reason was insane.

This moved along only releasing when there were significant updates to the codebase until the Extended Support Release (ESR) version 24 came along. With all the uncertainty of the then-coming Australis change, he decided that it would be best to sit and wait it out. Remaining on ESR code provided the advantage of automatically uplifting security updates, which relieved him of the burden of manually importing fixes from Mozilla. This allowed for more focus on an unprecedented number of refinements of the backend code to improve the browser far beyond what anyone expected of ESR24 (and in some respects still haven’t been achieved in today’s most current Firefox code).

With the some what condensed history lesson out of the way, we should speak about the future of the Pale Moon project (as we have noticed it). We have already seen the aftermath of Australis including the almost fictitious marketing points to why it is so much better than what has come before it. So it seemed that sticking with the ESR24 codebase proved to be the right call for the project. However, updates to Mozilla ESR24 are ending in a few months.

As part of a BinOC Sponsored (read: me) research project into the future of the Pale Moon codebase, I worked on wholesale forward-porting of the browser specific code up the line to the next ESR branch. This proved relatively successful in that it was completely possible. But as Mozilla moved closer to Gecko 31, the code that would become the next ESR branch deteriorated into a very unstable state. As it is, it barely builds with purely Mozilla configuration choices, never mind with more advanced optimizations the Pale Moon project was known for employing. We brought our findings to Moonchild to compare against his own and discovered that the results were similar. It was decided that attempting a wholesale codebase jump would damage Pale Moon, resulting in the same stability issues that already plague current Firefox versions. This is not including the new issue of how to solve the mounting incompatibilities between the browser core code and the radically different (and broken) backend code.

Enter Pale Moon version 25, which is currently under development. As ESR31 proved to be completely broken and unstable when even building unmodified Mozilla code, the decision was rather final in that Pale Moon would continue down its increasingly divergent path. At this point, it would no longer be based on any specific Gecko or Firefox code but on its own well-established and stable codebase that just happens to have a historical connection with ESR24. It is important to note that ESR24 was a starting point and the Pale Moon codebase today is quite different than what Mozilla released a year ago. Some goals for version 25 are: using a dual GUID system relating to add-ons so that v24 compatible Firefox add-ons will still largely work as before and allow the installation of add-ons that are specifically created (or modified) for Pale Moon. In addition to this, a major upgrade of libvpx will bring VP9 codec support to WebM video (first seen in a Gecko browser at Firefox 28) as well as HTML5 updates.

This is only the tip of the iceberg for Pale Moon 25. You can confidently continue to expect the same dedication, rational progression, and improvement of the browser as you have in the past. As for those Australis refugees? A stunning experience that will truly make you feel as if you have finally come back home.