Pale Moon - Your browser, Your way

Pale Moon: Technical Details

So, you want more details about the browser? I'll be more than happy to explain:


Features/disabled features

This browser aims to strike a balance between features and speed. As such, a choice has been made to consciously disable a few features found in other browsers that are not commonly used by the largest group of users. If you require any of the disabled features, then the main-line build of Pale Moon is not for you! You may find a suitable version on the third party contributed builds page instead.

The Pale Moon browser has the following features:
  • Specifically optimized for current processors. It makes use of the enhanced instruction sets of newer CPUs - as a result, this browser will not run on particularly old systems.
  • Increased stability: experience fewer crashes
  • Support for Scalable Vector Graphics (SVG) and Canvas.
  • Support for almost all Firefox Extensions (add-ons) and Complete Themes.
  • Support for Personas ("light-weight" themes).
  • CSS Downloadable Font support (including WOFF).
  • Extended HTML5, CSS3 and advanced DOM support.
  • Firefox-based! This means you get the reliability and security of the Mozilla community browser core code, and a wide array of options and features.
  • Speedy scripting and page rendering.
  • Optimized networking.
  • Uses a little less memory than the official builds because of the disabled features (listed below)
  • Graphical tab switching with quick-search
  • More customization options for navigation controls and the tab strip
  • Enhanced security indicators (padlock/styling)
  • More options for recovery (safe mode dialog)
The following features have been disabled by design:
  • Accessibility features. Most people don't have a need for specialized accessibility features for custom input or display devices. This cuts down on the input complexity, and increases speed, but will, obviously, not be suitable for people who need these features.
  • Parental controls. Pale Moon aims to be a fast browser for general use, not a "secured family browser". The design impact of operating system integrated parental controls as introduced in Firefox is significant, and has had serious implications for building the browser. As such, parental controls have been disabled. Extensions-based parental controls are, of course, a just-as viable alternative (and may in many cases work better!).
  • WebRTC. Apart from opening up a whole can of worms security/privacy-wise, "Web Real Time Chat" (comparable with Skype video calls and the likes) is not considered useful or desired functionality for Pale Moon (both according to the developers and the users of the browser at large). This is best left to dedicated programs or at most a browser plug-in.
  • Maintenance service. Pale Moon does not use the Windows maintenance service and does not update silently in the background.
  • Integrated PDF reader. The code for this is still included for emergencies (i.e. when you need to read a PDF but don't have access to a reader) but disabled by default - you are always recommended to use a separate, up-to-date document reader for PDF files (as an external program, not as a browser plugin) for your own security, and to have documents displayed in their fully intended format instead of a stripped-down display in an in-browser reader.
  • Social API. The code for this is still included for people who choose to use it, but completely disabled by default and not supported by the developer.
  • Tab Groups. The Tab Group (aka Panorama) feature has never properly matured and has not seen many people using it. In addition, the feature is generally slow to use, not intuitive, and puts a rather hefty load on the browser when included. For people who still prefer to use this feature even though it has been completely removed from the browser, an add-on is available to replace the removed code.
  • A few miscellaneous things like the crashreporter and telemetry data gathering since they require server-side components that are not in place at palemoon.org, as well as the latter impacting user privacy.

Supported processors

The Pale Moon browser is specifically optimized for current-day processors and uses instructions exclusively available in more modern (or rather: not museum-grade) processors. This means it will not run on PCs that are particularly old by today's standards, and is likely to display errors or refuse to start on systems with unsupported or poorly supported CPUs.
Requirements for the regular Pale Moon browser are, in short: a 7th or later generation CPU with SSE2 support.
Since many people will not know off-hand what their CPU is capable of or what generation it is, here is a run-down of a number of popular CPUs around the time of includion of this instruction set, and if they are supported. In case of doubt if your CPU is supported or not, please find a CPU information tool like CPU-z or Crystal CPU-ID to check your CPU's capacities.

This table is incomplete. but outlines a few popular classes of processor:

Processor
Supported?
386 / 486 / Pentium / Pentium II
NO
Pentium III
NO
Pentium IV
YES
Pentium-M / Celeron-M
YES
Pentium-D / Celeron-D
YES
Older generation single-core Celeron
Maybe:
< 1.7 GHz not likely,
>= 1.7 GHz likely.
Use a CPU info tool!
AMD Athlon (1st generation) / Thunderbird
NO
AMD Athlon XP/MP
NO
AMD Opteron / Athlon64 / Turion64
YES
AMD Sempron
Maybe:
Socket 462: NO
Socket 754/939: YES
All multi-core processors:
Intel Core/C2D/C2Q/i3/i5/i7/etc.
AMD Athlon II X2/X3/X4/etc.
AMD Phenom/II etc.
YES


Speed comparison

I have compared scripting speeds with some well-known speed tests to get some detailed specifications of Pale Moon versus Firefox.

Please note:
Pale Moon is globally optimized, and any benchmarking tests performed on it only cover and compare part of the browser functionality. Marginal gains by other browsers seen in such benchmarks should not be considered conclusive.

Version 3.5 and 3.6 showed an overall performance increase of about 25% over Mozilla builds.

New tests were performed for version 12.0 by an independent tester, results used with permission, wherein Pale Moon scored no less than 33% higher in Dromaeo's "recommended" tests, and 9% higher in Futuremark's Peacekeeper browser benchmark.

With Pale Moon 15 and later, the focus of building the browser has shifted from a purely low-level Javascript focused build to one that is focused on overall browser smoothness and user experience, since that is what really matters for Pale Moon users. Stability is given more priority, and although this means some concessions are made towards benchmarking scores and Javascript performance, it should also be clear that with the current generation of browsers, Javascript speed really isn't the bottleneck anymore, unlike in the past. Unfortunately this is what just about every browser benchmark will test.

A more detailed description about how to look at benchmarking results can be found on the forum.

How different is this browser from Firefox?

The differences are increasingly significant as time passes. Pale Moon will remain close to Firefox in many parts of the code to ensure compatibility with the many thousands of add-ons wherever possible, but should be considered a "fork" and a totally independent product.

For a feature set comparison with Firefox, please have a look at the following table.
  1. Pale Moon, like Firefox (and several other browsers) is based on the Gecko rendering engine. This means that the core rendering functions for Pale Moon and Firefox will be a very close match and that whatever functionality there is in the Gecko core code, will also exist in Pale Moon. Where specific core functions have been changed, it has been done carefully and with due consideration to provide better performance and efficiency while not endangering the security of the browser.
  2. Some functions have been completely disabled to cut down on input complexity (accessibility, for one), unnecessary/unused code (multiple additional modules) and to remove non-essential tools that would be better left to the free choice of the user. This improves stability and speed, and reduces resource use.
  3. Pale Moon comes with a number of different default configuration settings than Firefox. These basic "tweaks" (I'd prefer to call them "more sane defaults") are done to provide you with the smoothest browsing experience as well as to be considerate towards website/service providers and residential gateways (e.g. by reducing the number of concurrent http and total dns requests needed when browsing). Note that "internet speed boosters" can actually harm Pale Moon's speed as the configuration defaults are made with in-depth knowledge of the browser back-end and "a higher number" or "bigger buffer" isn't always better. You are strongly advised to always use defaults as supplied in Pale Moon.
  4. Changes were made to the user interface and feature set, to incorporate functionality and visual elements in different locations than what was chosen by the Mozilla team, as well as retaining useful elements that were removed in Firefox, and either removing or disabling (by default) components that would not be used by the average user. In addition, some other user interface changes were made to provide an as consistent and intuitive interface as possible while still staying close to what Firefox's goals have always been. This means the "Australis" interface will never be used in Pale Moon.
  5. Pale Moon offers more configurability for features, like additional tab preferences, preferences for image loading or tab positions, and full control over smooth scrolling.
  6. Pale Moon uses a different "Sync" client and its own server to synchronize data between different instances of the browser. This is not compatible with Firefox Sync as used in Firefox 29 or later. Mozilla's change to "Firefox Accounts" is a different and less secure approach to synchronizing data and focuses more on future commercial endeavours of the Mozilla Corporation and, after careful consideration, has been rejected for use in Pale Moon (for quite the list of reasons, to be fair).
  7. A stock Firefox executable is built to run on, by today's standards, ancient hardware (are you still running a first generation Pentium processor? I wouldn't think so). The build environment used for Pale Moon allows for specific optimizations in the building process that actually uses the capabilities of the computer hardware it runs on (specifically: advanced processing instructions) and gears the machine code at the assembly level specifically towards certain generations of processors, as opposed to trying to compromise for different ways of working of old (read: museum-grade) hardware. This is the biggest contributor to the speed increase seen in Pale Moon, as it impacts every aspect of the browser, from loading pages to drawing graphics and running scripts.

Naming of the browser

So why not just call it "Optimized Firefox" or a similar closely-related name (something-Fox), you might think?

Firefox is the name for the complete package as supplied and intended by the Mozilla Corporation, which this browser deviates from (in ever-increasing ways) by developing own code, excluding certain features, having a different user interface, having a different feature set, and configuring the program differently. With the later versions, Pale Moon has diverged so much from Firefox making it clearly a different product that it should not carry the name of its sibling. In addition, Pale Moon is in no way affiliated with the Mozilla Corporation, and therefore should not carry a brand name that is Mozilla's property.

Using the freedom of the MPL, I have therefore branded the browser Pale Moon, to clearly identify this browser as an individual product, not related to the Mozilla Corporation or official Firefox installations. Like the Mozilla Corporation, I rely on all of the contributors to this Open Source Mozilla project for the supplied program code and development of new versions. The Mozilla Corporation didn't program Firefox, the community did. This also means that, similar to Mozilla owning Firefox and the Firefox logo, I retain the rights to the Pale Moon project name, graphics and logo; they may not be used elsewhere without prior permission, and only in relation to this browser, and redistribution of the binary executable code is limited by a redstribution license.

How Pale Moon has been tested

Pale Moon builds are tested for stability before being released by having it used for day-to-day browsing by a group of beta testers. This includes but is not limited to:
  • Graphics heavy art sites
  • Static HTML sites with many elements
  • DHTML/CSS sites
  • SSL/heavy authentication sites
  • Flash-heavy sites
  • Social media sites
In addition, more rigorous testing is sometimes done by having the browser used in an autosurf setting, visiting a very wide range of pages from all over the world with greatly varying content. This is the kind of test where some other browsers tend to fall behind quickly in stability and robustness, and it is very much a real-world kind of test. Synthetic tests are OK to get some basic metrics, but in the end, people will use this browser to browse a wide variety of sites, and would prefer it not crashing, hogging all resources or slowing down to a speed similar to wading through a tarpit. Unorthodox way of testing, maybe, but certainly effective.

The Geek Corner

TMI (Too Much Information) for the average joe:
  • Build environment:
    • Hardware: Asus Phenom II BE, main workstation, 16GB RAM
    • Software: Windows 7 64-bit, Windows 8 SDK, DX9/10 SDK
      For other operating systems, virtual machines are used.
    • Compiler: MS Visual Studio 2012 Update 4 (MSVC CL 11)
  • Optimizations: SSE2 architecture, global speed-preference flags, intrinsic functions where possible, auto-vectorization, auto-parallelization. Some small variations of these could be possible depending on specific release builds. Whole Program Optimization is used to provide the most efficiently linked binaries. Many of the builds (and all recent ones) use identical COMDAT folding to further increase speed and reduce size of the program at the expense of compile time.
  • Profile Guided Optimization was used between 3.6.0.1 and 15.4.1 - even though this relies very heavily on the machine the browser is compiled on - which would generally not be a good measure for a browser that is used over a wide array of different systems - the overall performance increase when using a manually, carefully selected set of operations for application profiling resulted in a significant increase in performance in those versions. With the change to Visual Studio 2012, PGO became (a lot) less significant and starting with Pale Moon 19.0, a more general code optimization was used to make the resulting program perform equally well regardless of O.S. and PC used on, and more importantly, improve stability of the browser by avoiding compiler/linker bugs related to PGO.