Add-ons/SystemNotAddons: Difference between revisions

Jump to navigation Jump to search
Replaced content with "Status: ```draft in progress, please don't edit for the moment``` This documents a suggested difference between WebExtensions and system add-ons. (andym) Need to think a..."
(Created page with "Status: ```draft in progress, please don't edit for the moment``` This documents a suggested difference between WebExtensions and system add-ons. = Rationale = Firefox is m...")
 
(Replaced content with "Status: ```draft in progress, please don't edit for the moment``` This documents a suggested difference between WebExtensions and system add-ons. (andym) Need to think a...")
 
Line 3: Line 3:
This documents a suggested difference between WebExtensions and system add-ons.
This documents a suggested difference between WebExtensions and system add-ons.


= Rationale =
(andym) Need to think about it more.
 
Firefox is moving to a faster shipping method using GoFaster which allows features and functionality to be shipped as system add-ons. The key needs for this system are to allow Mozilla developers to be able to experiment quickly with new APIs and functionality. GoFaster add-ons are most likely mozillians with commit access to mozilla-central.
 
Extensions, as traditionally thought about, are pieces of code designed to change the browsers behaviour. They can be written by anyone.
 
In a blog post in August of 2015, it was mentioned that XUL/XPCOM based add-ons would be deprecated. This is because of a few problems, including:
* add-ons can do pretty much anything the developer wants (security)
* no layer between add-ons and the internals mean that platform are stymied by a lack of visibility in what will break on a change
* add-ons are hard to maintain across Firefox versions as things change
 
This has caused Mozilla to write WebExtensions, a layer between the internals and add-ons so that there is a limited API for add-ons. Unfortunately the speed, flexibility, power and security of GoFaster add-ons is at conflict with WebExtensions.
 
If it's the case that all Extensions were required to be WebExtensions, we'd hit issues.
 
Several solutions have been suggested for this, most notably native.js for WebExtensions, but in this proposal I recommend completely splitting up the two problem areas.
 
== Add-ons management ==
 
The main reason that the GoFaster add-ons are called add-ons is because they rely on the add-ons manager. The add-ons manager handles registering, installing, updating and so on of add-ons. An add-on can currently be: a bootstrapped add-on, a non-bootstrapped add-on, a heavy weight theme, a light weight theme, an SDK add-on, a WebExtensions add-on etc.
 
== Fundamental differences ==
 
 
 
== Add-on SDK ==
 
In this proposal the SDK would still be deprecated, there would be two levels of support: bootstrapped add-ons at the lowest level or WebExtensions. Nothing in between. In this case the add-on SDK would probably move towards eventual deprecation (maybe).
Confirmed users
1,158

edits

Navigation menu