[tbb-dev] Fwd: Intent to unship: bootstrapped extensions

Tom Ritter tom at mozilla.com
Tue Jun 5 05:05:05 UTC 2018

---------- Forwarded message ----------
From: Andrew Swan <aswan at mozilla.com>
Date: Tue, Jun 5, 2018 at 3:34 AM
Subject: Intent to unship: bootstrapped extensions
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 security
- 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/
[2] https://firefox-source-docs.mozilla.org/toolkit/components/extensions/webextensions/index.html

Dev-addons mailing list
Dev-addons at mozilla.org

More information about the tbb-dev mailing list