Friday, March 12, 2021

TenFourFox FPR31b1 available (now with site-specific user agent UI and Auto Reader View)

TenFourFox Feature Parity Release 31 beta 1 is now available (downloads, hashes, release notes). I didn't get everything done here that I wanted to, though thanks to Chris T I do have a reproducing local test version of the infamous issue 621; at least I am able now to see that it's clearly a problem in the JavaScript parser generating something incorrectly, but I'm still not able to tell where the specific deficiency lies.

However, there's still new stuff in this release. Olga T Park contributed a backport from later Firefox versions to fix saving passwords in private browsing, and I also finished fully exposing support for site specific user agents. This was quietly reimplemented in FPR17 for interested users, but now that it's getting more and more necessary on more and more sites, I have made the feature a visible and supported part of the browser interface. Instead of having to enter sites and strings manually into about:config, though you still can, you can now go to the TenFourFox preference pane,

and click the new "Site Specific" button under User Agent. A new dialogue box will open.
Site-specific user agents in use appear in the bottom half of the window with domain and user agent strings. You can enter anything you want for a user agent string, as shown, or you can pick a pre-defined one to fill the box from the dropdown (the same ones you would be offered for the global user agent option, which remains supported as well). In this example I've chosen a random "what's my user agent" domain and assigned the Classilla string to it. We click Save Changes and try it out:
Ta-daa. As before, having site-specific user agent strings does slightly slow the browser down, though most of the penalty is paid on the first and not so much on additional strings you enter. Our implementation has no penalty if you have no site-specific user agents loaded and this remains the default. For sites that are unspecified, obviously the global user agent option still applies. If you have a user-agent add-on already installed, you can still use it, but it may have interactions if you try to use this feature at the same time and you're on your own if you do.

I was also planning to do a Reader View update for this release, which will need a user interface of its own, but every new UI feature requires additional locale strings and I wanted to give our localizers (led by Chris) a chance to catch up on the new strings in time for the final release on March 22. However, I do have a not-yet-exposed feature's plumbing done, which is another enhancement to Reader View: auto Reader View.

Auto Reader View is different from sticky Reader View, which has been the default since FPR27. Sticky Reader View means that when you go into Reader View, links you click on also load in Reader View, until you quit it by clicking one of the exit buttons. Auto Reader View, however, allows you to tell the browser to automatically open pages from a domain in Reader View as soon as you click on any link to that domain from any page, in Reader View or not. Since front pages may not work as well, you can specify to do this just for "subpages" or for all pages.

An example is the Los Angeles Times, which is more or less my semi-local newspaper here in Southern California. Its article pages have a lot of irritating popup divs, so go into about:config, create a new string preference called and set it to the single letter s (for subpages; for all pages, use y for, um, "yes"). Now, visit the L.A. Times front page. It renders in the normal browser view, but if you click on any article, it immediately shifts to Reader View. Click the back button and you're back on the front page. If you decide you do want to see the article as intended, just click the Reader View icon in the address bar as usual, and the article will render in "full" form; links to subpages you click on from there will go back to Reader View.

As I've said many times, I think Reader View is an important way of making sites render faster and more usefully, especially on G3 and low-end G4 systems. It also cuts out a lot of crap, meaning it's back to only the columnists annoying me in the L.A. Times and not the popups. For FPR32 I will be updating the internal Reader View to the current version of Readability.js, adding a preference pane UI similar to site-specific user agents, and maybe also adding the current Firefox feature allowing you to adjust the gutter margins wider or narrower. But for now you can experiment with the feature and let me know how functional or useful it is to you. FPR31 final comes out on or around March 22, parallel with Firefox 78.9 and 87.


  1. [ChrisT] Translations needed at

  2. [ChrisT] Locale installers: We have translations ready for French and German. Looking at the download statistics, this covers >50% of the user base for localized versions, but other languages are still missing. I'll make the installers this weekend (Mar 20/21) to have them ready for the release of FPR 31 final. Localizations without updated translations will display the new UI parts in English, but will be functional otherwise.

    Reader view: There seem to be many people who are fond of it, but I'm not really one of them. I think reader view strips away too much of the content and the look-and-feel of a website. If a website is too heavy for my system or too cluttered, I usually trim it down by disabling javascript and/or creating a few adblock rules. What's more, reader view doesn't help much with interactive social media sites or shopping sites. I can see, though, how it might be useful at American or British newspaper sites because they really overdo it with the distracting non-content.

  3. I could also do Italian translation but I'm wondering if it's really needed, as Italians use a lot of English words when dealing with computer things... "User-Agent", for example is not translated.
    I'll see what I can do.


Due to an increased frequency of spam, comments are now subject to moderation.