Motor do navegador - Browser engine
Um motor do navegador ( também conhecido como um mecanismo de layout ou motor de renderização ) é um núcleo componente de software de todos os principais navegador web . A principal tarefa de um mecanismo de navegador é transformar documentos HTML e outros recursos de uma página da web em uma representação visual interativa no dispositivo de um usuário .
Nome e escopo
Um mecanismo de navegador não é um programa de computador independente , mas uma parte crítica de um programa maior, como um navegador da web , do qual o termo é derivado. (A palavra " motor " é uma analogia ao motor de um carro.)
Além de "mecanismo de navegador", dois outros termos são comumente usados em relação a conceitos relacionados: "mecanismo de layout" e "mecanismo de renderização". Em teoria, layout e renderização (ou "pintura") poderiam ser tratados por mecanismos separados. Na prática, entretanto, eles são fortemente acoplados e raramente são considerados separadamente.
Além de layout e renderização, um mecanismo de navegador reforça a política de segurança entre documentos, lida com a navegação por meio de hiperlinks e dados enviados por meio de formulários e implementa a estrutura de dados DOM ( Document Object Model ) exposta aos scripts de página .
A execução de código JavaScript (JS) é um assunto separado, entretanto, já que todos os principais navegadores da 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 é desacoplada dos mecanismos do navegador. Em um navegador da web, os dois mecanismos funcionam em conjunto por meio da estrutura de dados DOM compartilhada.
Os mecanismos do navegador são usados em outros tipos de programas além dos navegadores da web. Os clientes de email precisam deles para exibir emails em HTML . A estrutura Electron , que é alimentada pelos dois motores do navegador Google Chrome , foi usada para criar muitos aplicativos .
Layout e renderização
O layout de uma página da web é normalmente especificado por Cascading Style Sheets (CSS). Cada folha de estilo é uma série de regras que o mecanismo do navegador interpreta. Por exemplo, algumas regras especificam detalhes de 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 pintará na tela.
Alguns mecanismos podem começar a renderizar antes de todos os recursos de uma página serem baixados. Isso pode resultar em mudanças visuais à medida que mais dados são recebidos, como imagens sendo preenchidas gradualmente ou um flash de conteúdo não estilizado .
Motores notáveis
- A Apple criou o motor WebKit para seu navegador Safari bifurcando o motor KHTML do projeto KDE . Todos os navegadores para iOS devem usar o WebKit como mecanismo.
- O Google originalmente usou o WebKit em seu navegador Chrome, mas eventualmente o bifurcou para criar o mecanismo Blink . Todos os navegadores baseados em Chromium usam Blink, assim como aplicativos desenvolvidos com CEF , Electron ou qualquer outra estrutura que incorpore Chromium.
- A Microsoft tem dois motores proprietários , Trident e EdgeHTML . O Trident é usado no navegador Internet Explorer . EdgeHTML é usado apenas para aplicativos UWP , já que o navegador Edge foi refeito com o mecanismo Blink.
- A Mozilla desenvolve o mecanismo Gecko para seu navegador Firefox , o cliente de e-mail Thunderbird e o pacote de internet SeaMonkey .
Linha do tempo
Apenas a duração do desenvolvimento ativo é mostrada, ou seja, quando novos padrões da Web relevantes continuam a ser adicionados ao mecanismo.