Pale Moon: Technical Details
So, you want more details about the browser? I'll be more than happy to
This browser aims to strike a balance between features and speed. As
such, a choice has been made to consciously disable a few features that
are not commonly used by the largest group of users. If you require any
of the disabled features, then this browser is not for you! Please
check the Firefox page to get an official build instead, in that case.
The Pale Moon browser has the following features:
The following features have been disabled
- 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 (now called Themes).
- CSS Downloadable Font support (including WOFF).
- Extended HTML5, CSS3 and advanced DOM support.
- Firefox Sourced! This means you get the reliability
and security of the Firefox browser code, and the wide array of Firefox
options and features.
- Speedy scripting and page
- 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)
- Accessibility features.
Most people don't have a need for accessibility features. This cuts down
some 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 parental controls as introduced
in Firefox 3.0 and later is significant, and has had serious
implications for building the browser. As such, parental controls have
- WebRTC. Apart from
opening up a whole can of worms security-wise, "Web Real Time Chat"
(comparable with Skype video calls and the likes) is not considered
useful or desired functionality for Pale Moon. 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 in-browser reader.
- Social API. The code for this is still included for people who choose to use it, but completely disabled by default.
- 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.
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
The Pale Moon browser is specifically optimized for current processors
and uses instructions exclusively available in more modern 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
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 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.
The web installer will attempt to automatically
detect your processor and inform you if your system can't run Pale Moon.
This table might be
|386 / 486 / Pentium /
|Pentium-M / Celeron-M
|Pentium-D / Celeron-D
< 1.7 GHz not likely,
>= 1.7 GHz likely.
Use a CPU info tool!
|AMD Athlon (1st generation) / Thunderbird
|AMD Athlon XP/MP
|AMD Opteron / Athlon64 / Turion64
Socket 462: NO
Socket 754/939: YES
|All multi-core processors:
AMD Athlon II X2/X3/X4/etc.
AMD Phenom/II etc.
Speed comparisonI have compared scripting speeds with some well-known speed tests to get
some detailed specifications of Pale Moon versus Firefox.
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.
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
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
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 small, but significant. 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.
First off: the
source code used for actual (C/C++) program
functions to build Pale Moon is almost completely unmodified,
this means that whatever functionality there is in
the Firefox code, will also exist in Pale Moon, with the exception of
the parts of Firefox that aren't included in Pale Moon, or parts that
have been individually developed or improved for Pale Moon.
Where specific 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.
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.
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 on Windows 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.
Fourth: Some changes were
made to the user interface, to incorporate functionality and visual
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 Firefox.
status bar has been retained as a fully configurable module, allowing
the user to get as much or as little feedback while browsing as they
desire. Initially this was supplied as an add-on, but eventually
integrated back into the core while retaining add-on bar compatibility
for Firefox extensions.
Pale Moon also offers more configurability for other features, like
additional tab preferences, preferences for image loading or tab positions, and full control over smooth scrolling.
Last but not least: 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
browser, from loading pages to drawing graphics and running scripts.
Naming of the browser
So why not just call it "Optimized Firefox" or similar, you might think?
Firefox is the name for the complete package as supplied and
intended by the Mozilla Corporation,
which this browser deviates from
by excluding certain features, having a different user interface and
configuring the program differently. With the later versions, Pale Moon
has started to diverge more from Firefox as well making it clearly a
different product that should not carry the name Firefox anymore.
the freedom of the MPL, I have
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. This includes but is not
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
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,
- Graphics heavy art sites
- Static HTML sites with many elements
- DHTML/CSS sites
- SSL/heavy authentication sites
- Flash-heavy sites
- Social media sites
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
- Compiler: MS Visual Studio 2012 Update 3 (MSVC CL 11)
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 always 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 188.8.131.52 and 15.4.1 - even though this relies very
heavily on the machine
the browser is compiled on -
which would generally not
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
significant increase in performance in those versions. With the change
to Visual Studio 2012, PGO became 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