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