This is going to be a bit of a ramble. If you're interested: great!
It's just a bunch of stuff that might be of interest to you if you use Firefox, and it's too much to tweet in a giant thread. So here we are.
The long haul
I'm pretty sure that I've been using Firefox since it was first released, back in 2002 — since it was hailed as the brave new lean and super-fast thing that came after Netscape Navigator, and then Mozilla, and then along came Firefox, to counteract Mozilla's perceived bloat. When it comes to my main development machine (which used to be Linux, now Mac OSX), I've used Firefox continuously and almost exclusively since then, with just occasional forays into Chrome or Safari or Opera, and then back to Firefox.
So over the years I've seen a few changes, got used to how things work, developed my way of using the browser, which add-ons and settings I like, and so forth.
And it's easy go get into a habit with that, and never really step back and look at what you're doing … until something makes you do so. Like a data-loss hardware failure, or a major shift in the browser itself.
The changing world
Enter “Web Extensions”, a change in the way that Firefox extensions work. This landed with Firefox version 55, and the big challenge is that from version 57 (scheduled for November 2017) onwards, older extensions — ones that aren't written using the Web Extension mechanism — will be disabled. No longer work. Kaput, dead, gone, no more.
Exciting, huh? 😬
You can tell which extensions (of the ones you have installed) are going to suffer this fate, because from Firefox 55, non-WebExt add-ons are marked as “Legacy” in about:addons. More about that.
So, this seems like a good opportunity for me to take a look at what add-ons I'm using, whether I really need each one, and if so, how I might be able to continue to get the functionality I need in a post-FF-57 world.
Multi-process
But wait: there's one more thing. Last night with I was reading about Multi-Process Firefox, how it's good for performance and stability and security. And yes, this sounds like a very good thing indeed. But here's the rub: for now, Firefox (or is it each FF window?) can operate either in single-process, or multi-process mode. Single-process bad, multi-process good. And you can tell which is which by looking at about:support, under “Application Basics”, look for the “Multiprocess Windows” bit. Mine said: 0/1 (Disabled by add-ons). 🙁
There doesn't appear to be a way of seeing which add-ons are doing the disabling, so as far as I could tell, it was a matter of working through the add-ons I had, disabling and enabling things until I found a minimal set of things to disable that got me the magic words, “Multiprocess Windows 1/1 (Enabled by default)”. \ø/
Add-ons
So which add-ons was I using before, and how did they fare? Do I still even need them?
An incomplete list, roughly categorised:
For security and privacy: NoScript, RequestPolicy Continued, CookieCuller, LastPass
For development: Web Developer, RestClient, Firebug, Markdown Viewer.
General: Multifox, TabMixPlus, Stylish, Popup ALT Attribute, GreaseMonkey, Flash Video Downloader.
NoScript
Essential, IMO. Thankfully despite being a “legacy” add-on, it still works, and doesn't cause FF to go to single-process mode. I'm not sure but I think the FF developers may have whitelisted this specific add-on.
RequestPolicy Continued
I used this one to block third-party requests as a way of improving performance and privacy (e.g. prevent a site from loading ads from a third-party). Trouble is, an awful lot of the modern web does use third-party requests (CDNs, separate domains for “static” or “media” resources, etc). I'd set this add-on to block by default, which meant that it defaulted to “safe”, i.e. “massively inconvenient”.
I haven't really found an up-to-date alternative for this add-on yet, but given that it was very inconvenient for questionable benefit anyway, I've just gone without this “functionality” for now. Maybe Privacy Badger?
CookieCuller
Deletes non-whitelisted cookies on browser startup. I've switched to Cookie Auto-Delete instead. It seems to work well: enable “Active Mode” in the preferences (as far as I can tell the add-on is completely dormant without this). In fact it's probably better than CookieCuller anyway, since it deletes cookies when tabs are closed, rather than when the browser is restarted; and since I quite rarely restart my browser, CookieCuller didn't often get to do its job, whereas hopefully Cookie Auto-Delete will.
LastPass
Legacy, but still works. Good.
Web Developer
Turns out I never actually used any of the functionality of this add-on. Zap, gone.
RestClient
I'm trying out RESTED. As long as it can do GET/POST/PUT/DELETE, with custom headers (mainly Content-Type), and can handle X509 client certificate authentication, we'll get along just fine.
Firebug
Still works, even though it's legacy, and marked as “not compatible with your version of Firefox”. Hmm.
Markdown Viewer
I used this to preview local markdown files before I pushed them to github. I haven't found a replacement for this yet 🙁 . But, I very rarely need this functionality, and it's not exactly a show-stopper for me not to have this, so whatever. Disabled.
Multifox
I did briefly use this add-on, but then disabled it again. And now it seems to have been pulled from addons.mozilla.org. Basically, the functionality it aimed to provide was to allow each tab to have its own space of cookies, authentication, etc. — so for example you could open three different tabs and log into three different accounts on the same web site.
Turns out, this is a lot simpler these days: more on this later.
TabMixPlus
Every now and then I experiment with “improved” tab managers. I never quite get on with any of them, I find. In the past I have occasionally used TabMixPlus; right now, I'm trying out TreeTabs. meh.
Stylish
Write your own custom CSS for various sites, or install custom CSS that others have written and shared via userstyles.org. Except these days that site seems to be a lot more geared towards “skinning” (“Facebook, but with Lionel Messi in the background”. I kid you not), and less towards what I'm after, which is UI tweaks, overriding things for improved accessibility, ad suppression, and so forth.
I've installed Custom Style Script but haven't started using it yet. Instead, I'm experimenting with doing without this functionality. I'll be interested to see how much I miss it.
Popup ALT Attribute
Good for accessibility awareness. Still works.
GreaseMonkey
Almost essential. Still works for now, even though it's “legacy”. Will have to keep a close eye on this one.
Flash Video Downloader
Sorry, YouTube.
userContext
But back to MultiFox. The use case, remember, was to be able to log into the same site more than once in the same browser (well, more than twice, in fact: you could sort of do two already: one in a main window, one in a “Private” window. But only two). But MultiFox used to be somewhat clunky and unreliable, and it always seemed daft that FF didn't natively support something like this.
Thankfully, it seems that it now does. But it's not enabled by default. Also, it's experimental.
Enter Containers aka contextual identities aka userContext (as I understand it). As far as I can tell it's built into Firefox, but hidden. But you can enable it: go to “about:config” and enable both privacy.userContext.enabled and privacy.userContext.ui.enabled.
This gives you a new preference section (Preferences > Privacy > Container Tabs), and a new menu entry (File > New Container Tab). But for a bit more slickness — new containers on the fly, what I really want — I'm trying out Containers On The Go, which seems to work well so far.
et voilà
So there we have it: check about:support for “Multiprocess windows” (multi-process is good); if it says “disabled by add-ons”, disable add-ons until you work out which ones are getting in the way. Enable privacy.userContext.ui.enabled then play with containers. Wheeee!