Lançamento do navegador Dillo 3.3.0
(dillo-browser.org)- Controle remoto e automação foram bastante reforçados, permitindo controlar o navegador diretamente pela linha de comando e por scripts com o novo programa
dilloce o soquete UNIX ativado por padrão - A opção
page_actionno menu de clique com o botão direito da página pode executar comandos arbitrários, e junto com odillocagora também permite operações como recarregar ou substituir a página atual - O tratamento de login OAuth foi alterado para permitir excepcionalmente cookies em redirecionamentos da página principal após uma solicitação iniciada pelo usuário, fazendo o fluxo de autenticação funcionar sem abrir mão do bloqueio de cookies de terceiros
- O suporte experimental inicial a FLTK 1.4 pode ser compilado com
--enable-experimental-fltk, mas ainda há problemas de renderização em DPI alto ou no Wayland, então não deve ser ativado por padrão para todos os usuários - Com suporte opcional a brotli,
about:keys·about:cache·about:dicache, ativação padrão de IPv6, melhorias em abas, mouse e área de transferência, além de várias correções de segurança e de build, a usabilidade e a estabilidade gerais também avançam
Principais mudanças
- O 3.3.0 inclui novos recursos, opções de configuração e correções de bugs, além de adicionar pela primeira vez suporte experimental ao FLTK 1.4
- Foram adicionados controle por soquete UNIX e ações de usuário baseadas no menu da página, permitindo controlar o navegador diretamente por scripts e pela linha de comando
- Com a correção no login OAuth, o tratamento de cookies durante o processo de redirecionamento foi ajustado para manter a proteção contra rastreamento sem quebrar o fluxo de autenticação
Controle remoto e automação
- O programa dilloc foi adicionado e permite controlar o Dillo pela linha de comando ou por scripts
- Ele encontra o alvo pelo PID na variável de ambiente
DILLO_PIDe, se esse valor não existir, procura um processo Dillo único - Oferece comandos de controle como
ping,pid,reload,ready,open URL,url,title,status,dump,hdump,load,rawload,quit,wait
- Ele encontra o alvo pelo PID na variável de ambiente
- O soquete de controle remoto vem ativado por padrão e pode ser desativado com
--disable-control-socket, se necessário - Ao executar ações, a variável
DILLO_PIDé definida, permitindo que o dilloc controle imediatamente a instância atual do Dillo
Ações da página
- A opção
page_actionfoi adicionada para permitir a execução de comandos arbitrários no menu de clique com o botão direito da página - Usando
page_actionjunto com o dilloc, é possível manipular o conteúdo da página atual, por exemplo recarregando-o ou substituindo-o- Por exemplo, ao definir
page_action="Mimic Chrome:curl_chrome136 $url | dilloc load", é possível buscar novamente a página como se fosse o Chrome com curl impersonate e inserir o HTML diretamente na aba atual - Esse método pode ser usado para contornar algumas JS walls
- Por exemplo, ao definir
- Também foi incluído um exemplo de Fix page, que executa scripts de modificação específicos para a página atual com base em URL, cabeçalhos HTTP e outras condições
- O script relacionado
fixpage.shpode ser obtido no repositório actions
- O script relacionado
Estado do suporte ao FLTK 1.4
- Foi adicionado suporte experimental para compilar com FLTK 1.4.0 ou superior usando a flag
--enable-experimental-fltk - O recurso foi incluído para testes e feedback técnico, voltado a usuários experientes e testadores
- Recomenda-se usar o FLTK 1.4.5 release
- Essa versão inclui uma correção para o problema de fontes borradas
- Em telas de 96 DPI na plataforma X11, o FLTK 1.4.5 apresenta qualidade de renderização semelhante à do FLTK 1.3
- Isso vale tanto para os backends Xft quanto Pango
- Em ambientes de DPI alto, especialmente com DPI que não seja múltiplo de 96, ou no Wayland, ainda permanecem problemas de renderização
- O andamento pode ser acompanhado na issue relacionada do FLTK
- Os mantenedores de pacotes do Dillo não devem ativar o FLTK 1.4 como padrão para todos os usuários
- Podem surgir glitches visuais e outros problemas
OAuth e tratamento de cookies
- Para a autenticação OAuth, o comportamento foi ajustado para permitir cookies definidos em respostas de redirecionamento
- Por padrão, o Dillo bloqueia todos os cookies de terceiros quando a solicitação não é iniciada diretamente pelo usuário
- Esse comportamento serve para impedir rastreamento por pixel de imagem
- Com esta correção, os cookies passam a ser permitidos excepcionalmente em redirecionamentos da página principal que ocorrem após uma solicitação iniciada pelo usuário
- Isso permite o login via OAuth sem abrir mão da proteção contra rastreamento
- Um exemplo incluído é o login no Fediverse via Smolfedi
Adições de recursos e melhorias de comportamento
- Foi adicionado suporte opcional à codificação de conteúdo brotli
br - Foi adicionada a página
about:keys, que permite ver os atalhos de teclado atuais - Foram adicionadas as páginas
about:cacheeabout:dicache, permitindo verificar informações do cache interno - O IPv6 passa a ser ativado por padrão quando a plataforma oferecer suporte
- É possível focar a enésima aba com atalhos
Alt+ Control + left clickpode abrir links em uma nova aba- Agora é possível navegar para trás e para frente com botões do mouse
- Um clique do meio nos botões de voltar ou avançar abre a página correspondente em uma nova aba
Ctrl+Cfoi alterado para copiar o texto selecionado para a área de transferência, alinhando-se ao comportamento esperado deCtrl+V- A opção
mark_unloaded_imagesfoi adicionada para mostrar bordas em imagens não carregadas - A margem da barra de localização foi aumentada para facilitar a seleção com o mouse
- Em
search_url, os prefixos de busca passam a ser tratados por correspondência exata, e não parcial - O mecanismo de busca Mojeek foi adicionado com o atalho
mj - Elementos de formulário como botões e campos de entrada com CSS
display:noneagora passam a ser ocultados - O envio de formulários foi ajustado para evitar respostas em cache
- O cabeçalho
Content-Dispositionagora é suportado para definir nomes de arquivo - A opção
trace_httpfoi adicionada para permitir depuração de tráfego HTTP
Bugs corrigidos e informações de distribuição
- Foi corrigido um problema de formato printf com
%não escapado que causava loop infinito emvsource dpiem ambientes musl - Foi corrigido um segfault que ocorria durante o teste TLS CurveBall no LibreSSL
- O parsing de
Max-Ageem cookies foi corrigido para usar epoch, e não o fuso horário local - Foram corrigidos problemas de build no NetBSD, e o código também passou a evitar sign extension incorreta em
ctype(3) - Foi corrigido um problema de use-after-free na caixa de diálogo de conexão entre o servidor HTTP e o OpenSSL
- O URL do site foi atualizado para https://dillo-browser.org/, e o repositório git para https://git.dillo-browser.org/dillo
Download e migração de repositório
- Os arquivos da versão 3.3.0 estão disponíveis em dillo-3.3.0.tar.gz (1.4M) e signature
- Houve migração do GitHub para um servidor próprio, com detalhes em migration-from-github
- O repositório git é oferecido no cgit auto-hospedado e também é espelhado no Codeberg e no SourceHut
1 comentários
Comentários do Hacker News
Uso o Dillo com frequência. Parabéns
Com os projetos de lei de verificação de idade continuando a aparecer e dependendo de como o Firefox reagir, parece possível que o Dillo acabe virando o navegador padrão de fato no Linux e no BSD
Se esse tipo de lei realmente entrar em vigor e o Firefox passar a incluir lógica de verificação de idade, eu migro 100% para o Dillo
É bem assustador ver tantos países cedendo a isso tão rapidamente
Pode ser que muita gente ainda não acredite nisso agora, mas acho que daqui a alguns anos a navegação anônima na web pode virar coisa do passado
Também é preciso observar os ataques contra VPNs. Isso não parece uma série de incidentes isolados por acaso, mas um movimento coordenado na mesma direção
Precisamos deixar o fluxo de dinheiro mais claro, e já estou de saco cheio dessa situação controlada por lobistas
Infelizmente até o Google começou a exigir JS, e isso é um golpe grande para navegadores pequenos e para a web aberta
Para uma lista mais detalhada sobre mecanismos de busca, o texto do Seirdy está muito bem organizado: https://seirdy.one/posts/2021/03/10/search-engines-with-own-...
Tecnicamente isso não é totalmente verdade, mas o Google está presente em várias áreas importantes da web, e o Chrome é só o exemplo mais visível disso
O JavaScript do começo era muito mais simples, e JIT também não era necessariamente preciso. Pessoalmente, ainda acho melhor sem JIT
Muito obrigado aos desenvolvedores. Adoro esse tipo de projeto retrô
Uso o Dillo todos os dias e, no meu caso, principalmente para uso interno
Graças à arquitetura de plugins, ele também consegue renderizar protocolos como gemini e gopher, então eu o uso até para ver sites gemini
É realmente extremamente leve
Clientes de Mastodon também não funcionam muito bem, mas pelo menos existe uma alternativa: https://codeberg.org/adele/smolfedi
No meu caso, quando uso o Dillo aqui no HN, continuo recebendo 429, mas isso não acontece em navegadores completos comuns
Não sei se é por causa de JS
Gostaria de saber se esse fenômeno é reproduzível e, se for, se você poderia incluir os headers HTTP
De qualquer forma, além da nossa instância cgit, também há espelhos no Codeberg e no SourceHut
https://git.dillo-browser.org/dillo/
https://codeberg.org/dillo/dillo
https://git.sr.ht/~dillo/dillo
Já falei isso várias vezes em outros posts sobre o Dillo, mas foi graças ao Dillo que consegui acessar a web pela primeira vez em um velho PC 486
Era uma máquina com Damn Small Linux instalado, e sem o Dillo naquela época o acesso à web teria sido realmente difícil
O dilloc já tinha começado em commits antigos do git anteriores ao lançamento 3.3.0, e foi realmente impressionante
Também dá para criar facilmente itens de menu de redirecionamento que chamam scripts parecidos com plumber ou xdg-open
A ideia é substituir URLs com JS por URLs sem JS, como o Libredirect do Firefox/Chromium
Queria saber se existe algum lugar onde se possa obter binários pré-compilados entre as versões mais recentes da porta para Windows do Dillo
É uma pena que o Dillo seja em C++
Eu queria tentar compilá-lo com compiladores C pequenos e simples como cproc/qbe ou tinycc
Ainda assim, sinto que isso mostra algum sinal de que IAs de programação podem ajudar razoavelmente bem numa migração em massa de C++ para C simples
Acho que ainda não chegamos lá