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.[1][2][3]

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".[4][5]

Antecedentes editar

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++.[6]

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++.[6]

Desde abril de 2016, o Servo precisa de pelo menos vários anos de desenvolvimento para se tornar um motor de navegador completo.[7] Esse é o motivo da decisão de iniciar o projeto Quantum para trazer porções estáveis do Servo para o Firefox.

Componentes editar

O projeto Quantum é composto por vários subprojetos.[1]

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.[5]
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.[8]
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.[9]
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.[10]
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.[4]
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.[11]

Referências

  1. a b «Quantum». Mozilla Wiki. Consultado em 20 de abril de 2017 
  2. Cimpanu, Catalin. «Mozilla Announces Quantum, a New Browser Engine for Firefox». Softpedia (em inglês). Consultado em 17 de fevereiro de 2017 
  3. Douglas Ciriaco (27 de setembro de 2017). «Mozilla anuncia Firefox Quantum e promete navegador mais leve que o Chrome». TecMundo. Consultado em 8 de fevereiro de 2018 
  4. a b https://www.mozilla.org/en-US/firefox/57.0/releasenotes/
  5. a b https://blog.mozilla.org/blog/2017/11/14/introducing-firefox-quantum/
  6. a b Bergstrom, Lars; et al. (maio de 2016). «Engineering the Servo Web Browser Engine using Rust» (PDF). Proceedings of the International Conference on Software Engineering 
  7. «Servo remaining work». GitHub. Consultado em 17 de fevereiro de 2017 
  8. «Bay Area Rust Meetup February 2016». Air Mozilla. Consultado em 28 de março de 2017 
  9. «Firefox faster and more stable with the first big bytes of Project Quantum, simpler with compact themes and permissions redesign». Mozilla Blog. Consultado em 27 de abril de 2017 
  10. «Quantum Flow». Mozilla Wiki. Consultado em 28 de março de 2017 
  11. «TPE Necko/Projects - MozillaWiki». wiki.mozilla.org (em inglês). Consultado em 4 de julho de 2017