The State of Firefox
Published: 2019-07-11 12:25:10

{% youtube mdTWClD1aVk %}

*Mozilla is making substantial changes that will improve everything from Gecko, the rendering engine to support for virtual reality. Learn about what Project Quantum is doing to modernize the way developers interact with the browser.*

Mozilla is non-profit that aims to keep the internet healthy, open and accessible to all. 2017 is huge investment year for Mozilla. For starters, Gecko is a rendering engine that has been around longer than most browsers. It is currently undergoing huge changes that will revitalize the system and make it ready for the next 10–12 years.

Project Quantum is an attempt to retrofit and modernize large parts of Gecko and Firefox. Work on project Quantum began last year when they transitioned the build to a multi-process architecture which pays big dividends in terms of stability, security and performance. Changes also include individual rendering pipeline pieces in the browser.

**Servo**

Servo is an experimental browser that uses Rust (a Mozilla sponsored project). Servo makes parallel computing safe by default, provides memory safety features out of the box and makes writing concurrent code more streamlined which would otherwise be a mess of C++ and C. These features allow developers to focus on browser internals. If browser is faster, it makes it possible to handle code more gracefully and provides more room for developers to make more performant websites.

**Quantum Style**

Quantum style will allow for computations can be made in parallel with styles changes on page, whether it be animations or DOM updates. This is done by using multiple threads within a process to re-compute style on the page in real time. This feature makes the computation of style much faster. On mobile, Quantum Style splits up work over threads and computes everything at the same speed, however, it uses less clock power and reduces battery consumption for the same style computations

**Quantum DOM**

Quantum DOM is changing the way multiple browser tabs interact. By using a multi-process model, two browser tabs can now interact. The Quantum DOM reduces the footprint on computer and by extension, resources used by Firefox. This works by prioritizing browser tasks by responding to user input and handling in-page events. It also delays running code for background tabs and pauses slow background tasks to run foreground tasks.

**Quantum Flow**

Quantum Flow is a conglomeration of performance improvements in Firefox. One of the main things that Quantum Flow does, is reduce and remove as many synchronous IP sync calls as possible. Rather, it focusses on high complexity DOM based web apps to make sure that the most performance critical and high use web apps run as smoothly as possible.

In addition to the Quantum project, Firefox 52 has the initial implementation of Web Assembly. Web Assembly provides the ability to take compiled languages and reformat them to work within JavaScript engines.
The launching of asynchronous functions and the await keyword is another much anticipated feature. It is touted as adjustment that will fundamentally change how JavaScript code is architected. By using the new async function, one can write async code with very clear and easy to understand control flow but make it asynchronous under the hood.

Mozilla is working with a number of browser vendors to bring improve WebVR technology. They are working with Samsung, Chrome and W3C community groups to make available a set of JavaScript APIs that let users discover and interact with VR hardware that lets you connect with your computer. They have support for HTC5, Oculus, Oculus Touch and Google Day Dream Headset and are working toward the capability to make web pages that can easily switch into VR. Pairing with tools such as WebGL allows developers to make beautiful, immersive web experiences.

WebGL2 recently shipped releasing new features including more modern shader and texture features, better particle support and optimization that makes graphical computation go a bit faster.

Looking forward into the rest of the year, developers can expect to find more exciting changes in the realm of privacy and security web platform features and web extensions. To keep up with these additions, you can follow Matthew Claypotch on Twitter @potch.

By: Necoline Hubner

*Need JavaScript consulting, mentoring, or training help? Check out our list of services at [This Dot Labs](thisdot.co).*