|
---|
|
Pale Moon future roadmapLast update: 2024-09-07General InformationThe Pale Moon project is a community-driven project, and as such the future roadmap of the browser is determined not only by what is decided by the project owner and other developers, but also by the community. There are occasional polls and constructive discussions on the forum that determine the inclusion and progress of certain features in the browser.Pale Moon, over the course of its life, has been a product steadily diverging from its common Mozilla ancestor, with increasing differences between Pale Moon and Mozilla-based browser products. This divergent path will remain Pale Moon's future. Of course there are a number of challenges on this kind of divergent (some might even say rebellious) path, like adoption of the browser as a truly independent force by the Internet community and a number of technical advances as the Web develops. Having a common ancestor in Mozilla code, it can draw in part on the public sources and feature developments in Mozilla products, and where possible, desired features will be ported across or re-implemented based on code from the Mozilla core code. However: Pale Moon will be selective in what is adopted into its core from Mozilla or written to implement features, and the current feature set is and will always be different as a result, even if it develops to implement common features in web browsers. Pale Moon does not aim to provide 100% parity with other browsers, but rather to offer a sane balance of features and workflow to its users now and in the future. Asking for such parity for specific features may bring the attention to such features and result in an evaluation of desirability based on the many factors involved, but never expect that Pale Moon will implement something "just because such-and-such other browser has it too". This is a preliminary document with forward-looking statements. Development of a complex piece of software like the Pale Moon browser depends on many factors, so this roadmap should be seen as an indication or general direction - and a dynamic document to be updated as the need arises to change plans around. Long-term plansOur long-term plans for Pale Moon involve continuing to build on open and community-supported platform code, the Unified XUL Platform (UXP) currently being worked on as a generic platform alongside the browser application code (Pale Moon™).This platform continues to be the vessel for the Goanna™ rendering engine, with many updates and rearchitecturing as the code matures and develops further. Both UXP and Goanna™ can be used by much more than just a web browser, and this will always be taken into account as development is done (unlike Gecko, which has become purely focused on Mozilla Firefox, even sidelining other maintained Mozilla products). Building on UXP brings a number of necessary advantages to Pale Moon as an application, chief among them full ECMAScript 6, ES2016, ES2017, ES2018 and ES2019 standard support, and additional support for other ES additions (ES2020+), even though big players (who are also firmly in control over the Web API and standards track) are continuing to try and fundamentally redefine JavaScript and CSS into amalgamations of programming paradigms that they were never designed for. As a result we will do our best to follow the more recent developments but cannot guarantee every new method, feature or API will be available as work continues in a development workflow that is primarily reactive, out of pure necessity of managing and maintaining the already massive code base with a small team of primarily volunteers. While we do aim to implement new additions and enhancements to existing standards, we may not necessarily follow the Google Chrome-focused implementation-first barrage of features that attempt to redefine the web in a much more centralized, client-computing focused format. As such we are more critical than ever about which additional complexity to add to the various engines in UXP and the browser and to strike a much-needed balance there to keep Pale Moon and UXP agile and easier on resources for use in other applications and environments than a generic main-stream web browser. Technology supportPale Moon supports and will continue to support the following features/technologies:
Core WorkPale Moon's core is in flux, just like the web is. With the current practice of a total lack of standards and everyone implementing things based on draft specifications, "whatever the other browser has" and recommendations (instead of established and above all developer-requested, community-agreed proposals and standards), as well as an increasing number of pseudo-standards being written by browser vendors in an implementation-first marketing strategy, a lot of the features in Pale Moon are determined and implemented on an on-demand basis: If there is enough demand for a certain feature or if it is considered beneficial to the browser and the web, it will be implemented - other features may be put on hold or decided against altogether.It is beyond the scope of this document to list all planned content improvements in Pale Moon in detail, since many of those are small, individual changes and additions (even though some require a lot of work to implement by re-writing parts of the parser and renderer in Pale Moon's core). The status of planned improvements is, to some extent, available on the repository issues page of the platform. Layout and RenderingThe current layout and rendering engine (Goanna) is Pale Moon's independent implementation derived from Gecko. This engine debuted in v26 of the browser, and aims to improve upon the previous Pale Moon engine by steadily adopting more desired HTML and CSS features as well as improving rendering techniques, while keeping resource usage low. Some implementations will be significantly different than those found in other browsers, even Gecko-based ones, and aim to provide the best-of-class solutions to web design problems, like scoped styling, visually-accurate gradients, and superior font rendering on computers with modern graphics hardware.Version 33 of the browser carries the engine and subsequently platform version 6 of Goanna. Further improvements will be made over time, as required/feasible. JavaScriptJavaScript development is one of the ongoing focuses of the core work performed on UXP, and the resulting implementation in Pale Moon is feature-complete in terms of the ECMAScript (JavaScript) standards ES5, ES6, ES2016, ES2017, ES2018 and ES2019, with annexes. We are aiming to implement all important ES2020+ features as well, over time, when the various proposals reach sufficient maturity. For an overview of current feature support, you can load up the live ES compatibility table in the current version of Pale Moon and check the left-hand column.Please understand that implementing these changes is slow and meticulous work that requires extensive coding and testing to do properly, and the SpiderMonkey engine into which this has to be integrated is already obscenely large and complex (so large in fact that compilers will run out of workspace if compiled in a standard source layout way!); some to be added features will need expert help and guidance that one developer simply cannot do alone, so this will have to be a team/community effort. There is also very little margin for error, because JavaScript not only runs in webpages in Pale Moon, but drives everything in the browser, including many parts of the various UXP-based programs themselves. Media supportMedia support is a regularly-discussed topic for Pale Moon users, since part of the user base would prefer a browser to also be a full-featured and fully dedicated&specialized media player.It will never be our goal to equal or surpass dedicated media software, since Pale Moon is and remains above all a web browser. Full-HD streaming will be possible with the right hardware, but may not be as smooth or as feature-rich as what you may find in home cinema software. Also, as stated above, we do not intend to have DRM in any UXP-based application, and the browser will as such remain properly DRM-free. Platform (operating system) supportPale Moon is originally a Microsoft Windows product with extensive support for building on (GNU or non-GNU) Linux.We will be focusing on Microsoft Windows and Linux as our primary platforms. Aside from that we are working with a modern Solaris developer to have official Solaris/Illumos support, although that is currently on hold. There is collaborative support for Macintosh builds that is kept updated with the latest versions of MacOS (Up to Venture (13) at the time of this writing). We also have FreeBSD support in long-term-beta state. Our lack of daily drivers on FreeBSD means we cannot confidently promote this beta to official for the time being. Other operating systems (e.g. older mainframes, niche hardware, non-mainstream CPUs) are not currently considered for building on UXP, and support code for niche operating systems we cannot reasonably target will be cleaned up over time to further simplify and streamline our code base, unless there is actual full support from outside contributors and platform maintainers to drive this development forward. Front-endPale Moon's front-end features are well-established, tried-and-tested features that work well in terms of flexibility and customizability for users. The front-end is and will remain XUL-based and fully extensible by the user and browser extensions, regardless of what platform is in use.User InterfaceThe User Interface in Pale Moon is stable, based loosely on the Firefox 4-28 browser era UI and will not be changed in any major way as far as how the UI operates. "Australis", the UI rework done by Mozilla in Firefox 29-56 or "Photon" as seen in Firefox 57 and later which completely removed many customization features, will not be adopted. This also means Pale Moon will retain full and ongoing support for total restyling (complete themes).Developer ToolsWe include Web Developer tools in our release versions of Pale Moon. These tools are based on the Mozilla-adaptation of Firebug, and provide a broad set of tools for web developers and extension developers alike. Due to the complexity of these tools and verbatim adoption of them from Mozilla without much of our own development on them, our support for these tools will be (very) limited and we are unlikely to implement requests for new features in the devtools as a result. At our discretion, we may also remove some of these tools that are considered unnecessary or have outlived their usefulness as regards development aids.Plug-insPale Moon supports NPAPI plug-ins. Unlike Firefox, we will not be deprecating or removing support for these kinds of plug-ins. This means that you will be able to continue using your media, authentication, gaming, and other plug-ins in Pale Moon like Flash, Silverlight, bank-authenticators or networking plug-ins for specific purposes. As such we will also maintain the various APIs and interfaces for the use of these plugins, even if they may be deprecated by mainstream browsers or in the web specifications.Extensions and extension APIPale Moon would not be complete without its support for browser extensions, of course, and the extension compatibility maintained in Pale Moon is purposefully kept at a stable level with well-established interfaces. Following considerable blowback and complaints about our attempts to provide a guarantee of compatibility with browser extensions by using our own GUID for the browser and tying officially-maintained Pale Moon extensions to that GUID as-planned in a misdirection initiated by bad faith in early 2022, we have reversed course and are accepting both Firefox's internal identification and Pale Moon's own GUID from v31 onwards. This provides more "out of the box" compatibility with ancient and unmaintained extensions, but on the flip-side we cannot provide actual support for native Firefox extensions as a result. This is what the community and users by considerable majority wanted. Extension developers are encouraged to continue targeting Pale Moon specifically for extension support (since it is ultimately the only consumer left for old Firefox extensions) and make what few changes are necessary for Pale Moon compatibility and leverage our add-ons website panel to publish and update extensions.The future of Pale Moon is to maintain this general level of compatibility with traditional (XUL) Firefox-targeted extensions (called "Legacy" by Mozilla), and fully-maintained extensions that target Pale Moon natively. This dual-ID system allows developers to target both Pale Moon and (legacy) Firefox with specific code for them in a single package, so old extensions would simply install and (hopefully) "just work" without edits, instead of offering some quality guarantee that can be expected from Pale Moon specific extensions. We will leave it up to our users to use that freedom responsibly going forward. XUL extensionsThis kind of extension uses the time-tested native extension capabilities to the browser XUL (UI markup) code, combined with JavaScript. XUL extensions are strongly preferred because they are independent of browser-included libraries that may change over time. With Pale Moon aiming to keep approximate front-end compatibility with v24 of Firefox, this is the API level that should be aimed for.Current versions of the browser may need some changes to cater to some changed toolkit APIs, but in general the platform is largely compatible with the ESR52 branch of Mozilla, from an extension point of view. Binary components in extensions Unlike Firefox, Pale Moon will continue to offer full support for XUL and XPCOM binary-component extensions and there is no plan to discard the current extension system in lieu of Chrome-like alternatives (WebExtensions). Mozilla has completely dropped all support for XUL extensions and bootstrapped extensions. We will continue to use these (in our opinion) vastly superior browser extension capabilities, and have no plans to support WebExtensions as those will only offer a small subset of features and capabilities that are fully covered by XUL/JS overlay extension technologies. JetPack (Add-on SDK) extensionsWith our current releases, these extensions are used at your own risk and come without our support.Although we do not impose any restrictions on installing these extensions, they may or may not work due to the fact that Jetpack is in many respects tied to the Australis UI that we do not carry. We have some compatibility libraries in place that covers most Jetpack extension use, but you will be mostly on your own in terms of troubleshooting and fixing interoperation bugs. Only jpm-based SDK extensions are supported. WebExtensionsWe will not be supporting WebExtensions of any kind in Pale Moon. Our current extension technologies provide all the features, functionality and above all API access for any extension to do anything it has to, including the limited subset that is offered by WebExtensions.Bottom linePale Moon aims to remain what it is at its heart: a fully customizable web browser."Added tools" are nice, but may not be adopted in Pale Moon if they go beyond what should normally be part of a web browser for general use. Additional tools and servicesPale Moon SyncPale Moon Sync is still lacking two features on the server side, which should be addressed. The following improvements are planned, although no date has been set for completion. Potentially, it requires hiring a PHP web developer to add the features:
Pale Moon start pageWe are partnered up with a start portal provider to improve the user experience on the Pale Moon Start page with customizability of shortcuts and localized content. This went live in the first quarter of 2015 and will remain the offered start page solution of choice for the foreseeable future.
Site and contents Copyright ©
2009-2024 Moonchild Productions - All rights reserved Pale Moon is subject to the following licensing. Policies: Cookies - User Content - Privacy. |