Fwd: Intent to unship: bootstrapped extensions

Patrick Brunschwig patrick at enigmail.net
Tue Jun 5 06:21:46 UTC 2018

We will need to act soon...


-------- Forwarded Message --------
Subject: 	Intent to unship: bootstrapped extensions
Date: 	Mon, 4 Jun 2018 20:34:52 -0700
From: 	Andrew Swan <aswan at mozilla.com>
To: 	firefox-dev <firefox-dev at mozilla.org>, dev-addons
<dev-addons at mozilla.org>

Since various types of legacy extensions became unsupported in Firefox
Quantum, we've been busy removing obsolete code and streamlining the
Addons Manager which, as you might imagine, had become quite large and
complex in order to support a wide variety of legacy addon formats.

At this point, the largest remaining category of legacy extensions is
bootstrapped extensions.  We no longer support bootstrapped extensions
for general use, but we do use them for things like system addons, Test
Pilot experiments, Shield studies, extensions used in automation, and a
few other things.  Bootstrapped extensions are useful for these
applications since they provide a relatively simple way to run some
chrome-privileged javascript code without having to land that code and
wait for it to ride the trains.  But continuing to support these
extensions comes at some cost (for instance, they are one of the last
users of RDF in mozilla-central).

An important feature of WebExtensions is that they run in a sandboxed
environment much like web content without direct access to
chrome-privileged browser internals.  However, a feature called
WebExtensions Experiments allows certain extensions to run some
privileged code.  Converting bootstrapped extensions to WebExtensions
plus experiments has a bunch of advantages:
- It means less privileged code overall which is good for stability and
- Though porting takes some work, the result should be easier to
maintain and build on in the future
- It frees us up to remove more old code and further streamline the
addons manager

So, we plan to remove support for bootstrapped extensions altogether in
Firefox 65.  This will entail porting existing bootstrapped extensions
to WebExtensions (or converting them to something other than an
extension where that is appropriate).  This effort is tracked in bug
1449052.  If you are responsible for a bootstrapped extension that we
rely on and it is not already tracked as a dependency of that bug, please:
1. Add a comment or dependency. to bug 1449052, and
2. Aim to get the extension converted by the end of the 64 Nightly cycle
(Oct 15)

And needless to say, we shouldn't be creating any new bootstrapped
extensions at this point.

A lot of things are going to need to come together to hit his schedule
but we are eager to get this wrapped up and move on.  If you are
responsible for an extension and have questions about how to handle it,
feel free to either contact me directly or drop into #webextensions on
IRC.  If you want to learn more about WebExtensions Experiments, there
is a brief overview at [1] and a lot of gory implementation details at [2].

[1] https://webextensions-experiments.readthedocs.io/en/latest/

More information about the tb-planning mailing list