Mecanismo de renderização

 Nota: Não confundir com Motor JavaScript.

O mecanismo de renderização (também conhecido como motor de layout, motor de renderização ou mecanismo de navegação) é o principal componente de software de todos os principais navegadores da web. A principal tarefa de um mecanismo de renderização é transformar documentos HTML e outros recursos de uma página da internet em uma representação visual interativa no aparelho do usuário.

Nome e escopo editar

O mecanismo de renderização não é um programa de computador independente, mas uma parte importante de um programa maior, como um navegador da internet, do qual o termo é derivado.

Além de "mecanismo de renderização", dois outros termos são de uso comum em relação aos conceitos relacionados: "motor de layout" e "motor de renderização".[1][2][3] Em teoria, o layout e a renderização (ou "pintura") poderiam ser manipulados por mecanismos separados. Na prática, no entanto, eles são fortemente acoplados e raramente considerados separadamente.

Além do layout e da renderização, um mecanismo de renderização reforça a política de segurança entre documentos, manipula a navegação por hiperlinks e dados enviados por formulários e implementa a estrutura do Modelo de Objeto de Documentos (DOM) exposta aos scripts da página.

A execução do código JavaScript (JS) é uma questão separada, pois todos os principais navegadores web usam um mecanismo dedicado para isso. A linguagem JS foi criada originalmente para uso em navegadores, mas agora também é usada em outros lugares, portanto, a implementação dos mecanismos JS é dissociada dos mecanismos de renderização. Em um navegador da web, os dois mecanismos trabalham em conjunto por meio da estrutura de dados (DOM) compartilhada.

Os mecanismos de renderização são usados em outros tipos de programas, além dos navegadores da web. Os clientes de e-mail precisam deles para exibir e-mails em HTML. A estrutura de software Electron, que é alimentada pelos dois mecanismos do navegador Google Chrome, foi usada para criar muitos aplicativos.

Layout e renderização editar

O layout de uma página da web é normalmente especificado pelo CSS (Cascading Style Sheets). Cada folha de estilo é composta por uma série de regras que o mecanismo de renderização interpreta. Por exemplo, algumas regras especificam detalhes da tipografia, como fonte, cor e tamanho do texto. O mecanismo combina todas as regras CSS relevantes para calcular coordenadas gráficas precisas para a representação visual que será apresentada na tela.[1]

Alguns mecanismos podem começar a renderizar antes que todos os recursos de uma página sejam baixados. Isso pode resultar em alterações visuais à medida que mais dados são recebidos, como imagens sendo gradualmente preenchidas ou um flash de conteúdo não estilizado.

Mecanismos notáveis editar

Uso de navegadores na Wikipédia durante fevereiro de 2014
Google Chrome, Opera, e outros variantes (Blink)
  
43,00%
Internet Explorer (Trident)
  
25,80%
Firefox e outros variantes (Gecko)
  
18,22%
Safari e outros variantes (WebKit)
  
5,90%
Opera (Presto)
  
2,31%
Outros
  
4.77%
Uso de navegadores não móveis no acesso da Wikimedia em fevereiro de 2014.[4]

Como a plataforma da web é um conjunto de padrões abertos, há várias implementações de mecanismos de navegação.

O Gecko é o mecanismo de navegador da Mozilla, usado no navegador Firefox, no cliente de e-mail Thunderbird e no pacote de internet SeaMonkey.[2] Já Goanna é uma bifurcação do Gecko usado no navegador Pale Moon.[3]

A Apple criou o mecanismo WebKit para seu navegador Safari, bifurcando o mecanismo KHTML do projeto KDE.[5]

O Google originalmente usou o WebKit para o navegador Chrome, mas finalmente o bifurcou para criar o mecanismo Blink.[6] Todos os navegadores baseados em Chromium usam o Blink, assim como os aplicativos criados com CEF (Chromium Embedded Framework), Electron ou qualquer outra estrutura que incorpore o Chromium.

Embora a Apple permita navegadores de terceiros como alternativas ao Safari em dispositivos iOS, todos os navegadores distribuídos por meio da App Store devem usar o WebKit como mecanismo. Por exemplo, o Opera Mini para iOS usa o WebKit, enquanto todas as outras variantes do Opera usam o Blink. O Opera costumava usar seu próprio mecanismo, o Presto.

A Microsoft mantinha seu próprio mecanismo, o EdgeHTML proprietário, que é o sucessor de seu mecanismo Trident. No entanto, o EdgeHTML agora é usado apenas para aplicativos da Plataforma Universal do Windows, pois o navegador Microsoft Edge foi refeito com o mecanismo Blink.[7][8]

Linha do tempo editar

Referências

  1. a b «Behind the scenes of modern web browsers». Tali Garsiel. Consultado em 21 de abril de 2018 
  2. a b «Gecko». Mozilla. Consultado em 21 de abril de 2018 
  3. a b «Introducing Goanna». M.C. Straver. 22 de junho de 2015. Consultado em 21 de abril de 2018 
  4. Wikimedia Traffic Analysis Report - Browsers e.a.: Monthly requests or daily averages, for period: 1 Feb 2014 - 28 Feb 2014, Wikimedia 
  5. Paul Festa (14 de janeiro de 2003). «Apple snub stings Mozilla». CNET Networks. Consultado em 16 de fevereiro de 2017. Arquivado do original em 25 de outubro de 2012 
  6. Bright, Peter (3 de abril de 2013). «Google going its own way, forking WebKit rendering engine». Ars Technica. Conde Nast. Consultado em 9 de março de 2017 
  7. Mackie, Kurt (10 de dezembro de 2018). «Microsoft Edge Browser To Get New Rendering Engine but EdgeHTML Continues». Redmond Mag. Consultado em 21 de dezembro de 2019 
  8. Belfiore, Joe (6 de dezembro de 2018), Microsoft Edge: Making the web better through more open source collaboration, Microsoft