Today, Mozilla launched Firefox 90. The newest version of Mozilla’s increasingly privacy-focused browser adds improved print-to-PDF functionality, individual exceptions to HTTPS-only mode, an about:third-party page to help identify compatibility issues introduced by third-party applications, and a new SmartBlock feature that cranks up protection from cross-site tracking while making sure site logins still function.
There’s also a new background updater for Windows, which allows a small background application to check for, download, and install Firefox updates while the browser is not running.
The newest version of Mozilla’s built-in SmartBlock privacy feature makes it easier for users to keep their tracking protection settings cranked up, without breaking individual websites. The updated version seems to especially target Facebook login, which is increasingly used around 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 its 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.
With SmartBlock 2.0, Facebook scripts are disabled on third-party sites, just as before—but when the user clicks the “Continue with Facebook” option, that specific, deliberate user interaction with the Facebook script causes SmartBlock 2.0 to unblock it. The unblocking happens just in time to allow the Facebook authentication login to succeed—without the user needing to dial down their tracking protection settings.
Mozilla’s internal metrics show significant speed improvements in 2021—last month’s Firefox 89 is 10-30 percent faster than earlier versions, according to Mozilla’s own testing. Specifically, the Mozilla team mentions improvement in the following areas:
- Typing in the URL bar or in document editors (e.g., Google Docs, Office 365)
- Opening a site menu (such as the file menu in Google Docs)
- Keyboard controls in browser-based video games
In order to discuss performance goals and gains more concretely, Mozilla defines three levels of browser responsiveness:
perceptible lag, and
jank, with maximum latency thresholds of 50 ms and 1,000 ms for the first two. Mozilla goes on to specify that
jank means not only a longer delay, but the entire site—and in the worst cases, the browser’s own UI—becomes unusable for more than one second at a time.
Impressively, Firefox 89 manages an
instantaneous response to events more than 40 percent of the time—up from only 30 percent in Firefox 86.
instantaneous response, calculations performed by the browser itself aren’t the only issue—no matter how fast the browser produces new data, the user can’t actually perceive it until the monitor displays it. With a typical monitor refresh rate of 60Hz, that means a new frame is displayed roughly every 17 ms—giving the browser only three frames to meet the 50 ms goal for this response level.
In earlier versions of Firefox, user input would happen on frame 0, and the “paint” process in which the browser draws new content would then happen on frame 1—leaving composition (when the newly
painted content is actually handed to the operating system and displayed on the user’s monitor) happening no earlier than frame 2. That’s all three of the frames we can fit inside the 50 ms time limit Mozilla set for
Beginning with Firefox 89, an update to Firefox’s painting pipeline suggested by Markus Strange improves the situation significantly—now,
painting can happen during the same frame that user input occurs, making
compositing possible one frame earlier. This makes maximally responsive interaction roughly 17 ms faster than it was before—a solid third of the self-imposed
Small but perceptible lag
Mozilla forecasts continued significant SpiderMonkey improvements throughout 2021, noting 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 performance.
The crappiest 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 hard work from Florian Quèze and Doug Thayer, Mozilla now gets special telemetry information when browser performance tanks—including stack traces of frequently seen main-thread hangs inside the Firefox parent process.
The new tool is already bringing insights and performance improvements—for example, Mozilla discovered that accessibility features were being unnecessarily enabled for most Windows users with a touchscreen. Accessibility features are critically important for users who need them, but they represent significant extra work for the browser when active.
Thanks in part to assistance from James Teh, the number of users with unnecessary accessibility features enabled decreased significantly—and the number of hang reports decreased along with it.