Everything is on fire, but at least it’s not my fault

Mozilla screwed up and failed to renew the code signing certificate used for addons, resulting in mass-disabling virtually all addons for everyone. Yay. Even lightweight themes are affected, somehow, and they’re just glorified PNGs. Exactly one of the addons I have installed survived the armagadd-on, which is literally what Mozilla is naming it internally. Flagfox is in the very long list of the affected. Someone from Mozilla even linked to one of their forums on Twitter and Mozilla’s server was overloaded, so yeah… they’ve got some problems at the moment.

The only thing I can think of to attempt to work around things on my end would be to rush out an update just to resign, in the hopes that they have a new cert online and it’s just old versions that have expired. However, I don’t actually know if that’d help, and due to the sheer scale of the breakage here, I think it’s best I touch nothing for the moment. Everyone’s affected, so Mozilla is going to have to come up with a fix for everyone, one way or another, hopefully ASAP.

Update 1:
Mozilla released Firefox 66.0.4 and 60.6.2 (ESR) updates which should fix the majority of this issue. Please update.
(update instructions; more info from Mozilla)

Update 2:
Mozilla released another pair of updates, now Firefox 66.0.5 and 60.6.3 (ESR), which should fix things more reliably. Apparently some antivirus programs could break things (as they often do) and very old master passwords could cause issues. In any case, it’s fixed again, for realzies this time.

When did Mozilla get this bad?

For the past week I’ve been damn near incapacitated by whatever bacteria took up residence in my body, though the antibiotics seem to have worked. I haven’t been stuck in the bed all the time, but I have been so out-of-it that I had trouble reading something I’d code ten minutes earlier. Anyway, long story short, with Mozilla’s Firefox 57 update, I thought it’d take dozens of hours to rewrite things to get Flagfox working under it, but it’s taking hundreds of hours, and that’s before the lightheadedness. I gauged my estimate based on the last time I rewrote things for a major overhaul on their part (no, not addon SDK; I was able to skip that; the one before that), and wow, we’re not on the same scale here. I’ll get something released eventually, but the illness delay hurt in more ways than one. That’s not why I decided to post something here again, nor why I’m leaving comments on this time.

I have a question: When did Mozilla get this bad? I know when they made the decision to do all of this, but what I’m talking about specifically is what I just discovered today. Apparently, if you’ve got Firefox 57 updated on your primary profile with legacy addons installed (something I obviously avoided), not only are all the “legacy” addons hidden in a separate new menu in the addon manager, but they’ve only got two buttons shown for them: “Remove” and “Find a Replacement”. Click on that rather insulting button, and it takes you directly to what seems to be a human-chosen replacement (seems to look up just by legacy addon’s ID). The designated replacement for Flagfox seems to be Country Flag +, which shows a flag for the given IP with a tooltip with basic info, and when you click on it it shows a big flag and a popup with that basic info shown more pretty, and a vague (especially if in US) Google Map for the location. Oh, and when it points at Oklahoma for every website in the US, it gives you latitude and longitude for the useless map marker. The one thing you can actually do with this thing is click a little button in the lower left of the popup to do a lookup with Alexa for the site info. That’s it. This is a toy; somebody at Mozilla was told to just find a replacement for all addons that didn’t jump through all of their hoops fast enough, and this is what they came up with. Granted, it’s better than picking an alternative that tracks/sends all your browsing data somewhere or asks to download binaries to work better (those were actual existing options). Instead, it’s the toy that shows a flag and a bigger flag, yet somehow is 5 times the file size of Flagfox even though I also managed to include full translations into 36 other languages, including every name of every country on the planet (79 people have worked on these translations, over the years).

I got an email or two reaching out from Mozilla on the topic of porting, months ago and again last month, but I got no indication of the scale of things here. I knew this was going to be annoying and piss a lot of people off, but I didn’t suspect every person I talk to to say they hate Firefox 57, before talking about addons. I didn’t expect Mozilla to change their addons site to hide reviews by default, or decide all I’ve been doing for 10 years was making a thing to show a pretty picture of a flag and promote that as my replacement like I’ve died.

I used to be an active triager for Firefox bugs on Mozilla’s Bugzilla. The stats is has for me are: 470 bugs filed, 3084 bugs commented on, 4011 bugs poked (no clue what this specifically means), and 1079 bugs where I changed the status to resolved (fixed, verified, invalid, but for some reason the stat doesn’t show duplicate marking). There was a time when I was actively investigating crash reports as they were reported to Bugzilla, and I even wrote an entire addon to help with things by trying to auto-diagnose crash reports that got a few thousand users (but that addon has long since been obsolete and discontinued). I haven’t gotten involved with bugs or support requests in a few years now, so I’ve been apparently out of the loop when it comes to the way Mozilla deals with people. I knew enough that when I filed a bug about the bug in Firefox that was causing script cache problems breaking Flagfox 5.x (and probably some other addons) in the months prior to Firefox 57, I wasn’t completely astounded when they immediately WONTFIXed it, but I was take-aback by the lack of even trying to investigate if maybe it affected them and not just addons that were going to be unsupported by Firefox soon.

So, here we are. We’ve gone from Mozilla accepting my latest update to Flagfox 5.2.x on November 9, and then 5 days later on November 14, Firefox 57 gets released and I’m dead to them. Look, I’m not going to act like the fact that I haven’t been able to get a compatible version out yet is all their fault, but I didn’t realize they’d end up being, well, mean about it. Maybe from their perspective the “real” deadline to rewrite was passed once they started putting that “legacy” label on things everywhere (don’t even remember when I first noticed that). I decided to pick a month to spend free time rewriting things, but apparently it was implicit that I should’ve started 3 months prior and devoted every waking hour to not only rewriting things from scratch, but fixing Mozilla’s problems in these APIs.

I knew Mozilla had some severe problems high up ever since the Eich CEO fiasco that everyone other than them could see coming a mile away, and I know that some of the stuff that they do that ticks people off is due to sheer lack of resources and personnel to work on things, but I feel like something changed somewhere that I just didn’t see. I don’t ask rhetorical questions; does anyone know what changed and when that got them to this point? Or, were they always on this path and just never had a way to step out of it? They somehow managed to release the new Firefox Quantum to everyone and the first thing my mother said when she got the update is that she hated it, as it got rid of her bookmarks button and search bar, and changed her homepage to that new tab page that has ads in it, and has those weird spaces in the toolbar around the address bar (who thought that was a good idea? probably someone with a way bigger screen resolution). She basically thought it was unusable until I got to it to change the settings to something she could live with. I’m accustomed to clusterfucks in the tech world, but I’m only now beginning to realize how badly things have gotten.

Bottom line of this rambling: I used to think I was part of the Mozilla community. I have a Firefox logo mug I won for a guesstimate on when Bugzilla would hit some bug number milestone (I think the contest was discontinued after it hit a million). I’ve got multiple Firefox T-shirts that I have never worn that Mozilla kept sending me for various reasons. However, at this point, I now consider myself just a person who writes an addon that will hopefully work in Firefox again in the not-too-distant future. I’m just another user of Firefox and Thunderbird, and I’m apparently just as confused as everyone else as to what happened.

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)

Understanding the Mozilla CEO mess

Disclaimers:

This is a revision of a post I put up a few days ago. Events changed, so I felt the need to take the previous version down. My apologies to those who wanted to read it that hit a 404. (I didn’t know it had been linked to by someone other than myself yet) I wanted to avoid looking like I was more a part of the debate than I am, so even with the updates I added, I felt the need to redo things a bit here.

This is going to be a bit of an off-topic post to many of the few readers I have on this blog. If you aren’t already aware of the firestorm at the selection of Brenden Eich as the new Mozilla CEO, then you might not be my target audience for this post. I suggest going off to Youtube and watching some funny videos, as it might be more productive for you than reading this. This issue is a god forsaken mess, so be prepared for a little rant.
Continue reading