Firefox will soon begin to implement elements of Mozilla’s new research-oriented browser engine, called Servo. The engine has been written from the ground-up in “Rust,” a fast new programming language developed by Mozilla and the open source community that guarantees thread and memory safety.
First Step: Full Electrolysis Adoption And Implementation
Recently, Mozilla started implementing the long-awaited multi-year Electrolysis sandboxing architecture in Firefox. The new architecture puts the user interface and the content of the tabs in separate operating system processes, thus giving each its own resources and sandboxing capabilities. This is unlike Chrome, where each browser page or extension gets its own process, but Mozilla plans to increase the modularity of its new architecture in the future, as well.
Firefox's Electrolysis partial sandboxing architectureElectrolysis should eliminate the “hanging” of some websites in Firefox, because the content and UI don’t interact with each other anymore, so they can’t choke the CPU as easily.
It should also significantly improve security. The more isolated app and operating system components are, the more secure the whole system typically is. Mozilla made an important first step in increasing Firefox’s security through the partial sandboxing of Electrolysis, and it could get even better in the future, if Firefox can replicate Chrome’s security architecture.
Electrolysis arrived in Firefox version 48 (Firefox is version 49 at the time of this writing), but only 1% of users could take advantage of it. Mozilla wants to test this major architectural change in Firefox slowly so that it doesn’t cause too many problems for users by the time most can utilize it.
Full adoption of Electrolysis should arrive over the next few months, during which time Mozilla will already be testing the more advanced version of Firefox. Each website content gets its own process and sandbox, as well. Mozilla expects this work to be finished in the first half of 2017.
Second Step: Gradual Adoption Of Servo Components And The Rust Language
In 2013, Mozilla started developing the Servo browser engine in the Rust language, as a research alternative to its in-production Gecko engine. The new engine aimed to eliminate entire classes of bugs such as buffer overflows by utilizing Rust, which is thread- and memory-safe, and also see what could be done with a brand new browser engine that doesn’t need to support any legacy code.
Due to the focus of Rust on high-parallelism, Servo can take advantage of all of a CPU’s threads to load a page. Therefore, it can increase the performance of page loads by up to 4x for many users of multi-core computers and devices.
Servo vs Gecko time to load page (less is better)For now, Servo itself remains a continuously developed research project, but Mozilla doesn’t plan to replace Gecko with Servo anytime soon. Instead, the organization seems to have adopted a more modular (and gradual) approach by replacing Gecko components with Servo components one by one.
Mozilla is internally calling this project “Quantum,” referring to the “quantum leap” in performance it expects Firefox to gain once enough of Servo’s components have been added to the browser.
"We are striving for performance gains from Quantum that will be so noticeable that your entire web experience will feel different,” said David Bryant, Head of Platform Engineering at Mozilla, in a Medium post.
“Pages will load faster, and scrolling will be silky smooth. Animations and interactive apps will respond instantly, and be able to handle more intensive content while holding consistent frame rates. And the content most important to you will automatically get the highest priority, focusing processing power where you need it the most,” he added.
Bryant also said that the plan is to rethink and re-engineer foundational building blocks of the browser engine used by Mozilla, with much of the work already being done by the Servo team and the community behind it. Electrolysis has also been an important precursor step because Firefox's new multi-process architecture will help the highly-parallelized Servo code to maximize the performance of the Firefox browser.
Firefox’s Brighter Future
Over the past few years, Chrome has steadily increased its market share, becoming the most used browser in the world, to Internet Explorer’s, but also Firefox’s, detriment. Microsoft has seen this coming and has already launched Edge as a more future-proof browser with a new Chrome-like multi-process and sandboxed architecture that’s available for Windows 10.
Now it’s Mozilla’s turn to re-invent itself and bring users potentially the fastest browser on the market and offer much improved security due to both the new Electrolysis architecture and the utilization of the memory-safe Rust language within the next year. Bryant said that users can expect to see some major improvements in Firefox by the end of 2017.