The Firefox browser shipped new versions in 2020 which strive to improve privacy, user experience, and JavaScript and WebAPI support. Firefox’s Enhanced Tracking Protection blocks fingerprinting scripts by default for all users. Notification request pop-ups are replaced with a less intrusive speech bubble appearing in the address bar. Firefox also implemented CSS Motion Path, the nullish coalescing operator ??
, and enabled CSS Shadow Parts. Mozilla will now release new Firefox versions on a monthly cycle.
Enhanced Tracking Protection in Firefox strives to automatically protect users’ privacy while browsing. It blocks many of the trackers that collect information about users’ browsing habits and interests. It also includes protections against harmful scripts. With Firefox 72, Mozilla has launched fingerprinter blocking as a default setting for all users. Mozilla explained:
Firefox 72 protects users against fingerprinting by blocking all third-party requests to companies that are known to participate in fingerprinting. This prevents those parties from being able to inspect properties of a user’s device using JavaScript.
User gestures are now required for a number of permission-reliant methods, such as Notification.requestPermission()
. The change comes to address user feedback concerning invasive prompting. Mozilla explained:
User research commonly brings up permission prompt spam as a top user annoyance, so we decided to do something about it. This change reduces permission spam and strengthens users’ agency over their online experience.
This concretely means that notification request pop-ups are now a blue speech bubble in the address bar.
Firefox also shipped with JavaScript and WebAPI updates. Following the path of Chrome 80, Firefox 72 also implements the ES2020’s nullish coalescing operator, which allows writing:
// Still checks for errors and is much more readable.
const nameLength = db?.user?.name?.length;
instead of:
// Less error-prone, but harder to read.
let nameLength;
if (db && db.user && db.user.name) nameLength = db.user.name.length;
CSS Motion Path, while stll at the working draft status, is also implemented by Firefox 72. The CSS Motion Path module describes a set of properties that allow authors to position any graphical object and animate it along an author-specified path. Dan Wilson described the properties in details and provided the following JS-free example of a box animated on a parabolic path:
CSS Shadow Parts is now supported in Chrome, Firefox and Edge. Safari has already implemented CSS Shadow Parts in Technology Preview 94, with a stable version expected. Tab Atkins, one of the CSS Shadow Parts spec editors, explained the features as follows:
The point of ::part is to hide the internal details of the component, and expose only exactly the parts the component author explicitly wants to. Random classes are an internal detail; there’s no telling what use the component author has for them, or whether they’re appropriate for outside code to use.
This allows to style elements contained inside a Shadow DOM with a global CSS file applying to the main document.
Serhii Kulykov, a JavaScript developer involved in the development of Web Components at Vaadin, explained on his blog the importance of CSS Shadow Parts for web components enthusiasts.
Firefox 73 additionally shipped with improvements in accessibility with the goal of helping users consume website content more easily and quickly.
Mozilla switched to a monthly release cycle for the Firefox browser. Previously, a new version of Firefox would be issued every 6 to 8 weeks. Mozilla quoted the ability to bring new features and Web APIs to users more quickly as a primary motivation behind the move:
With four-week cycles, we can be more agile and ship features faster, while applying the same rigor and due diligence needed for a high-quality and stable release. (…) Also, we put new features and implementation of new Web APIs into the hands of developers more quickly.
Firefox for desktop can be downloaded on Firefox.com. Existing users may upgrade to it automatically. Both Android and iOS users can download from Google Play and Apple’s App Store.