Port bug 1514594: Change all call sites of ChromeUtils.import() to the "new" scheme
Categories
(Thunderbird :: General, task)
Tracking
(Not tracked)
People
(Reporter: jorgk-bmo, Assigned: darktrojan)
References
Details
Attachments
(14 files, 8 obsolete files)
229.78 KB,
patch
|
Details | Diff | Splinter Review | |
823.11 KB,
patch
|
Details | Diff | Splinter Review | |
12.70 KB,
patch
|
Details | Diff | Splinter Review | |
132.46 KB,
patch
|
Details | Diff | Splinter Review | |
14.13 KB,
patch
|
Details | Diff | Splinter Review | |
549.62 KB,
patch
|
Details | Diff | Splinter Review | |
10.81 KB,
patch
|
jorgk-bmo
:
review+
darktrojan
:
review+
|
Details | Diff | Splinter Review |
18.41 KB,
patch
|
jorgk-bmo
:
review+
|
Details | Diff | Splinter Review |
12.67 KB,
patch
|
Details | Diff | Splinter Review | |
101.34 KB,
patch
|
aceman
:
review+
|
Details | Diff | Splinter Review |
1.43 KB,
patch
|
jorgk-bmo
:
review+
|
Details | Diff | Splinter Review |
4.41 KB,
patch
|
darktrojan
:
review-
|
Details | Diff | Splinter Review |
34.69 KB,
patch
|
jorgk-bmo
:
review+
|
Details | Diff | Splinter Review |
1.10 KB,
patch
|
darktrojan
:
review+
|
Details | Diff | Splinter Review |
See bug 1514594 comment #13. Looks like a job for a sed script.
Comment 1•7 years ago
|
||
From that comment
"Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old."
Kris, is there a script for this you can share?
Comment 2•7 years ago
•
|
||
The script is on bitbucket [1], though it seems fairly tied to code in m-c from my reading, and you could perhaps do with a simpler one (I wrote a 20-line script that successfully rewrote 99% of Web Extension code in m-c).
It largely depends on your situation (I'm not familiar with the amount and state of JS code in c-c), specifically:
- Do you use a lot of unexported symbols from JSM module's global?
- Do you have the
modules.json
which list explicitly exported symbols (used for eslint prior to this)? - If not, could you easily generate one?
Reporter | ||
Updated•7 years ago
|
Assignee | ||
Comment 4•7 years ago
|
||
I've taken the automated script as far as it will go. I think all the remaining stuff is where we haven't declared which variables we want from the module.
There will be a whole lot of linting errors in this, due to calendar requiring spaces in curly brackets, and possibly other stuff. Also I'm suspicious of some of the places the script used const.
Reporter | ||
Comment 5•7 years ago
|
||
I've added spaces so we get const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
and avoid heaps of linting errors.
Now there are 458 linting errors left in calendar/:
Cu.import imports into variables and into global scope. mozilla/no-import-into-var-and-global (eslint)
Reporter | ||
Comment 6•7 years ago
|
||
Non-calendar part.
Reporter | ||
Comment 8•7 years ago
|
||
Not looking terribly good after that:
JavaScript error: chrome://chat/content/conversation-browser.js, line 181: ReferenceError: smileTextNode is not defined
JavaScript error: chrome://messenger/content/foldersummary.js, line 1: SyntaxError: redeclaration of const Services
JavaScript error: resource:///modules/gloda/datastore.js, line 3950: ReferenceError: GlodaAttributeDBDef is not defined
JavaScript error: chrome://messenger/content/messenger.xul, line 1: ReferenceError: OnLoadMessenger is not defined
JavaScript error: chrome://messenger/content/chat/chat-messenger.js, line 1129: ReferenceError: Notifications is not defined
JavaScript error: chrome://messenger/content/threadPane.js, line 352: ReferenceError: TreeOnMouseDown is not defined
JavaScript error: chrome://messenger/content/messenger.xul, line 1: ReferenceError: messagePaneOnResize is not defined
Assignee | ||
Comment 9•7 years ago
|
||
This cleans up the lint errors (read: actual errors) from the last round. Straight from my queue without a commit message because I'm tired.
Assignee | ||
Comment 10•7 years ago
|
||
This cleans up the obvious imports by pattern-matching, and some of the non-obvious ones by hand. I've skipped chat for now, and made it as far as the start of mailnews.
I'm afraid this is where it gets annoying. You'll have to figure out what's used from each import and list it. None of the remaining code is linted so it's not going to tell you if something's missing. :(
Assignee | ||
Comment 11•7 years ago
|
||
I've basically given up using const for now, because of the redeclaration problem.
Comment 12•7 years ago
|
||
Going to look at this now.
Updated•7 years ago
|
Updated•7 years ago
|
Reporter | ||
Comment 13•7 years ago
|
||
Wait, I'll do a try and I'll fix gloda. ETA: 10 min.
Reporter | ||
Comment 14•7 years ago
|
||
Reporter | ||
Comment 15•7 years ago
|
||
Missed some. Try with Geoff's two patches + Gloda:
Comment 16•7 years ago
|
||
Still some to go.
Comment 17•7 years ago
|
||
^^ is on top of the others
Comment 18•7 years ago
|
||
Reporter | ||
Comment 19•7 years ago
|
||
Magnus, why are you removing const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
form files where Services is used, just taking FilterEditor.js at random.
Reporter | ||
Comment 20•7 years ago
|
||
Looking through the landed patches, does this one make sense?
https://hg.mozilla.org/comm-central/rev/b4291fd243157744625ee9da830c2204416968c9#l81.12
We've mostly remove the import from the constructors, or even the entire constructor:
https://hg.mozilla.org/comm-central/rev/b4291fd243157744625ee9da830c2204416968c9#l14.49
That wasn't in Geoff's patch, I did this since the linter complained about it being unused, see
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=a34539a3f1cef1aa2eeff80c449c10c8a995ff33
Reporter | ||
Updated•7 years ago
|
Reporter | ||
Updated•7 years ago
|
Reporter | ||
Updated•7 years ago
|
Reporter | ||
Comment 21•7 years ago
|
||
Restored the removal of services. Some mic. fixes. 3pane works now and other tabs, too.
Comment 22•7 years ago
|
||
Comment 23•7 years ago
|
||
A bunch of automated conversions. (Scripts are in the hg comment).
Reporter | ||
Comment 24•7 years ago
|
||
Comment 25•7 years ago
|
||
My manual edits were accidentally merged to this same patch, so I'll just upload the complete patch now.
Still some work to do especially in chat.
Reporter | ||
Updated•7 years ago
|
Reporter | ||
Comment 26•7 years ago
|
||
Reporter | ||
Comment 27•7 years ago
|
||
(In reply to Magnus Melin [:mkmelin] from comment #25)
My manual edits were accidentally merged to this same patch, so I'll just upload the complete patch now.
Hmm, this wasn't teamwork at its best. I fixed your initial patch, and then some manual things to TB started at least. Can you repeat those manual edits?
Comment 28•7 years ago
|
||
![]() |
||
Comment 29•7 years ago
|
||
Some more conversions that make 3-pane window show up without errors now.
Except chat where each fix uncovers even more problems and you need to enumerate all the imported symbols.
And one strange case
TypeError: can't redefine non-configurable property "BrowserUtils" in XPCOMUtils.jsm:316:7
Reporter | ||
Comment 31•7 years ago
|
||
Reporter | ||
Comment 32•7 years ago
|
||
Assignee | ||
Updated•7 years ago
|
Assignee | ||
Comment 33•7 years ago
|
||
![]() |
||
Comment 34•7 years ago
|
||
(In reply to Geoff Lankow (:darktrojan) from comment #33)
Comment on attachment 9039939 [details] [diff] [review]
1520643.patch -3paneThe JSMs could keep their consts, and I don't know why you're killing
What? All are jsms and some couldn't stay const, so what do you mean?
ChromeUtils.defineModuleGetter, but it doesn't matter, you've done it now.
It seems to be the same as ChromeUtils.import() and also gave the redefining errors.
![]() |
||
Comment 35•7 years ago
|
||
If anybody has a script that can magically tell which ones should be const and which vars and what does not need to be converted and why then finally use it.
For some reason m-c can use 'const {Services}' but we can't. But those that remember know that we already went through this and had to convert most toplevel consts to vars due to some m-c change (and we also didn't have the time and script to magically check which ones can stay const). So I don't know why the wholesale conversion to 'const' was allowed to blindly land (and not reverted) and now everything is busted.
Reporter | ||
Comment 36•7 years ago
|
||
We're saying that FeedUtils.jsm and three more "JSM" files in the patch could keep the const. The JS filed get var. I thought the ChromeUtils.defineModuleGetter
is some "just in time" thing, so get it when needed, no?
Reporter | ||
Comment 37•7 years ago
|
||
(In reply to :aceman from comment #35)
So I don't know why the wholesale conversion to 'const' was allowed to blindly land (and not reverted) and now everything is busted.
My fault. Geoff ran the script, I landed. Well, and instead of backing it out, we've been reverting it bit by bit :-(
![]() |
||
Comment 38•7 years ago
|
||
For reference, it was bug 1209777.
![]() |
||
Comment 39•7 years ago
|
||
OK, if you mean keeping 'const' INSIDE of jsms, that seems to work too.
Assignee | ||
Comment 41•7 years ago
|
||
This try build is aceman's previous patches plus everything I've done today. I think it should pass almost everything unless I made some mistake in the most recent change. If it does I will push it to comm-central (currently busted by bug 1523846) and somebody else can take it from there.
Comment 42•7 years ago
|
||
Comment 43•7 years ago
|
||
Just to try to explain the situation: in modules const should be used, as this definition doesn't leak out to global scope in that case. In other .js files which we include many of into the window, there you can't use const for any common services, since then it will easily clash with a previous declaration, which is not allowed for const. Therefore we use var instead so that there wouldn't be a clash. When using var the last definition "wins". In that regard, I think it's questionable if it's really correct at all to have the var {Services} declarations. Perhaps it doesn't matter much and the js engine will just ignore as needed.
It's not that m-c can use const {Services} more than once either, but much more of their code is in modules (as opposed to just included .js files).
Comment 44•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #27)
Hmm, this wasn't teamwork at its best.
Indeed. I'm not sure why you spent time fixing up the patch when I wrote I had the replacement commands to re-do and fix it up.
Anyway, good to see this is mostly done. On a general level it's very welcome improvement IMO.
Reporter | ||
Comment 45•7 years ago
|
||
(In reply to Magnus Melin [:mkmelin] from comment #44)
Indeed. I'm not sure why you spent time fixing up the patch when I wrote I had the replacement commands to re-do and fix it up.
Anyway, good to see this is mostly done. On a general level it's very welcome improvement IMO.
Sadly, you never wrote that anywhere. I was begging for the "script" on IRC since it would have been far easier to re-run the script that to edit the patch and turn faulty removals into replacements.
In situations like this, communication of what people are doing is key, and there wasn't any. You attached the patch at 3 PM, didn't respond to any IRC questions at 20:45 although being online:
20:45:05 - jorgk: mkmelin: Hi, why do you remove all those {Services} = ...
20:49:24 - jorgk: mkmelin: Hi, why do you remove all those {Services} = ...
21:03:11 - mkmelin: jorgk: so far because just making the var didn't help. it's possible it's wrong.
21:23:30 - jorgk: mkmelin: do you have a script
21:23:42 - jorgk: removing the services is wrong
21:23:48 - jorgk: and editing the patch is a pain
21:24:07 - jorgk: making the services var instead of removing it helps
21:25:12 - mkmelin: it's mostly commands, so I can run them again once things work
21:26:13 - mkmelin: though I'm not sure. When we include many js files after one another, and declare e.g. Services in more than one, that can't be good either.
21:26:56 - mkmelin: if the file were modules, it would be ok, but as is everything is put into the global scope
Was I'm going to sit there and do nothing while you didn't not say anywhere what you did or were doing??
Magnus, please communicate better. We've done double work and ended up with an inferior solution of jumbling up the order or imports due to my editing of your WIP patch.
Assignee | ||
Comment 46•7 years ago
|
||
Okay, that Try push doesn't look brilliant but it's a lot better than anything in the last 24ish hours.
Here's a summary of what's still broken:
XPCShell:
mailnews/db/gloda tests are busted by who-knows-what.
common/test/xpcshell/test_bootstrap.js is busted by bug 1523535
Mozmill:
All calendar tests broken by a busted datepicker (bug 1518932?)
composition tests … also with a menulist, I think
folder-display tests … I'm not sure, but I can't see any errors pointing to this bug
folder-widget/test-message-filters.js … there's a menulist, so I'm guessing that
junk-commands/test-junk-commands.js … same message as some of the folder-display tests "Timed out waiting for message display completion."
search-window/test-search-window.js … fixed
session-store/test-session-store.js … no idea
tabmail/test-tabmail-closing.js … same message as some of the folder-display tests "Timed out waiting for message display
Reporter | ||
Comment 47•7 years ago
|
||
Comment 48•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #45)
Was I'm going to sit there and do nothing while you didn't not say anywhere
what you did or were doing??
But you didn't ask for the scripts, just if I had a script [to generate]. I'd assumed you asked to send/attach them if you needed them. I suppose there's room for improvement in communication from both sides.
Reporter | ||
Comment 49•7 years ago
|
||
Reporter | ||
Comment 50•7 years ago
|
||
(In reply to Magnus Melin [:mkmelin] from comment #48)
But you didn't ask for the scripts, just if I had a script [to generate]. I'd assumed you asked to send/attach them if you needed them. I suppose there's room for improvement in communication from both sides.
Magnus, you didn't communicate what you were doing and didn't answer questions. That's what IRC is for in such situation. It's only natural that other people are trying to fix the situation when they they see no other activities.
With your WIP you should already have said: Generated like so ... Then it would have been easy for anyone to rerun.
Comment 51•7 years ago
|
||
Reporter | ||
Comment 52•7 years ago
|
||
(In reply to Geoff Lankow (:darktrojan) from comment #46)
XPCShell:
mailnews/db/gloda tests are busted by who-knows-what.
All failing with:
[JavaScript Warning: "ReferenceError: reference to undefined property "headerMessageID"" {file: "resource:///modules/gloda/index_msg.js" line: 2923}]
That line is: query.headerMessageID.apply(query, aMessageIDs);
I had no joy trying to work out where this is supposed to be set but isn't (any more?).
Reporter | ||
Comment 53•7 years ago
|
||
This Gloda stuff is the weirdest thing. I dumped out the query
, and there are all sort of things, but no headerMessageID. I wonder how that ever worked. headerMessageID
has a getter in datamodel.js and that applies to a GlodaMessage object. No idea why that query
object that got created via let query = Gloda.newQuery(Gloda.NOUN_MESSAGE, {...
should have received that property.
Reporter | ||
Comment 54•7 years ago
|
||
What is more, .apply
is essentially a function call. headerMessageID
looks like a scalar value to me. query
at that point has many properties of type function, for example id
. So I changed it to query.id.apply(query, aMessageIDs);
and that runs past that line and then into problems since the correct query result is not returned.
Reporter | ||
Comment 55•7 years ago
|
||
OK, here's a try run with M-C at d305772af471766618393c01065556e739 and C-C at 5e2e2c63c2cd when things were still working with some debug:
Reporter | ||
Comment 56•7 years ago
|
||
That run didn't print anything, so here a new one with throw new Error();
at the end of one Gloda test. Let's see whether we get output this time:
Comment 57•7 years ago
|
||
Seems query.headerMessageID is undefined now.
It used to be
query.headerMessageID=function(...aArgs) {
let constraint = [GlodaDatastore.kConstraintIn, aAttrDef, ...aArgs];
this._constraints.push(constraint);
return this;
}
Reporter | ||
Comment 58•7 years ago
|
||
Yes, dumping out the object, there is no headerMessageID
property. Where did you get the "used to be" value from? Some older build? My try did show some output now, but still not what I wanted to see. So thanks!
Reporter | ||
Comment 59•7 years ago
|
||
OK, this is populated in
https://searchfox.org/comm-central/rev/738fdd7fcbeb646bbbad9f0ee69e7b1f35e41919/mailnews/db/gloda/modules/gloda.js#1526
and that's controlled by if (aSubjectNounDef.queryClass !== undefined) {
. So I bet that thing is now undefined and the query constraint isn't constructed any more.
Comment 60•7 years ago
|
||
That's from an older build I have around yes. I'll take a further look soon now. Gloda sure like abstractions.
Comment 61•7 years ago
|
||
Comment 62•7 years ago
|
||
https://searchfox.org/comm-central/source/mailnews/db/gloda/modules/public.js#24
In the new world we're importing public.js as Gloda in some places, and GlodaIndexer as well as GlodaMsgIndexer. But now, we're also setting those up (as var), later, like at https://searchfox.org/comm-central/source/mailnews/db/gloda/test/unit/resources/glodaTestHelper.js#93.
But that indexer wouldn't be set up properly, and not have the expected state/characteristics. This might be the root of the gloda issues.
Reporter | ||
Comment 63•7 years ago
|
||
Geoff has a few things going on try, sadly he didn't hand them over before disappearing into the night. I'll land one of them now.
Comment 64•7 years ago
|
||
Reporter | ||
Comment 65•7 years ago
|
||
Magnus, I browsed the patch before landing, so can you please also check whether something doesn't look right to you. The try run didn't appear to be better than one without the patch, in fact, worse with more tests failing, but I think the changes are still correct.
Unless more bustage came from the latest M-C merge, the X's should be green apart from bug 1524197.
Reporter | ||
Comment 66•7 years ago
|
||
OK, a heap of bustage will come from
https://searchfox.org/comm-central/search?q=ChromeUtils.import%28%22chrome%3A%2F%2Fmozmill%2Fcontent%2Fmodules&path=
So stuff like:
var mozmill = {};
ChromeUtils.import("chrome://mozmill/content/modules/mozmill.js", mozmill);
var controller = {};
ChromeUtils.import("chrome://mozmill/content/modules/controller.js", controller);
var elib = {};
ChromeUtils.import("chrome://mozmill/content/modules/elementslib.js", elib);
I think I'll fix these with some sed.
Comment 67•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #66)
OK, a heap of bustage will come from
https://searchfox.org/comm-central/search?q=ChromeUtils.import%28%22chrome%3A%2F%2Fmozmill%2Fcontent%2Fmodules&path=So stuff like:
var mozmill = {}; ChromeUtils.import("chrome://mozmill/content/modules/mozmill.js", mozmill); var controller = {}; ChromeUtils.import("chrome://mozmill/content/modules/controller.js", controller); var elib = {}; ChromeUtils.import("chrome://mozmill/content/modules/elementslib.js", elib);
I think I'll fix these with some sed.
Those should continue to work.
Reporter | ||
Comment 68•7 years ago
|
||
First part of the Mozmill patch, but apparently not needed.
Reporter | ||
Comment 69•7 years ago
|
||
Full MozMill patch. So according to Kris, this won't make any difference :-(
![]() |
||
Comment 70•7 years ago
|
||
Comment 71•7 years ago
|
||
Comment 72•7 years ago
|
||
![]() |
||
Comment 73•7 years ago
|
||
Fixes view source action and MAY fix mozmill/content-policy/test-view-source.js (I can't tell, it fails locally for unknown reason yet).
Comment 74•7 years ago
|
||
I believe this all has broken the feed subscribe dialog:
JavaScript error: chrome://messenger-newsblog/content/feed-subscriptions.js, line 651: ReferenceError: Feed is not defined
Reporter | ||
Updated•7 years ago
|
Comment 75•7 years ago
|
||
Reporter | ||
Comment 76•7 years ago
|
||
Thanks, Alta88, should be fixed now. So you dared to run TB in its current state ;-)
![]() |
||
Comment 77•7 years ago
|
||
Put back const imports in gloda files as those seem to actually be jsms just without proper file extension. So we agreed to use const in jsms and var imports elsewhere.
Try run:
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=f6a62eca5bbe09cbe54d014252f2f59d35ec35b2
Reporter | ||
Comment 78•7 years ago
|
||
![]() |
||
Comment 79•7 years ago
|
||
If you know which ones are unused, please remove them. Maybe eslint finds them for us one day.
Comment 80•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #76)
Thanks, Alta88, should be fixed now. So you dared to run TB in its current state ;-)
heh, pulled a bit too soon..
Comment 81•7 years ago
|
||
Comment 82•7 years ago
|
||
(In reply to Jorg K (GMT+1) from comment #65)
Magnus, I browsed the patch before landing, so can you please also check
whether something doesn't look right to you. The try run didn't appear to be
https://hg.mozilla.org/comm-central/rev/708ef5e44efd#l7.12 looks pretty weird. I'll do a patch for it.
Also the everybody.js file is funky, but maybe this didn't make things worse. I'd think the module loading into (formerly) global scope are unnecessary now https://hg.mozilla.org/comm-central/rev/708ef5e44efd#l9.52
Reporter | ||
Comment 83•7 years ago
|
||
(In reply to Pulsebot from comment #75)
https://hg.mozilla.org/comm-central/rev/63837a14a04d
Fix import for feed subscription. r+a=me DONTBUILD
I've checked manually and all the other import sites
https://searchfox.org/comm-central/search?q=ChromeUtils.import(%22resource%3A%2F%2F%2Fmodules%2FFeedUtils.jsm%22)%3B&case=false®exp=false&path=
only use FeedUtils. However, something is wrong in the linter, it should have seen me missing import in feed-subscriptions.js.
I'm closing this bug now, we can still land a follow-up for comment #82.
Comment 84•7 years ago
|
||
Comment 85•7 years ago
|
||
Use normal importing in glautocomp.js. LOG was unused, so let's not import it either. gloda xpcshell tests pass locally
Reporter | ||
Comment 86•7 years ago
|
||
Reporter | ||
Comment 87•7 years ago
|
||
Removed unneeded imports.
Comment 88•7 years ago
|
||
Assignee | ||
Comment 89•7 years ago
|
||
I'm guessing the four added "dump" lines in that last patch were unintentional?
Reporter | ||
Comment 90•7 years ago
|
||
Grrr, I saw those and forgot to mention them :-( - I'll fix it. Thanks for checking.
![]() |
||
Comment 91•7 years ago
|
||
Yes, sorry.
Comment 92•7 years ago
|
||
Assignee | ||
Comment 93•7 years ago
|
||
Assignee | ||
Comment 94•7 years ago
|
||
Fixed some more redefinitions.
https://hg.mozilla.org/comm-central/rev/c910db1352fb91160026e4b2dc1f3281fabf4040
Reporter | ||
Comment 95•6 years ago
|
||
We erroneously removed three dots here:
https://hg.mozilla.org/comm-central/rev/708ef5e44efd#l3.47
We'll add them back in bug 1497041 where we detected it.
![]() |
||
Comment 96•6 years ago
|
||
Strangely, there is no virtualFolderWrapper exported from virtualFolderWrapper.js and you get an error about it when opening virtual folder properties dialog.
Assignee | ||
Comment 97•6 years ago
|
||
Assignee | ||
Comment 98•6 years ago
|
||
I think perhaps it's time for a new bug when stuff like this is found.
Reporter | ||
Comment 99•6 years ago
|
||
Certainly when we move to TB 68.
Comment 100•6 years ago
|
||
Reporter | ||
Comment 101•6 years ago
|
||
Re. the suggested commit message: "remove non-existent virtualFolderWrapper reference"
Umm, the reference did exist, hence we removed it ;-)
Comment 102•6 years ago
|
||
I fixed my addon for this bug but still have the error
"Services.policies is undefined"
I fixed my own imports of modules including Services but this seems to be in ext-storage.js.
![]() |
||
Comment 103•6 years ago
|
||
I think policies do not exist in Thunderbird. Code using them should check if they exist, e.g. if (Services.policies && Services.policies.methodCall()). You can see examples of it at https://searchfox.org/comm-central/search?q=Services.policies+%26%26&case=false®exp=false&path= .
Comment 104•6 years ago
|
||
The code that caused this error was
Thisdomain = await browser.storage.managed.get("domain");
It worked until TB67 came out. Because it refers to Services it suggested to me that this was caused by the change in calling modules but I can't look at ext-storage.js.
This is not to do with whether policies should be there but how managed storage works.
Assignee | ||
Comment 105•6 years ago
|
||
I'm not sure why you're trying to use browser.storage.managed
in Thunderbird, but it doesn't work and isn't meant to work. And this is certainly the wrong bug for it.
Comment 106•6 years ago
|
||
It worked until this week. I don't see why it shouldn't work. It broke at exactly the same time that this bug broke my addon. Can you prove that everything in ext-storage.js was completely fixed in relation to the import of modules?
I originally wrote to maildev and was told by Magnus that I was refering to this bug.
Comment 107•6 years ago
|
||
The error you're seeing clearly has nothing to do with this bug.
Updated•6 years ago
|
Description
•