Foi lançado o primeiro teste do navegador web FixBrowser, projetado para baixo consumo de recursos e garantir privacidade. O navegador está sendo desenvolvido do zero e, por princípio, não suporta a execução de JavaScript, mas ainda permite que sites baseados em JavaScript sejam acessíveis. O código é escrito nas linguagens C e FixScript, e é distribuído sob a licença ZLIB. Compilações prontas estão disponíveis para Linux (GTK2) e Windows. Estão previstas compilações para Haiku e macOS 10.6+, bem como a produção de compilações para Linux que utilizam GTK3/4.
Para trabalhar com sites que dependem de JavaScript, o FixBrowser utiliza uma camada chamada FixProxy, que transforma esses sites em uma representação que pode ser acessada sem JavaScript. A substituição é feita tanto por templates padrão quanto por meio de fix-manipuladores que consideram as especificidades de sites específicos (inclui fix-manipuladores para mais de 1200 sites). O FixProxy se desenvolve na forma de um processo proxy separado, não vinculado ao FixBrowser e adequado para uso com outros navegadores.
Observa-se que, para a visualização da maioria dos sites sem JavaScript, são necessárias apenas pequenas modificações. Além disso, muitos sites utilizam tecnologias semelhantes para a geração dinâmica de conteúdo, o que permite aplicar manipuladores fixos típicos para sua renderização. Por exemplo, podem ser usados manipuladores fixos universais para sites baseados no WordPress e fóruns na plataforma Disqus. É possível criar manipuladores também para sites que geram conteúdo de forma dinâmica — por exemplo, para a exibição de listas de comentários que são carregadas dinamicamente via JavaScript, o manipulador fixo carrega diretamente os dados em formato JSON e gera o HTML com base neles.
Para processar captchas e componentes JavaScript, como verificações do CloudFlare, sem os quais não é possível acessar alguns sites, está planejada a criação de uma camada baseada na estrutura CEF (Chromium Embedded Framework), que poderá executar seletivamente apenas o código JavaScript necessário. A camada para JavaScript será implementada como um serviço separado (pode ser executado em seu próprio sistema ou pode-se utilizar um serviço em nuvem público).
Para bloquear o rastreamento da atividade do usuário, o carregamento de recursos de hosts externos é proibido, e para permitir o carregamento de imagens através de redes de entrega de conteúdo, são utilizados listas brancas. O suporte a HTTPS está disponível. É possível conectar extensões escritas na linguagem FixScript.
O projeto é desenvolvido por Martin Dvorak, da República Tcheca, que criou a linguagem de programação FixScript. A maior parte do código do FixBrowser é escrita na linguagem FixScript, exceto as operações críticas em relação ao desempenho e a estrutura básica. O código em FixScript é incorporado ao código em C, e para a compilação é utilizado um compilador fornecido em um único arquivo, que contém cerca de 27 mil linhas de código em C (800 KB). A linguagem é semelhante ao C, mas utiliza tipagem dinâmica, coletor de lixo e compilação JIT. O FixBrowser garante um funcionamento seguro com memória e threads, além de ter proteção integrada contra estouros de inteiros.
A implementação do mecanismo do navegador foi significativamente simplificada, pois o FixBrowser realiza apenas a renderização primária e não suporta a atualização dinâmica do conteúdo. Depois que a página é exibida, ela não muda mais, portanto, não é necessário recorrer a abstrações como o DOM (Document Object Model). Atualmente, o foco está na criação de um parser HTML que suporte as especificações HTML5. A implementação proposta na primeira versão de teste abrange apenas 30% dos testes HTML5. O suporte básico a CSS foi implementado.

Fonte: opennet.ru
