Reports of my demise have been greatly exaggerated

Mozilla just released Firefox 57; they’re calling it Firefox Quantum. It’s got some new stuff under the hood, but the big news that’s relevant here is that they’ve banned all of the addon APIs that have existed in Firefox and other Mozilla software for over a decade in favor of their new WebExtensions API (that’s based on Google Chrome’s extension API), and the transition is painful. Just looking at some of the most used Firefox addons, Adblock Plus (#1) and Easy Screenshot (#4) only released their rewrites a week before the deadline. (Adblock Plus got some features cut in its new version, as well) Video DownloadHelper (#3) released their revision a matter of hours into the Firefox 57 release day. NoScript (#5) is currently without a WebExtension version (as is Giorgio’s other popular addon, Flashgot (#20)), and Firebug (#6) has been been officially discontinued as of the Firefox 57 release. I see another 7 in the top 40 that aren’t compatible, for a total of 11 (including Flagfox). Most of the popular stuff has been rewritten for the new API, but most of the popular stuff has a team of developers, and are probably not doing this sitting on their couch.

I planned to have Flagfox 6.0 ready for release before Firefox 57 released and Mozilla commenced the add-on-apocalypse, but sadly, that didn’t happen. After many technical, personal, and health related delays, I made the time to work on rewriting Flagfox as a WebExtension, and whilst I was correct in my estimates on what part would be the hardest, I vastly underestimated how time consuming it would be. It’s hundreds of hours of work, and I do need to sleep, from time to time. I at least prioritized getting Flagfox 5.2 released a few weeks ago, which uses the WebExtension API for the preferences storage, if available, so at least when I do release the new update, people won’t lose their settings and saved actions. I only learned a week or so before releasing 5.2 that the WebExtension API has no method to import old data from “legacy” extensions, whatsoever. Any other addon that is in the same boat as me, but didn’t put out a hybrid-WebExtension release to port over their user storage, will end up with all of their users’ data getting lost without a way to fix it from within the addon (unless, of course, it’s an online service, in which case they’re lucky enough to not rely entirely on Firefox to not ditch their stuff). Oh, and while we’re on that subject, don’t uninstall any addon that’s using the WebExtension API for its preferences/data unless you’ve either backed up your stuff or want it gone. Firefox deletes your saved data from (hybrid-)WebExtension on uninstall without even telling you, let alone prompting.

As to one of the big technical delays:
<CSS rant>
I hate CSS with the passion of a thousand burning suns. It’s 20 years of crap piled upon crap; people make jokes about how awful it is for a reason, and they’re downplaying things. I had to rewrite the Flagfox options GUI in HTML in a tab instead of its original XUL, and my opinion of XUL is no longer nearly as low as it was before. Just putting together something with a box with dynamically generated stuff in it, and not having it fall off the bottom of the screen for no reason took a while. Fun fact: in CSS, you can use the “vh” unit to set something as a percentage of the vertical page height. Set it to 100vh… and it falls off the bottom and you have to scroll. Turns out it always counts in a potential horizontal scrollbar; there is no good fix that isn’t just fudging it. I could continue ranting about how setting a width/height to 100% doesn’t do anything unless you also set that on all of its containers, and also the html and body tags. Some sizing things don’t work unless you set a minimum, even if it’s zero. Only way I could get the secondary dialogs to not be cropped with scrollbars was to use an ancient JS hack to force resize them after creation; I can’t figure out how to properly do it with CSS, and neither can anyone else, it seems. Learning this crap is not only slow due to the fact that CSS seems to have been designed by an alien from non-euclidean space, but it’s such a mess that when you search for “how do I do ___ in CSS?”, you get a deluge of hits, all of which have many answers, many of which differ, and you could try them all and still not have it work. Reading the actual documentation isn’t that much better, seeing as there’s 20 years of crap in this sprawling mess of a spec.
</CSS rant>

I have got that working now, though. The new version may actually work better than the old, even if it might be a little ugly at the moment. I’m currently dealing with some async hell in getting the WebExtension APIs hooked up to do the actual backend work properly. It took a while to learn JS promises, but unlike CSS, I actually figured it out and understand it enough to properly use it, at least to the degree that I need to. Everything else I have left looks to be straightforward, even if it’ll take a while to learn each individual new API, because nothing is really simple anymore.

TL;DR: Flagfox doesn’t support Firefox 57 yet, but I’m working fairly steadily towards getting it ready. I think I may chose to go a bit slower, however, as sleeping every other night is not healthy. (that’s not a joke) Flagfox is a single developer hobby project, so having some patience would be greatly appreciated. If you wish to avoid the Firefox 57 update for the time being, you can just install Firefox 52 ESR (extended support release), which is the other version Mozilla puts out. It’s going to keep getting security and stability updates for another half a year or so, and “legacy” addons work with it still (if not better, as some new bugs crept in later versions that broke some things). It’s officially for “large organizations” who don’t like frequent feature changes and things breaking, but regular users who also want this can use it just fine.

Oh, and in case you’re wondering how Mozilla thought this was going to go, I figured out why they released a major redesign of the Mozilla Add-ons site very recently. You’ll notice that all addons’ pages no longer show the text of their reviews anymore. I’m pretty sure they knew damned well that there was going to be a lot of pissed users, even plenty for addons that did make the jump, because plenty of addons had to cut features to get things working with the new limited API. There’s plenty of other features Mozilla dropped from their site, as well, though at least for now you can switch back to the old version via a link hidden in the footer. A big one that annoys me and has no real workaround is that email notifications of reviews all say “none” for the message now, so if a user posts a bug report in a review and a moderator deletes it before I read it, I’ll never read it. (not that it matters at the moment) Oh, and their server was dead for this morning, which isn’t a great sign, either. I’d be posting (a link to) this on the Flagfox addon page if it weren’t for the fact that I’ve got 30-some-odd languages that I’d have to edit the text for, and the new version of their site dropped the developer comments section where I’d normally put this sort of stuff.

Anyway, this post is too long. The new version will be done eventually. I don’t need you to send me more messages like somehow I don’t know the situation. Please be patient, and try to treat other people on the Internet like people.

(comments disabled because I don’t have the time to deal with them right now, and I’ve already got enough communication channels to worry about)


One thought on “Reports of my demise have been greatly exaggerated

  1. Pingback: Posting status info to AMO is a pain | Flagfox

Comments are closed.