[meta] Remove uses of bootstrapped extensions

RESOLVED FIXED

Status

()

enhancement
RESOLVED FIXED
Last year
7 months ago

People

(Reporter: aswan, Unassigned)

Tracking

(Blocks 1 bug, {meta})

Firefox Tracking Flags

(Not tracked)

Details

We no longer allow arbitrary bootstrapped extensions on release or beta, but we do have a handful that get special treatment for now.  In order to remove a bunch of old code for supporting bootstrapped extensions, we need to get rid of these (either by converting them to webextensions or finding some other way to do whatever each one does)
Depends on: 1449055
Removing bootstrapped extensions is not what was promised in https://wiki.mozilla.org/Add-ons/Firefox57

Anyways, when will this happen? It seems non-bootstrapped ones are being removed right now in bug 1448221, so I am considering refactoring my overlay add-on into a bootstrapped extension. But if you are going to remove them next week then it won't be worth.
(In reply to Oriol Brufau [:Oriol] from comment #1)
> Removing bootstrapped extensions is not what was promised in
> https://wiki.mozilla.org/Add-ons/Firefox57

That page is about the restrictions related to installing and enabling different types of extensions, it is not a promise to keep supporting the legacy types indefinitely.  Sorry if there was a misunderstanding about that.

> Anyways, when will this happen? It seems non-bootstrapped ones are being
> removed right now in bug 1448221, so I am considering refactoring my overlay
> add-on into a bootstrapped extension. But if you are going to remove them
> next week then it won't be worth.

We're working out the timeline right now.  Its unlikely to happen next week but I would advise using webextensions and not bootstrap.
(In reply to Andrew Swan [:aswan] from comment #2)
> (In reply to Oriol Brufau [:Oriol] from comment #1)
> > Removing bootstrapped extensions is not what was promised in
> > https://wiki.mozilla.org/Add-ons/Firefox57
> 
> That page is about the restrictions related to installing and enabling
> different types of extensions, it is not a promise to keep supporting the
> legacy types indefinitely.  Sorry if there was a misunderstanding about that.

I think the part that's still unclear is what's left for developers who want to make add-ons that aren't possible to implement with the current set of webextension APIs, but don't really care about shipping their experimental add-on to a large audience (so if the add-on istalls only on Nightly and devedition that's fine). I mean people who mostly want to customize their own browsing experience, and may be willing to share their code but don't care if it's actually used by others.
Summary: Remove uses of boostrapped extensions → Remove uses of bootstrapped extensions
(In reply to Florian Quèze [:florian] from comment #3)
> I think the part that's still unclear is what's left for developers who want
> to make add-ons that aren't possible to implement with the current set of
> webextension APIs, but don't really care about shipping their experimental
> add-on to a large audience (so if the add-on istalls only on Nightly and
> devedition that's fine). I mean people who mostly want to customize their
> own browsing experience, and may be willing to share their code but don't
> care if it's actually used by others.

I suspect what they'll likely need to use is a bundled Experiment API to get access to the same privileged gunk that bootstrap.js always had.
How does this bug differ from bug 1419884? Looks like the direction there is more focused on moving bootstrapped to WebExtension Experiments?
See Also: → 1419884
That bug appears to be about creating enough WebExtensions APIs to enable our current system extensions and other internal extensions to be written as pure WebExtensions.  That seems like an interesting landmark but not something we ever need to actually achieve.
Depends on: 1450305
Depends on: 1450809
Depends on: 1451034
Depends on: 1358342
No longer depends on: 1451034
Depends on: 1371346
Depends on: 1451463
No longer depends on: 1393449
Depends on: 1451484
Depends on: 1451485
Depends on: 1451503
Depends on: 1451513
Depends on: 1451519
Depends on: 1451522
Depends on: 1451525
Depends on: 1451526
Depends on: 1451527
Depends on: 1451532
:jryans are there any devtools extensions other than adb helper that we should be tracking here?
Flags: needinfo?(jryans)
I think we have dependencies now for all the bootstrapped extensions in mozila-central.
Aside from devtools (see previous comment), the out-of-tree ones I know of are:
- Shield
- Test Pilot
- Pocket

Representatives from all the above are aware of the eventual demise of bootstrapped extensions but primarily do issue tracking outside of bugzilla so we can't easily create blocking bugs here.
(In reply to Andrew Swan [:aswan] from comment #7)
> :jryans are there any devtools extensions other than adb helper that we
> should be tracking here?

No, that should be it.  We used to also have the Valence add-on as well, but that project is now unsupported.
Flags: needinfo?(jryans)
(In reply to Andrew Swan [:aswan] from comment #8)
> I think we have dependencies now for all the bootstrapped extensions in
> mozila-central.
> Aside from devtools (see previous comment), the out-of-tree ones I know of
> are:
> - Shield
> - Test Pilot
> - Pocket
> 

about:sync (https://addons.mozilla.org/en-US/firefox/addon/about-sync/, https://github.com/mhammond/aboutsync) is another out-of-tree bootstrapped extension.
(In reply to Thom Chiovoloni [:tcsc] from comment #10)
> about:sync (https://addons.mozilla.org/en-US/firefox/addon/about-sync/,
> https://github.com/mhammond/aboutsync) is another out-of-tree bootstrapped
> extension.

For the purposes of this bug, we're only concerned about extensions that are used in automation or signed for use in release builds.
(In reply to Kris Maglione [:kmag] (long backlog; ping on IRC if you're blocked) from comment #11)
> (In reply to Thom Chiovoloni [:tcsc] from comment #10)
> > about:sync (https://addons.mozilla.org/en-US/firefox/addon/about-sync/,
> > https://github.com/mhammond/aboutsync) is another out-of-tree bootstrapped
> > extension.
> 
> For the purposes of this bug, we're only concerned about extensions that are
> used in automation or signed for use in release builds.

Unless I'm mistaken, it's signed for release builds.
Ah, I might have misunderstood. It's not distributed as part of a release build, if that's what you meant.
Bootstrapped add-ons can't be installed in release builds unless they're signed with a special certificate. about:sync is not signed in that way. Not the version on AMO, at any rate.
Ah, yeah, that's what I initially thought you meant. No, about:sync is signed with that certificate, and can be installed on release builds (I just double checked on a fresh profile). We often recommend users do this to help report bugs.

ni?markh to confirm, since he's the one that goes through the signing process.
Flags: needinfo?(markh)
I'm not sure exactly what certificate is being referred to here, but about:sync is signed using the process at https://mana.mozilla.org/wiki/display/SVCOPS/Sign+a+Mozilla+Internal+Extension, making it available in the release channel.
Flags: needinfo?(markh)
Sorry, you're right, I misread the signature info. In that case, I suggest you migrate the extension to a WebExtension as soon as possible. Signed legacy extensions that aren't in-tree won't block this removal.
Could implementing bug 1451983 help migrate some extensions to WebExtensions?

(In reply to Andrew Swan [:aswan] from comment #8)
> I think we have dependencies now for all the bootstrapped extensions in
> mozila-central.
> Aside from devtools (see previous comment), the out-of-tree ones I know of
> are:
> - Shield
> - Test Pilot
> - Pocket
> 
> Representatives from all the above are aware of the eventual demise of
> bootstrapped extensions but primarily do issue tracking outside of bugzilla
> so we can't easily create blocking bugs here.

Test Pilot has bug 1280233 open for this.
Depends on: 1280233
Depends on: 1452307
Depends on: 1271476
No longer depends on: 1271476
Depends on: 1411641
No longer depends on: 1411641
Blocks: 1459029
No longer blocks: 1459029
Depends on: 1474414
Depends on: 1475571
No longer depends on: 1449694
Does this affect the ASan reporter addon in browser/extensions/asan-reporter/ ? If so, I might need someone to help migrating this. We cannot remove support for this extension until we have a working alternative.
Flags: needinfo?(kmaglione+bmo)
Depends on: 1487173
(In reply to Christian Holler (:decoder) from comment #19)
> Does this affect the ASan reporter addon in
> browser/extensions/asan-reporter/ ? If so, I might need someone to help
> migrating this. We cannot remove support for this extension until we have a
> working alternative.

Yes, asan-reporter will be affected.  I thought I talked to somebody about asan-reporter a while back and concluded that it wasn't used, but not to worry, it looks like a pretty trivial port.  Lets take further discussion to bug 1487173.
Flags: needinfo?(kmaglione+bmo)
Depends on: 1488541
Depends on: 1488813
From 'Intent to unship: bootstrapped extensions' <https://mail.mozilla.org/pipermail/dev-addons/2018-June/003831.html> (2018-06-05): 

> … plan to remove support for bootstrapped extensions altogether 
> in Firefox 65. …
Depends on: 1462415
No longer depends on: 1450809
Depends on: 1498278
See Also: → 1498929
No longer depends on: 1280233
All the dependencies are closed, marking this done!
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Blocks: 1419884, 1498929
Summary: Remove uses of bootstrapped extensions → [meta] Remove uses of bootstrapped extensions
Depends on: 1517505
You need to log in before you can comment on or make changes to this bug.