
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.
SmartBlock 2.0
-
SmartBlock 1.0 prevented the use of Facebook authentication to log in to other websites, for example Etsy.
Mozilla
-
SmartBlock 2.0, first launched today with FireFox 90, temporarily unblocks the correct script to log into Etsy with FB authentication when you click the “Continue with Facebook” button.
Mozilla
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.
Faster Firefox
-
The Y-axis indicates the “number of responses completed no later than this time frame” – note that in FF89 the buckets for a response time of less than 50 ms are significantly higher.
Mozilla
-
It’s hard to spot, but we can see improved timing of the Javascript handler in this graph: FF89 has more events in most sub-17 ms buckets than FF86.
Mozilla
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: instantaneous
† perceptible lag
and 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.
instantaneously
For 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 paint
ed 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 instantaneous
answer!
As of Firefox 89, a Markus Strange suggested update to Firefox’s paint pipeline improves the situation significantly – now, paint
ing 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 instantaneous
windown.
Small but perceptible delay
Most observable browser slowdowns are caused by time spent on JavaScript code, often because developers of JavaScript engines spend more time gaming synthetic benchmarks than optimizing for real web applications and frameworks.
By directly targeting commonly used websites, Mozilla can better investigate performance issues in SpiderMonkey, Firefox’s JavaScript engine. Experimenting to improve performance on real websites rather than benchmarks led to improved array iterators, boosting performance from Firefox 89.
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.
Jank
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.