4 pontos por GN⁺ 1 일 전 | 1 comentários | Compartilhar no WhatsApp
  • 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 dilloc e o soquete UNIX ativado por padrão
  • A opção page_action no menu de clique com o botão direito da página pode executar comandos arbitrários, e junto com o dilloc agora 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_PID e, 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
  • 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_action foi adicionada para permitir a execução de comandos arbitrários no menu de clique com o botão direito da página
  • Usando page_action junto 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
  • 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

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
  • 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
  • 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:cache e about: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 click pode 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+C foi alterado para copiar o texto selecionado para a área de transferência, alinhando-se ao comportamento esperado de Ctrl+V
  • A opção mark_unloaded_images foi 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:none agora passam a ser ocultados
  • O envio de formulários foi ajustado para evitar respostas em cache
  • O cabeçalho Content-Disposition agora é suportado para definir nomes de arquivo
  • A opção trace_http foi 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 em vsource dpi em ambientes musl
  • Foi corrigido um segfault que ocorria durante o teste TLS CurveBall no LibreSSL
  • O parsing de Max-Age em 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

1 comentários

 
GN⁺ 1 일 전
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

    • Faz bastante sentido, mas os projetos de lei de estimativa de idade precisam ser vistos como parte de uma tendência muito maior
      É 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

    • Sim, nesses navegadores https://html.duckduckgo.com funciona bem :)
    • O índice do Google ainda pode ser acessado sem JS por meio de motores de busca proxy. Um exemplo é o Startpage
      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-...
    • Na verdade, eu vejo isso quase como um recurso. Se um site não funciona em HTML básico, provavelmente vai ser perda de tempo de qualquer forma
    • Agora dá a sensação de que o Google manda na web
      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
    • Mas será que precisa mesmo de ES6?
      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

  • 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

    • Tentei isso eu mesmo com meu código C++ há uns 6 meses, usando as ferramentas que na época eram consideradas SOTA, e o resultado foi decepcionante
      Acho que ainda não chegamos lá