Today Mozilla launched Firefox 90. The latest version of Mozilla’s increasingly privacy-oriented browser adds improved print to PDF functionality, individual exceptions to HTTPS-only mode, an about:third party page to help identify compatibility issues that are introduced by third-party applications and a new SmartBlock feature that increases protection against cross-site tracking and ensures that site logins still work.
There is also a new background updater for Windows, which allows a small background application to check, download and install Firefox updates while the browser is idle.
The latest version of Mozilla’s built-in SmartBlock privacy feature makes it easier for users to maintain their tracking security settings without breaking individual websites. The updated version seems to focus primarily on Facebook login, which is increasingly being used on the web as a third-party authentication and login tool.
Firefox blocks Facebook scripts by default, because Mozilla partner Disconnect (correctly) identifies Facebook domains on the list of known third-party trackers. Unfortunately, blocking Facebook scripts also meant breaking third-party Facebook logins, for example the Facebook login feature found on etsy.com.
SmartBlock 2.0 disables Facebook scripts on third-party sites just like before, but when the user clicks the “Continue with Facebook” option, that specific, intentional user interaction with the Facebook script causes SmartBlock 2.0 to unblock. The unblocking happens just in time for the Facebook authentication login to succeed – without the user having to enter their tracking security settings.
Mozilla’s internal statistics show significant speed improvements in 2021 – last month’s Firefox 89 is 10-30 percent faster than previous versions, according to Mozilla’s own tests. In particular, the Mozilla team cites improvements in the following areas:
- Typing in the URL bar or in document editors (eg Google Docs, Office 365)
- Open a site menu (like the file menu in Google Docs)
- Keyboard controls in browser-based video games
To discuss performance goals and gains more concretely, Mozilla defines three levels of browser responsiveness:
jank, with maximum latency thresholds of 50 ms and 1,000 ms for the first two. Mozilla further specifies that:
jank Not only does it mean a longer delay, but the entire site — and worst-case scenario, the browser’s own user interface — becomes unusable for more than one second at a time.
Impressively, Firefox 89 manages a
instantaneous response to events more than 40 percent of the time—versus just 30 percent in Firefox 86.
instantaneous In response, calculations performed by the browser itself aren’t the only problem – no matter how fast the browser produces new data, the user can’t really perceive it until the monitor displays it. With a typical refresh rate of 60 Hz, this means a new frame is displayed approximately every 17 ms, leaving the browser with only three frames to hit the 50 ms target for this response level.
In previous versions of Firefox, user input took place at frame 0, and the “paint” process in which the browser draws new content would then take place at frame 1 – exiting the composition (when the new
painted content is actually handed over to the OS and displayed on the user’s monitor) happens no earlier than frame 2. Those are all three frames we can fit within the 50ms time limit set by Mozilla
As of Firefox 89, a Markus Strange suggested update to Firefox’s paint pipeline improves the situation significantly – now,
painting can happen during the same frame where user input occurs, causing
compositing possibly a frame earlier. This makes maximally responsive interaction about 17 ms faster than before – a solid third of the self-imposed
Small but perceptible delay
Mozilla’s predictions continued with significant improvements to SpiderMonkey in 2021, citing better architecture of object structures and faster for-of-loops as two examples. Ted Campbell, Iain Ireland, Steve Fink, Jan de Mooij and Denis Palmeiro get Mozilla’s thanks for their many contributions to SpiderMonkey’s performance.
The Craziest But Most Hilariously Named Mozilla Performance Category,
jank, gets its own set of improvements, most notably a new Background Hang Reporter. Thanks in part to the hard work of Florian Quèze and Doug Thayer, Mozilla now gets special telemetry information when browser performance declines, including stack traces of commonly seen main threads that get stuck in the Firefox parent process.
The new tool is already bringing insights and performance improvements. For example, Mozilla found that accessibility features were unnecessarily enabled for most Windows users with a touchscreen. Accessibility features are critical to users who need them, but they mean significant additional work for the browser when they are active.
Thanks in part to the help of James Teh, the number of users with unnecessary accessibility features turned on decreased significantly, and with it the number of crashed reports.