While most eyes were glued to Apple’s press event on Thursday revealing new MacBook Pros, Mozilla’s Head of Platform Engineering David Bryant made a reveal of his own: Firefox is receiving a new browsing engine called Quantum. Slated to arrive by the end of 2017, Quantum will replace the current Gecko engine, which is responsible for presenting and running all content on the internet.
Mozilla chose the Quantum name because the next-generation engine will provide a “quantum leap” in performance on mobile and desktop. To put this in perspective, Gecko started out in the Netscape browser released in 1997 and has been modified over time to support new technologies. Quantum is built from the ground up to support the latest hardware and technologies, such as HTML5.
“We are striving for performance gains from Quantum that will be so noticeable that your entire web experience will feel different,” Bryant writes. “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.”
More specifically, the new Quantum engine will be fine-tuned for processors with more than one core. Gecko was created in an era of single-core processors and the emergence of stand-alone graphics cards. Now multi-core CPUs and GPUs are seemingly standard across the device board, and many desktop customers even install more than one graphics card in their systems. Quantum will supposedly take advantage of all this high-performance hardware.
So, by supporting multiple cores in a processor, rich multimedia experiences are rendered more easily and quickly. Plus, a good chunk of the load can be dumped off onto the graphics card as well, given it is capable of computing outside the graphics realm. Thus, Quantum will improve on Gecko by replacing major engine components, and incorporate components from Mozilla’s Servo project, a web engine created by a dedicated community sponsored by Mozilla.
Bryant said that many Quantum components are written in Rust, a somewhat new systems programming language. He calls this platform “blazing fast,” as it simplifies the development of applications designed to use multiple processor cores and the graphics chip in parallel. Even more, Rust will not compile code if the safety of the processing thread and memory cannot be secured.
Here are all the current components of the Quantum project pulled from Mozilla’s wiki:
Component | Description |
Rust-bindgen: | A 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: | Aims to integrate Servo’s parallelized CSS style system into Gecko. |
Quantum Render: | 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: | Moves Gecko’s compositor into its own process. |
Quantum DOM: | Will make Gecko more responsive, especially when there are a lot of background tabs open. |
Quantum Flow: | Will explore performance improvements not covered by the other Quantum components, such as UI optimizations. |
Mozilla notes that by moving the compositor into its own process, Firefox should be more stable. As it stands now, the code that interacts with graphics chips is part of the Gecko engine, so when there is an instability issue with the chip’s drivers, Firefox will crash. This aspect has been a major source of Firefox crashes for some time and separating the compositor from the engine should help tremendously.
“Quantum is an ambitious project, but users won’t have to wait long to start seeing improvements roll out,” he added. “We’re going to ship major improvements next year, and we’ll iterate from there. A first version of our new engine will ship on Android, Windows, Mac, and Linux. Someday we hope to offer this new engine for iOS, too.”
Check out the Quantum section of Mozilla’s wiki to see how this engine will improve Firefox’s performance. Too bad we will not see the first signs of Quantum until the end of 2017.