# Quantum (Mozilla)

Quantum é um projeto recente da Mozilla que engloba vários esforços de desenvolvimento de software para "construir o motor de renderização da Web de próxima geração para os usuários do Firefox". Ele inclui inúmeras melhorias para o motor de navegador da Web Gecko do Firefox, incorporadas em grande parte a partir do projeto experimental Servo.O Quantum também inclui refinamentos para a interface do usuário e interações.
O Firefox 57, lançado em novembro de 2017, é a versão inicial com um componente do Servo habilitado. A Mozilla chama este, e vários lançamentos planejados no futuro, de "Firefox Quantum".

## Antecedentes

O Gecko é um motor de navegador de internet maduro e completo que se originou na Netscape em 1997. Ele está escrito na linguagem de programação C++.
Em 2013, a Mozilla iniciou o projeto experimental Servo, que é um motor projetado a partir do zero com os objetivos de melhorar a concorrência e o paralelismo enquanto também reduz as vulnerabilidades de segurança de memória. Um fator importante é escrever o Servo na linguagem de programação Rust, também criada pela Mozilla, que é projetada para gerar código compilado com melhor segurança de memória, concorrência e paralelismo do que o código compilado escrito em C++.
Desde abril de 2016, o Servo precisa de pelo menos vários anos de desenvolvimento para se tornar um motor de navegador completo. Esse é o motivo da decisão de iniciar o projeto Quantum para trazer porções estáveis do Servo para o Firefox.

## Componentes

O projeto Quantum é composto por vários subprojetos.

### CSS

    Sistema de folhas de estilo paralelo do Servo integrado ao Gecko. Os benchmarks sugerem que o desempenho é escalonado linearmente com o número de núcleos da CPU. Isso foi lançado no Firefox 57.

### Render

    Arquitetura de renderização do Servo, chamada WebRender, integrada ao Gecko. O WebRender substitui o modelo de desenho de modo imediato por um modelo de modo retido que é mais facilmente acelerado pela GPU por aproveitar a semelhança de CSS/DOM com um grafo de cena. No cenário de testes de pior caso, ele excede 60 quadros por segundo.

### Compositor

    O compositor existente do Gecko movido para o seu próprio processo, isolando as guias do navegador de travamentos relacionados ao driver gráfico. Uma vez que os travamentos do compositor não derrubarão o processo de conteúdo do navegador, o processo do compositor pode ser reiniciado de forma transparente sem perder os dados do usuário. Isso foi lançado no Firefox 53.

### DOM

    Um pouco inspirado pela arquitetura de Constelações do Servo e no motor do Opera, o Presto, o Quantum DOM usa threads agendados de forma cooperativa dentro do DOM para aumentar a capacidade de resposta sem aumentar o número de processos e, portanto, o uso da memória.

### Flow

    Um termo abrangente para melhorias de desempenho visíveis pelo usuário conduzidas por uma equipe que trabalha em todos os componentes do Gecko. Atualmente focado em melhorias de desempenho reais perceptíveis pelo usuário nos principais aplicativos da Web, principalmente o G Suite e o Facebook.

### Photon

    Uma atualização da interface de toda a aplicação, com um forte foco na melhoria do desempenho da interface. Tratado como um projeto irmão do Quantum Flow. Isso foi lançado no Firefox 57.

### Network

    Melhorar o desempenho do Necko, camada de rede do Gecko, ao mover mais partes da atividade da rede para fora da thread principal, priorização de fluxos de rede dependente de contextos, e correndo a camada do cache com a rede.