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.


Posting status info to AMO is a pain

The Flagfox 6.0 update to support Firefox 57 (prior post here) is still slowly being worked on, though it’s going much slower now due to bad luck and timing, as I’ve gotten rather sick. It’s not that serious; I’m not dying, or anything, but I’m coughing horribly, sleeping badly, and am a bit lightheaded in addition to just feeling like crap. (The person I caught this from is still sick, as well, so I don’t know when this will be out of my system.) This is not conducive to programming well, let alone quickly, in an alien API, often having to deal with some really stupid junk that I’ll be reporting to Mozilla via bug reports after all this is done. Again, just to reiterate, I am the only Flagfox developer and this is a hobby project.

Anyway, it’s time for me to post another explanation of a problem caused by a recent stupid Mozilla decision:

If you’re wondering why I hadn’t put up any Firefox 57 support status update message on Flagfox’s page on the Mozilla Add-ons site until today, it’s because doing so is shockingly difficult, especially as of Mozilla’s latest revision of the website. (it’s crap in a variety of ways, but this one is particularly annoying) Previously, there was a “Developer’s Comments” section in addition to the “Add-on Description” section (currently labeled “About this extension”) where I could put updates like this, though at some point they started hiding it by default, which was annoying. Now it’s gone completely. I still seem to have it available to configure in my settings, but it doesn’t actually show on the page, even with all the stupid dead-space below the mostly hidden by default description (again, there’s a lot of dumb in their recent site refresh). My guess is some Mozilla web developer thought it was pointlessly redundant, however it’s most definitely not. Updating the addon description requires editing each and every one of the dozens of Flagfox description translations into many of the various languages supported by Flagfox. Updating the developer’s comments, on the other hand, was simple; there was only English, shown to everyone (if you can’t read it, that’s a problem, but at least it’s there and you can see it, and maybe attempt automatic translation, potentially using Google Translate via the built in Flagfox action…). There is no mass-edit/change/upload feature for Mozilla Add-on’s listing data, though it has of course been requested by many addon developers over many years. (unless there’s some secret way to do it they’ve added at some point and not told anyone about) As a result, the simple logistics of me putting a message on that site that can actually be read by more than a quarter or so of the Flagfox userbase required me to slowly go through the menu of listed translations and delete each description (there isn’t even a delete button; I have to click “edit”, then select all, then hit delete, then save), one by one, until just the English one remains for me to edit and show to all. This is stupid, but sadly, the least stupid thing I’ve had to deal with during this transition to Firefox 57.

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)

Flagfox 5.1 released

Flagfox 5.1 is now released and available for download and update. Major changes include a switch to HTTPS for the main default actions (most others were already HTTPS), a greatly reduced installer/update size, and support for Firefox Reader Mode.

Mozilla is now signing all addons hosted on their site, but the code signer unfortunately has horrible ZIP compression for its XPI repacker, so it bloated up the prior versions’ file sizes by around 20%. The optimizations in this update compensate for that, though Mozilla has said that they would like to fix their general issue eventually as well.

Full changelog for this update:

  • IPv4 & IPv6 address location database updates for June 2015
  • IPDB files now encoded in a new compressed format, saving space & some memory
  • Locale files now JARed for better compression & simpler code sign verification
  • Updated Geotool and Whois actions to HTTPS (default flag click & middle-click)
  • Added support for Firefox 38+ Reader Mode
  • Minor flag icon set updates
  • Switched to newer “drop” event naming to maintain compatibility
  • Dropped support for Gecko 17-23 based browsers
    -> This Flagfox version supports Firefox 24+ and SeaMonkey 2.21+
    -> Recommended minimum version is Firefox 38+

Flagfox now requires a minimum of Firefox 24, however Firefox 38 or later is highly recommended. (download current Firefox here or ESR here) Current development versions are also supported.

Flagfox 5.0.6 update released

I have posted Flagfox 5.0.6 to Mozilla Add-ons. After a Mozilla editor signs off, the update will be available to all users, however you can download it before then via the all versions page.

Changelog for this month’s update:

  • IPv4 & IPv6 address location database updates for August 2014
  • Added e10s support for JS actions and improved form field handling
  • Significantly reduced usage of CPOWs under e10s (none on page load now)
  • Multiprocess Firefox now fully supported (new install.rdf flag set to true)

Continue reading

Flagfox 5.0.4 update released

I have posted Flagfox 5.0.4 to Mozilla Add-ons. After a Mozilla editor signs off, the update will be available to all users, however you can download it before then via the all versions page.

Changelog for this month’s update:

  • IPv4 & IPv6 address location database updates for June 2014
  • Flag icon updates
  • Added support for form field actions under e10s
  • Updated TLD mismatch warning country code whitelist
  • Updated Validate.nu action to use new URL (old is down)
  • Minor startup improvements

Continue reading