Pale Moon: Technical Details
So, you want more details about the browser? I'll be more than happy to explain:
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, among other things, the following features:
The following features have been disabled or removed by design:
- 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 many Firefox Extensions (add-ons).
- Support for Pale Moon specific Extensions.
- Support for Personas ("lightweight" themes).
- Support for Complete Themes.
- CSS Downloadable Font support (including WOFF).
- Extended HTML5, CSS3 and advanced DOM support.
- Speedy scripting and page rendering.
- Optimized, secure networking.
- Graphical tab switching with quick-search (user-selectable).
- 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 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 Mozilla code 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 a 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. We do not integrate at the browser core level with social media.
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 have been completely
removed since they require server-side components that are not in place at palemoon.org, as well as the
latter severely impacting user privacy.
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:
386 / 486 / Pentium / Pentium II
Pentium-M / Celeron-M
Pentium-D / Celeron-D
Older generation single-core Celeron
< 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.
How different is this browser from Mozilla products?
The differences are increasingly significant as time passes. Pale Moon will remain
close to Firefox in certain parts of the code to offer a degree of compatibility with many add-ons, but
should be considered a "fork" and a totally independent product.
Moon is based on a derivative of the Gecko rendering engine (Goanna).
This means that the core rendering functions for Pale Moon and Firefox
(and rebuilds) will be a relatively close match and that functionality
in the Gecko core code, will, as a ballpark estimate, 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, and
to focus on better standards compatibility and/or more sane behavior.
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 with in-depth knowledge of the modified engine, to
provide you with the smoothest browsing experience as well as to be
considerate towards the Internet ecosystem, website/service providers
and residential gateways (e.g. by reducing the number of concurrent
http and total dns requests needed when browsing) without relying on
protocol extensions that are often not or not properly supported. Note
speed boosters" and general "tweak guides" written for Firefox 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.
- 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 or re-introducing 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.
- Pale Moon offers more configurability for features, like additional tab preferences, preferences for
image loading or tab positions, and full control over smooth scrolling, to name a few.
- 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).
- 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 impacts every aspect of the browser,
from loading pages to drawing graphics and running scripts.
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
The Geek Corner
TMI (Too Much Information) for the average joe:
- Build environment (Windows):
- 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 5 (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-code 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 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.