updated Sept 22, 2018: wow, talk about wreaking havoc… 10 month after v57 release the Firefox extension ecosystem is still in shambles. and the noose is getting tighter, because the last update of the last pre-Quantum ESR Firefox was in June 2018…

ok, so i got very lucky to spot the heads up on TheReg in time to dodge the “Quantum” bullet (by locking in the v56 version in the package managers on my main rigs). two releases later, most of my few, but vitally-important extensions still don’t support the latest Firefox, so, if i hadn’t done that, i would have been in a prolonged world of pain now1.

that said, it’s time to take the new foxy for a whirl, and thus time for a new tentative “how to unbreak a freshly installed Firefox to the point where it’s usable again” cheatsheet.

extensions

the bare minimum pre-vetted (by years of usage) set that still works despite the damage continuously inflicted on the poor thing by Moz:

  • Don’t track me Google - to prevent the preposterous links Google search generates. switched to this for now from Google search link fix due to size, permissions and simplicity, though both served me well for years on diff rigs.
  • uBlock Origin - a more mem/CPU-efficient AdBlockPlus replacement, nice custom user-made blocking features. fortunately it survived the “Quantum leap” (mwa-har-har-har) without a hitch.

on the experimental side, i’m still playing with those as damage control for the v57+ wreckage:

  • ScrollAnywhere - as a potential replacement for the legendary “scrollbar anywhere”. impression so far - ho-hum. it’s quite ok for short to medium length pages, but on long pages, in the majority of cases, the first movement appears to yank the page quite significantly, much more so than subsequent movements or than one’s muscle memory would expect/suggest (well, because it only happens in some cases, and only on long pages), making one lose one’s position in the text. besides, due to some [allegedly] Firefox limitations it outright doesn’t work at all in a number of cases:
    • blocked on some sites, like the AMO itself.
    • “view source” pages
    • other cases in which Firefox considers the window to be part of its “chrome”, e.g. the built-in PDF viewer. prolly will need to keep looking…
  • View Page Archive & Cache - as a likely replacement for “Open in Wayback Machine”. it’s a somewhat bulkier extension, supporting some dozen archives which i do not care for, but it gets the job done and it can be configured to show up just when one needs it to, even if that “one” is me (to wit: only on right-click on links, though it’s much more flexible than that).
  • To Google Translate - as now half the Go ecosystem speaks Chinese, it’s time to automate the process. this is probably the simplest translate extension out there with a considerable installed base, and no meaningful permissions requirements. all it does is allow you to select some text and open a google translate tab with the selected text already auto-translated. bingo!

tried and ruled out:

  • New Tab Override - tested in an attempt to compensate for the missing new tab related features of TMP. believe it or not, but it turns out that in plain vanilla Firefox there is no way to independently set at the same time:

    1. home page (what opens when you hit <ALT>+<HOME>)
    2. what is displayed when a new tab opens
    3. what is displayed when a new window opens

    in Firefox, #1 & #3 above are hardwired together, and there is no way to open a specified URL (e.g. home page) in #2 - either you get a blank tab or “Firefox Home” (the much maligned thingy with frecency selected previews of pages, search, etc.). i, on the other hand, want #2 & #3 to act the same, but for #1 to do something else, which, moreover, is not “Firefox Home”. how dare i!?!

    unfortunately, NTO is not the answer, as it only allows you to do just that: set a URL that will open in new tabs, which is irrelevant for me.

  • Wayback Machine - the official archive.org extension, tested in an attempt to replace “Open in Wayback Machine”. except it’s no good: if you right-click anywhere on a page (including on links, it doesn’t matter), it’ll offer to either save the page you’re already on to archive.org, or to show one of the archived versions of the page you’re already on. there is no option to open an archived version of a page link to which you right-clicked on. WM was designed for the good old web of yore where the servers just replied with HTTP errors, like 404, when the page was no longer available. but today, the clever web devs just through funny looking mascot pictures at you instead, or go for immediate silent redirects (especially if the domain changed hands), and WM can’t handle that. so you’re SOL, because the only thing you can right-click on - is the wrong URL. and you’re back to manually copy-pasting links to the Wayback machine…

  • ClearURLs and Neat URL - originally appeared to be in the same vein as “Don’t Track Me Google” / “Google search link fix”, but apparently fully customizable. unfortunately, while doing their bit to save the mankind by scrubbing Google Analytics params from URLs all over the web, they do bugger all for Google search results, and so are irrelevant.

still no proper substitute, a major PITA:

  • TMP - in retrospect, it turns out that TMP protected me for years from a slew of questionable Firefox UI changes that i wasn’t even aware of. now that it’s still MIA, i’m sorely missing:
    • proper tab switching order on <CTRL>+<TAB>: the stock left/right is just daft (that’s what <CTRL>+<PgUp>/<PgDn> are for!), and runs totally counter to any OS <ALT>+<TAB> muscle memory habits. a partial workaround is to set browser.ctrlTab.previews, which, if you hit the <CTRL>+<TAB> combo and release the <CTRL> very quickly, will do just that. but woe unto you if you linger (50msec? 100msec?), because then Firefox will spring a huge pop-up in the middle of the screen with previews of… er… six tabs for you to choose from. “but dude! i had, like, twenty tabs open!” well, too bad, because the maximum approved number of tabs to use per window is six, apparently! duh!
    • protect tab
    • lock tab
    • separate setting of new tab vs home URL actions
    • move the tab bar where i please
    • customize tab appearances (new/unread/reloaded)
    • specify where the new tabs should open
    • ability to modify right-click-on-tab menu entries (esp. disable the useless ones)
  • Open in Wayback Machine - maybe “View Page Archive & Cache” can swing it, we’ll see.

some new things i bumped into while looking for a TMP alternative (though they turned out to be of no help in that particular respect, unfortunately):

  • Firefox Multi-Account Containers - an official Mozilla thing, apparently. in fact, it looks like the functionality is permanently baked into Firefox, the extension merely seems to surface the UI representation for it. all the tracking/session/cookies data are shared with other tabs “within” the same “container” (no relation to linux containers, BTW), but not with tabs opened “inside” other “containers” or outside any “container” at all. handy as an alternative to private browsing for being simultaneously logged into sites with 2 diff accounts2, e.g. home+work, or comparing how the same page looks as an owner/creator/logged in and a non-logged in/3rd party website user.
  • Auto Tab Discard - another new bit of core Firefox functionality, tab “discarding” was introduced in v58 as part of the me-too WebExtensions API support effort (and, presumably, part of the effort to deal with the ever growing memory appetites of Firefox itself and the JS-packed modern web pages it’s trying to render).

    ATD merely triggers discard based on some simple heuristics, and so far it seems ok, with some unpleasant edge cases. when it discards the pages, you do have the tab left in the Firefox “chrome” (with a tiny, almost invisible grey dot superimposed over the favicon), but the rendered page contents are discarded and the page will get fully reloaded when you switch back to that tab.

    which means that any client-side state transitions you’ve made on that page beforehand that were not yet communicated back to the server side or reflected in the URL are more or less gone, e.g.:

    • pretty much anything done browser-side in JS: folding/sliding/whatever other layout changes it’s popular to make JS-only these days
    • character encoding reverts back to default

    you can play with ATD’s config a bit to prevent discarding in some cases, e.g. whitelist some domains or disable discarding of tabs with changes entered into forms. the latter, unfortunately, appears to be not very effective on a WWW where every page is a completely non-standard jumble of custom/framework JS that re-implements every single W3C feature in an undetectable and incompatible fashion3

config/prefs

custom user prefs to be fed in via about:config (or put in through $PROFILE_DIR/user.js):

    // to minimize some of the crazy choices of which lang to display pages in
    // while traveling. doesn't help much with Google, unfortunately...
    browser.search.countryCode                  GB
    browser.search.region                       GB
    distribution.searchplugins.defaultLocale    en-GB
    general.useragent.locale                    en-GB
    
    browser.tabs.tabMinWidth                    120
    
    // see tab switching order note under TMP above: you just need to be
    // nimble and quick...
    browser.ctrlTab.previews                    true

    // now, this one, I THINK disables the dropdown thing as a whole (read:
    // nuclear option), but for now i'm hesitant to go that far: having
    // suggestions from bookmarks provides a quick way of going places -
    // several keystrokes to narrow down the list, then <DOWN>+<ENTER>...
    //browser.urlbar.autocomplete.enabled
    //
    // they really went to town with cramming of intrusive useless distractions
    // into the urlbar in recent releases!
    browser.urlbar.suggest.history              false
    browser.urlbar.suggest.searches             false
    browser.search.suggest.enabled              false
    browser.urlbar.matchBuckets                 "general:5,suggestion:Infinity"
    browser.urlbar.placeholderName              "Google"
    // including just forcibly autocompleting random domains from history.
    // except, you see, urlbar is also my bloody SEARCH BAR and i want to
    // search for shit with it, not randomly go to websites i visited a year
    // ago just because i wanted to search for a substring of their URL!
    browser.urlbar.autoFill                     false
    // that bloody search engines thing that pops down when typing in urlbar
    browser.urlbar.oneOffSearches               false
    // oh dear...
    browser.urlbar.speculativeConnect.enabled   false
    // delay before urlbar starts suggesting completions - once the sources
    // are pared down to just bookmarks & tabs it can be shorter, e.g. 100-150
    browser.urlbar.delay                        150
    // more post-modern nonsense
    browser.urlbar.trimURLs                     false
    
    // 500ms is enough to prevent accidental <ENTER> landing in the file
    // download or extension install popup, considering reduding it further
    security.dialog_enable_delay                500
    
    // how these kind folks manage reconcile the 'privacy' drivel with features
    // like blind prefetching of random web pages and DNS records is beyond me
    network.http.speculative-parallel-limit     0
    network.dns.disablePrefetch                 true
    network.predictor.cleaned-up                true
    network.predictor.enabled                   false
    network.prefetch-next                       false
    
    // and i don't trust them either
    datareporting.policy.dataSubmissionEnabled  false
    datareporting.healthreport.uploadEnabled    false
    
    // don't even ask me about location/popups!
    permissions.default.desktop-notification    2
    permissions.default.geo                     2
    
    media.getusermedia.screensharing.enabled    false

  1. naturally, lots of people are whining about the loss of tweakability in Firefox, the inability to “turn off” the jarring UI innovations, Firefox copying the worst traits of Chrome, etc. so, while googling in an attempt to disable some of the new abominations though about:config, i’ve spotted the following gem from one of the devs. it was in a bugzilla ticket opened by a user despairing over the aggressively intrusive and counter-productive changes to one of the core UI bits in the recent Firefox releases. i’m paraphrasing, obviously, but this was the gist of the argument:

    we worked long and hard on this thing, therefore it’s brilliant and terrific. and if you, the unwashed masses, are incapable of grasping just how marvellous the fruit of our labours is - that’s ok, it’s your problem. because we are very happy with the results, and you’ll just have to live with them now.

    <sigh> is it time for some new bunch of young turks to pull a Firefox on Firefox?

    [return]
  2. i can already imagine Google at al. sweating big data to link apparently “independent” account sessions… purely for AdSomethingOrOther, you understand, nothing creepy whatsoever, not at all!

    [return]
  3. i’m pretty sure this is exactly the future TimBL was hoping for back in the day (q.v. axioms )

    [return]