32

Pale Moon Browser Continues Support and Development of XUL

 5 years ago
source link: https://www.tuicool.com/articles/hit/fuAvauU
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Pale Moon future roadmap

Last update: 2018-08-14

General Information

The 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. To quote: "Pale Moon is not Firefox, and will never be again."

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. 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 plans

Our long-term plans for Pale Moon involve continuing to build on UXP (the Unified XUL Platform) that is currently being worked on as a generic platform alongside the browser application.

This platform will continue to carry the Goanna engine, like the previous browser incarnations, albeit with many updates and rearchitecturing.

Building on UXP brings a number of necessary advantages to Pale Moon as an application, chief among them full ECMAScript 6 standard support, and additional support for ES2016 and ES2017 drafts to bring the browser's scripting and DOM capabilities on the level with what is required by the current web. It is expected that this scripting storm that has been raging for a few years will die down and allowing us to keep pace with any new developments without being in any way lacking in our support.

Technology support

Pale Moon supports and will continue to support the following features/technologies:

  • Full UI customization
  • Full theming (complete themes) and lightweight theming (personas)
  • XUL and XBL to build interfaces and applications (including the ability to launch independent XUL-apps from the browser binaries).
  • Full support for NPAPI plug-ins
  • Overlay and bootstrapped (restartless) extensions
  • Access to low-level APIs from extensions, allowing them to truly extend browser functionality, and not just manipulate web content
  • Pale Moon Sync (in the secure, time-tested Weave fashion); it will be able to use any Weave Sync 1.1 compatible server, including some FOSS cloud solutions.
What is explicitly

not

on our roadmap:
  • In-browser DRM. We continue to support DRM-capable NPAPI plugins like Silverlight as an alternative.
  • WebRTC (Web Real-Time Chat) and media capture.
  • Integration of "features as a service" like Mozilla has been doing.
  • Extension signing.

Core Work

Pale 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 and recommendations instead of established standards, a lot of the features in Pale Moon are determined 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 planned HTML/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 GitHub issues page.

Layout and Rendering

The 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. 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.

Version 28 of the browser carries the engine and subsequently platform version 4 of Goanna. This adds, among other things, support for WebGL2, CSS Grid, and other recent additions to the layout and rendering landscape for browsers - further improvements will be made over time, as required.

JavaScript

JavaScript development is one of the ongoing focuses of the core work performed on Pale Moon, and the resulting implementation in v28 is mostly feature-complete in terms of the ECMAScript (JavaScript) standards ES6, ES2016 and ES2017, with annexes. Client-side ES6 modules are still a work in progress but expected to be implemented later in the year.

Please understand that implementing these changes is slow and meticulous work that requires extensive coding and testing to do properly. There is 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 program itself.

Media support

Media 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. This is, however, not a goal of Pale Moon because of the inherent shift of focus from document content to media content. That being said, the Web has shifted to be more visual-media heavy and as such will require a browser to at least to some extent take on the media player role.

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, but may not be as smooth or as feature-rich as what you may find in home cinema software. Also, see above, we do not intend to have DRM in Pale Moon's core program, unlike other applications that build on UXP, and the browser will as such remain properly DRM-free.

Platform (operating system) support

Pale Moon is originally a Microsoft Windows product.

On the roadmap are the following specific platforms to support in addition to Windows:

  • Linux (x86 and x64) -- Completed and actively maintained.
  • Mac OS X -- Currently in development. We hope to have official releases on Mac later this year.
  • Android ARM -- Currently discontinued
    We may plan to lift Android development up to the new milestone after desktop versions are released and have stabilized, if time and capacity permits .
  • *BSD: Due to resistance from the BSD community to adhere to normal free software development practices, we currently have no plans to have official Pale Moon releases of any kind on the range of BSD operating systems.

Front-end

Pale 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 Interface

The User Interface in Pale Moon is stable, based 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 Tools

Weinclude 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.

Plug-ins

Pale 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.

Extensions and extension API

Pale 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. It provides compatibility with most of the browser extensions originally written for Mozilla Firefox (by accepting installations for Firefox application IDs) even though Pale Moon is a different application altogether from an extension point of view. Extension developers are encouraged to make what few changes are necessary for native Pale Moon compatibility and leverage our (to be published) new version of the add-ons website to publish and update extensions.

The future of Pale Moon is to maintain this general level of compatibility with traditional (XUL) Firefox-targeted extensions, although the (transitional) dual-ID setup will eventually be removed, at which point only Pale Moon targeted extensions will be accepted. This will still allow developers to target both Pale Moon and Firefox with specific code for them in a single package, but Firefox-only (legacy) extensions will not longer be accepted by the browser when this lands.

Pale Moon has been fitted with an indicator in the add-on manager to make users aware which add-ons are native to Pale Moon and which are running as "Firefox compatible", to assist in troubleshooting.

XUL extensions

This 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.

Version 28 of the browser may need some changes to cater to some changed toolkit APIs, but in general the UXP 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 marked XUL extensions and bootstrapped extensions as "legacy" and phased out support for all but WebExtensions, which will affect many Firefox extensions. We have no plans to do this and many "legacy" Firefox extensions will continue to be possible on Pale Moon when targeting it.

JetPack (Add-on SDK) extensions

With Pale Moon v28,

these extensions are used at your own risk and come without our support

.
Although we do not impose any restrictions on installing these extensions in the current milestone, 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.

WebExtensions

We 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.

Additional tools and services

Pale Moon authored utilities

Some of the tools used in conjunction with Pale Moon are due for an update. No solid date has been set for these improvements:

  • Improvement of the web installer to offer automatic selection/configuration based on a few different user templates.

Pale Moon Sync

Pale 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:

  • Account deletion.
    This would require the user's credentials (e-mail + password) to be entered, after which the user account and associated data are removed from the database.
  • Password recovery.
    Offering a password reset option by sending an e-mail to the user requesting this.

Pale Moon start page

We 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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK