Containers is not a 'normal' addon. It's an hybrid addon signed with the
mozilla key and in its install.rdf it has hasEmbeddedWebExtension tag set
to true.
This means that it has and it executes bootstrap.js with chrome privileges.
bootstrap.js is needed for FF versions <56: a couple of preferences are
set, some CSS, some SVG...

But in that file, in FF57 and 58 there was a bug: it was trying to load an
addon-sdk resource: resource://gre/modules/commonjs/toolkit/loader.js in
order to be able to use TextDecoder and TextEncoder.
The loading fails in 57 and 58 and the execution of bootstrap.js terminates
with an exception. Totally fine: we don't need this file for such FF
versions.
See commit:
https://github.com/mozilla/multi-account-containers/commit/a7be3c9935ac42469a1030c3714c656d6e6d0948

In bug 1347515 I removed nsIJSON interface and I introduced the use of
TextDecoder in ContextualIdentityService.jsm in order to retrieve JSON
objects from files.
But the failure in bootstrap.js, made 'TextDecoder' to be null in
ContextualIdentyService.jsm. The result is that the default containers were
restored.

This is why we had this issue. It should not be impossible for a 'standard'
webextension to generate such mess.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to