Mozilla reboots with Firefox 57


Article from Issue 209/2018

What’s new in Firefox 57 Quantum – and why does it matter so much?

Firefox 57 Quantum is probably the most important release in the Mozilla browser's 15-year history. Firefox 57 (FF57) is the biggest upgrade cycle yet for Firefox and the stakes are high: Public acceptance of FF57 is important for Mozilla's future health.

Market observers say the overall Firefox marketshare is somewhere between 8 and 12 percent. By comparison, Google Chrome weighs in closer to 60 percent. Firefox fares better within the Linux community, though, where many users prefer it for ideological reasons while others are attracted to its impressive range of extensions. But even among the Linux crowd, Chrome has been closing the gap in recent years.

Setting the Stage

One mistake Mozilla made was the failed excursion into Firefox OS. Mozilla spent a great deal of money on the ill-fated mobile OS, and the Firefox OS effort used up valuable developer resources, thus slowing down work on Mozilla's flagship browser. In addition, integrating the online bookmarking service Pocket and the WebRTC service Hello added more bloat. Mozilla also annoyed some customers by displaying ads on the New Tab page and by collecting too much data.

However, the biggest reason for Firefox's decline in popularity is its 15-year-old technical substructure, which locked the entire browser into a single process. Chrome, which benefits from a more modern architecture, has gained a reputation for offering better performance.

The Firefox developers have known for years that they must take action if they want to keep the browser relevant for a new generation of users.

Over the last several years, Firefox has gradually undergone some extensive modifications. Firefox developers have been slowly completing revisions that have been in the experimental phase for years, including the Servo browser engine written in Rust [1].

The browser has also undergone two facelifts. The first new design – and the start of an unprecedented overhaul – was known as Australis [2]. Originally planned for Firefox 24, Australis only appeared with Firefox 28 in April 2014. The overhaul still divides the user base today, but it succeeded in delivering a more usable and feature-rich interface.

Work on the Servo browser engine began in 2012. The developers leveraged the parallelization capabilities of Rust, which is syntactically similar to C, to enable a multiprocess architecture with multiple threads on several cores, as well as GPU-supported browsing.

With the Servo engine, Firefox moved away from the single-process architecture that prevented it from keeping up with the speed and stability of other modern browsers. Rust is faster than C++; it also makes applications less vulnerable by preventing memory access errors and buffer overflows. At the same time, Rust is designed to rule out the most frequent causes of crashes and avoid race conditions.

Servo is not fully implemented in the official Firefox release version; however, Mozilla began using parts of Servo in its previous web engine, Gecko, some time ago. The first component to replace the previous C++ code in Firefox 48 (FF48) was the MP4 metadata parser. Replacing the metadata parser let the developers leverage Rust's security benefits in an area that is constantly under attack.

Quantum Brings Everything Together

Over a year ago, Mozilla released the Quantum [3] project, a new web engine bolstered with Servo technologies. Quantum's goal is to provide a foundation for multiprocessing that will improve performance, as well as prevent a frozen tab or a crashed web page from paralyzing the entire browser.

A subset of Quantum called Electrolysis has actually been around since 2009 (E10S) [4]. Development was interrupted several times and then picked up speed again in 2014 with a strengthened team. In FF48, a very limited number of users were allowed to test the new architecture, but only without add-ons. At first, only two processes were used, one each for the interface and content. E10S was successively distributed to other users in later releases. The goal was sandboxing for tabs and isolation of extensions in separate processes. In FF57, the developers have further strengthened the sandbox to avoid endangering the entire system in the event of a security threat. It is thus no longer possible for the sandbox to access your home directory.

Add-Ons and Other Changes

Mozilla has also been working to make Firefox extensions more compatible with other browsers, which will make it easier to develop add-ons. The name of the project behind this change is WebExtensions API [5]. Many developers have complained that Mozilla mainly provides high-level APIs, while many add-ons require low-level APIs. The WebExtensions API, which is required for FF57 onwards, forces you to convert all add-ons to the new system. Most of the widely used extensions are available now in WebExtensions format, but the change has caused some programmers to walk away from Firefox add-on development. Others have tried to rewrite their extensions, but have failed because of missing or incomplete interfaces.

Many users have been worried about preserving their favorite add-ons. Add-on support is especially important for Mozilla because its popular extension library is one of the main reasons for using Firefox.

As of FF57, popular add-ons, such as DownThemAll, Beyond Australis, OmniSidebar, Puzzle Bars, Classic Toolbar Buttons, and Forecast Plus, are no longer available, at least for the time being. Other popular add-ons, such as Tab Mix Plus (Figure 1), are in transition to the new format.

Figure 1: The Tab Mix Plus add-on is gradually being rewritten as a WebExtension.

However, in the long run, the switch to the new add-on architecture appears to be an essential step. The previously used technologies, such as the XML User Interface Language (XUL), were outdated and incompatible with other extension standards, often causing browser crashes.

With the Photon UI [6] project, developers have modified the user interface, menus, and settings. Among other things, Photon UI is intended to work better with high-resolution displays. In addition, the technology detects whether the input comes from a mouse or a touch screen and adjusts the menu sizes accordingly. Here, too, the developers initially faced rejection.

A new CSS engine written in Rust runs in parallel on several CPU cores, both on the desktop and on mobile devices. In recent months, the developers have also eliminated almost 500 bugs that affected browser performance.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More