Mozilla seems to finally be getting around to implementing WebExtension APIs that they should’ve had working half a year before setting the ecosystem on fire and banning old APIs. Firefox 60 is looking to be closer to what Firefox 57 should’ve been. It’ll even be an ESR. Of important note, two very important APIs have finally been added:
- Dynamic keyboard shortcuts – The WebExt API only allowed for static keyboard shortcuts to be specified in the addon’s built-in manifest file. Flagfox 6.0 just has a greyed-out hotkey input field in its action customization dialog, complete with the text “No Firefox 57+ support”, because this was so pathetic that I didn’t even want to hide it. All I could have was an unchangeable built-in shortcut for Geotool. I will now be able to re-implement keyboard shortcuts properly. Note that if you had custom keyboard shortcuts previously, Flagfox 6.0 doesn’t show them (because they can’t work), but they’re still saved and I should be able to revive them in Flagfox 6.1.
- An actual DNS API – The WebExt API only provided IP addresses for uncached web requests on domains not accessed recently, and they’re only available if an addon is actively listening for them. Someone filed a bug report about web requests having blank IPs for previously seen domains around 7 months ago, but it has been largely ignored (and this change doesn’t fix that). This resulted in an inordinate number of problems and I had to write my own caching system to handle this. It’s not ideal, and I still haven’t finished improving it to handle all use-cases, as it’s a freakin’ headache. Caching things isn’t that hard; properly clearing those cached things when no longer needed, thus not creating an endless memory leak, is another matter. This was a pain to debug and the inability to get cached IPs from Firefox meant first-startup couldn’t show flags yet. Now that they finally added an API similar to what all older versions of Flagfox used, I can actually change things to be reliable again, work fully on first install/startup, and not occasionally forget flags when Firefox’s cache doesn’t agree with my cache that something was obsolete. It’s about damn time.
I’ve also seen some stuff indicating other improvements I may be able to use, but I’m not sure exactly what Firefox version they land in. The two above are the very clear big important ones, however.
Unfortunately, Mozilla killed the addon beta channel as part of their apparent quest to make developing addons more cumbersome, so doing an alpha/beta test will be a bit of a pain, this time around. I’ll look into things further and post something here at some point. ETA TBD.