Firefox will receive a new browser engine by the end of 2017

Oct 28, 2016 16:55 GMT  ·  By

Mozilla is currently working on a new browser engine called Quantum, which will take parts of the Servo project and create a new core for the Firefox browser, revealed yesterday David Bryant, Head of Platform Engineering at Mozilla.

The new engine will replace the aging Gecko, Firefox' current engine. Bryant said Mozilla hopes to finish the transition to Quantum by the end of 2017.

Quantum is based on Servo

The first versions of Quantum will heavily rely on components from Servo, a browser engine that Mozilla has been sponsoring for the past years, and which shipped its first alpha version this June.

Servo is written in Rust, a programming language that Mozilla also sponsored in the past years. Bryant says Quantum will heavily rely on Rust for its codebase.

In the upcoming year, Mozilla will slowly merge Gecko and Servo components with each new release, slowly removing Gecko's ancient code, and leaving Quantum's engine in place.

"The resulting engine will power a fast and smooth user experience on both mobile and desktop operating systems - creating a 'quantum leap' in performance," Bryant says.

Quantum takes full advantage of multi-threaded programming

The Mozilla exec said the reason the change was needed was because Gecko was developed in a time when computers ran on single-core CPUs.

In the meantime, not only that most computers and mobiles run on multi-core architectures, but powerful GPU cards allow for better graphics performance.

Bryant says Quantum will be developed with these hardware advances in mind, and will result in better performance when navigating the web, dealing with animations and real-time interactions.

He also mentions that a change to Rust-based code will also improve the browser's overall security. Mozilla shipped its first Rust-based component in Firefox 48, replacing its old multimedia stack with one coded entirely in Rust.

According to Mozilla's wiki page on Project Quantum, these are the current Quantum components its engineers are currently working on. More details are also available via Bill McCloskey's blog.  

Component Description
rust-bindgen C++ bindings generator for the Rust language. Quantum uses rust-bindgen to generate the glue code between Firefox’s C++ code and Servo’s Rust components.
Quantum CSS Quantum CSS (aka Stylo) aims to integrate Servo's parallelized CSS style system into Gecko.
Quantum Render WebRender is Servo's next-generation renderer optimized for GPU rendering. The Quantum Render project aims to ship WebRender as the graphics backend for Firefox.
Quantum Compositor The Quantum Compositor moves Gecko’s compositor into its own process.
Quantum DOM The Quantum DOM project will make Gecko more responsive, especially when there are a lot of background tabs open.
Quantum Flow The Quantum Flow project will explore performance improvements not covered by the other Quantum components, such as UI optimizations.