External Publication
Visit Post

Add-ons • Re: Working on a Greasemonkey fork for Pale Moon

Pale Moon forum - Forum index [Unofficial] May 29, 2026
Source

...I also can't help but think if you're already making a complicated extension, the difficulty of restartless aspect might be blown out of proportion.

In case if you don't know, uBlock Origin was not developed by the original developer (Gorhil) alone - even when he forked it to "uBlock Origin ", he was still getting help from a team of developers and some contributors.

Secondly, developing uBlock Origin in a restartless fashion on Pale Moon/UXP platform would be a lot more complicated, since you'll be dealing with memory leaks, zombie compartments, race conditions, etc... Developing it on WebExtensions, on the other hand, it:

  • Runs in a separate, sandboxed JavaScript environment with no direct access to browser chrome.

  • Uses a declarative manifest (manifest.json) where the browser itself manages lifecycle, event registration, and resource cleanup.

  • Has limited, well-defined APIs — it can’t overlay XUL, register XPCOM components, or touch internal objects.

  • is automatically torn down by the browser when disabled/uninstalled, with no way for the extension to leave dangling references in the main process.

In other words, you'll be manually unhooking everything, when developing it in a restartless bootstrapped, but in WebExtension, the platform itself cleans up any memory leak and it actually encourage you with this development method.

If someone were to develop an extension as big as uBlock Origin on Pale Moon, they would be spending 3x the effort of what was spent on the upstream version, if they were to develop it in restartless fashion on UXP-based browsers.

In my opinion, it's much preferable to balance in making an extension complicated, but simple in installation, or have only one function, but offering the convenience of not having to restart the browser just to unlock this one function.


Discussion in the ATmosphere

Loading comments...