4 puntos por GN⁺ 1 일 전 | 1 comentarios | Compartir por WhatsApp
  • Se reforzaron notablemente el control remoto y la automatización, permitiendo manejar el navegador directamente desde la línea de comandos y scripts con el nuevo programa dilloc y un socket UNIX activado por defecto
  • La opción page_action del menú contextual de la página permite ejecutar comandos arbitrarios, y junto con dilloc también hace posible volver a cargar o reemplazar la página actual
  • El manejo de inicio de sesión con OAuth cambió para permitir de forma excepcional cookies en redirecciones de la página principal posteriores a una solicitud iniciada por el usuario, haciendo que el flujo de autenticación funcione sin dejar de bloquear cookies de terceros
  • El soporte experimental inicial para FLTK 1.4 puede compilarse con --enable-experimental-fltk, pero todavía presenta problemas de renderizado en DPI altos o en Wayland, por lo que no debe activarse por defecto para todos los usuarios
  • También incluye soporte opcional para brotli, about:keys·about:cache·about:dicache, activación predeterminada de IPv6, mejoras en pestañas, mouse y portapapeles, además de múltiples correcciones de seguridad y compilación, elevando en general la usabilidad y estabilidad

Cambios principales

  • 3.3.0 incluye nuevas funciones, opciones de configuración y correcciones de errores, y además agrega por primera vez soporte experimental para FLTK 1.4
  • Se incorpora control por socket UNIX y acciones de usuario basadas en el menú de página, lo que permite manejar el navegador directamente desde scripts y la línea de comandos
  • La corrección del inicio de sesión con OAuth ajusta el manejo de cookies durante las redirecciones para que el flujo de autenticación funcione sin perder la protección contra rastreo

Control remoto y automatización

  • Se agregó el programa dilloc, que permite controlar Dillo desde la línea de comandos o scripts
    • Busca el destino con el PID de la variable de entorno DILLO_PID, y si no existe ese valor, busca un proceso único de Dillo
    • Ofrece comandos de control como ping, pid, reload, ready, open URL, url, title, status, dump, hdump, load, rawload, quit, wait
  • El socket de control remoto viene activado por defecto y, si hace falta, puede desactivarse con --disable-control-socket
  • Al ejecutar acciones se define la variable DILLO_PID, lo que permite que dilloc controle de inmediato la instancia actual de Dillo

Acciones de página

  • Se agregó la opción page_action para permitir ejecutar comandos arbitrarios desde el menú contextual de la página
  • Si se usan juntos page_action y dilloc, se pueden hacer operaciones como volver a obtener o reemplazar el contenido de la página actual
    • Por ejemplo, si se configura page_action="Mimic Chrome:curl_chrome136 $url | dilloc load", se puede volver a obtener la página como si fuera Chrome con curl impersonate e inyectar el HTML directamente en la pestaña actual
    • Este método puede servir para evitar algunas JS walls
  • También se incluye un ejemplo de Fix page que ejecuta scripts de modificación para la página actual según la URL, encabezados HTTP y otras condiciones

Estado del soporte para FLTK 1.4

  • Se agregó soporte experimental para compilar con FLTK 1.4.0 o superior usando la bandera --enable-experimental-fltk
  • Es una función incluida para pruebas y retroalimentación técnica, pensada para usuarios experimentados y testers
  • Se recomienda usar FLTK 1.4.5 release
  • En pantallas X11 de 96 DPI, FLTK 1.4.5 y FLTK 1.3 muestran una calidad de renderizado similar
    • Esto aplica tanto a los backends Xft como Pango
  • En entornos de DPI alto, especialmente con DPI que no son múltiplos de 96 o en Wayland, todavía quedan problemas de renderizado
  • Los mantenedores de paquetes de Dillo no deben activar FLTK 1.4 por defecto para todos los usuarios
    • Podrían aparecer glitches visuales y otros problemas

OAuth y manejo de cookies

  • Para la autenticación OAuth, se ajustó el comportamiento para permitir cookies establecidas en respuestas de redirección
  • Por defecto, Dillo bloquea todas las cookies de terceros cuando no provienen de una solicitud iniciada directamente por el usuario
    • Es un comportamiento pensado para impedir el rastreo basado en píxeles de imagen
  • Con esta corrección, se permiten excepcionalmente cookies en redirecciones de la página principal posteriores a una solicitud iniciada por el usuario
    • Así se mantiene la protección contra rastreo y al mismo tiempo funciona el inicio de sesión con OAuth
  • Como ejemplo, se incluye el inicio de sesión en Fediverse mediante Smolfedi

Nuevas funciones y mejoras de comportamiento

  • Se agregó soporte opcional para la codificación de contenido brotli br
  • Se agregó about:keys para ver los atajos de teclado actuales
  • Se agregaron las páginas about:cache y about:dicache para consultar información del caché interno
  • IPv6 se activa por defecto si la plataforma lo soporta
  • El atajo Alt+ permite enfocar la pestaña número N
  • Control + left click permite abrir enlaces en una nueva pestaña
  • Ahora se puede ir hacia atrás y hacia adelante con los botones del mouse
  • Si se hace clic medio en los botones de atrás o adelante, la página correspondiente se abre en una pestaña nueva
  • Ctrl+C ahora copia el texto seleccionado al portapapeles, alineándose con el comportamiento esperado de Ctrl+V
  • Se agregó la opción mark_unloaded_images para mostrar un borde en imágenes que no se cargaron
  • Se amplió el margen de la barra de dirección para facilitar su selección con el mouse
  • En search_url, los prefijos de búsqueda se tratan como coincidencia completa y no parcial
  • Se agregó el motor de búsqueda Mojeek con el atajo mj
  • Ahora se ocultan elementos de formulario como botones y campos de entrada cuando tienen CSS display:none
  • Al enviar formularios, se ajustó el comportamiento para evitar respuestas en caché
  • Se agregó soporte para el encabezado Content-Disposition, lo que permite definir nombres de archivo
  • Se agregó la opción trace_http para depurar tráfico HTTP

Errores corregidos e información de distribución

  • Se corrigió un problema de formato printf con % sin escapar que provocaba un bucle infinito en vsource dpi en entornos musl
  • Se corrigió un segfault que ocurría durante la prueba TLS CurveBall en LibreSSL
  • El análisis de Max-Age en cookies se corrigió para usar epoch en vez de la zona horaria local
  • Se corrigieron problemas de compilación en NetBSD y también se evitó una sign extension incorrecta de ctype(3)
  • Se corrigió un problema de use-after-free en el cuadro de diálogo de conexión entre el servidor HTTP y OpenSSL
  • La URL del sitio web se actualizó a https://dillo-browser.org/ y el repositorio git a https://git.dillo-browser.org/dillo

Descargas y migración de repositorio

1 comentarios

 
GN⁺ 1 일 전
Comentarios en Hacker News
  • Uso Dillo con frecuencia. Felicidades.
    A medida que siguen apareciendo leyes de verificación de edad, y dependiendo de cómo responda Firefox, parece que Dillo podría convertirse en el navegador predeterminado de facto en Linux y BSD.
    Si estas leyes realmente se aplican y Firefox termina incorporando lógica de verificación de edad, yo me paso 100% a Dillo.

    • Es totalmente posible, pero las leyes de estimación de edad hay que verlas como parte de una tendencia mucho más grande.
      Da bastante miedo ver a tantos países ceder a esto tan rápido.
      Aunque ahora haya gente que no lo crea, en unos años la navegación web anónima podría ser cosa del pasado.
      También hay que observar los ataques dirigidos a las VPN. Esto no parece una serie de incidentes aislados por casualidad, sino un movimiento coordinado en una sola dirección.
      Hay que dejar mucho más claro el flujo del dinero, y ya me tiene harto que los lobistas controlen la situación.
  • Lamentablemente, hasta Google empezó a exigir JS, y esto es un golpe fuerte para los navegadores pequeños y la web abierta.

    • Sí, en navegadores así https://html.duckduckgo.com funciona bastante bien :)
    • Al índice de Google todavía se puede acceder sin JS mediante motores de búsqueda proxy. Por ejemplo, Startpage es uno de ellos.
      Para una lista más detallada sobre motores de búsqueda, el artículo de Seirdy lo resume muy bien: https://seirdy.one/posts/2021/03/10/search-engines-with-own-...
    • De hecho, yo diría que esto casi es una función. Si un sitio web no funciona en HTML básico, probablemente sea una pérdida de tiempo.
    • Ya da la impresión de que Google decide el rumbo de la web.
      Estrictamente hablando no es del todo cierto, pero Google está metido en muchas de las áreas importantes de la web, y Chrome es solo el ejemplo más visible.
    • Pero, ¿de verdad hace falta llegar hasta ES6?
      El JavaScript de los inicios era mucho más simple, y el JIT tampoco era indispensable. Personalmente, todavía me parece mejor no tener JIT.
  • Muchísimas gracias a los desarrolladores. Me encantan este tipo de proyectos retro.
    Uso Dillo a diario, y en mi caso sobre todo internamente.
    Gracias a la arquitectura de plugins, también puede renderizar protocolos como gemini o gopher, así que lo uso incluso para ver sitios gemini.
    Es increíblemente ligero.

  • Los clientes de Mastodon tampoco funcionan muy bien, pero al menos hay una alternativa: https://codeberg.org/adele/smolfedi

  • En mi caso, aquí en HN cuando uso Dillo me devuelve 429 constantemente, pero eso no me pasa con un navegador completo normal.
    No sé si será por JS.

  • Ya lo he dicho varias veces en otros posts sobre Dillo, pero gracias a Dillo pude navegar la web por primera vez en una vieja PC 486.
    Era una máquina con Damn Small Linux instalado, y sin Dillo en ese momento el acceso a la web habría sido muy difícil.

  • dilloc ya había empezado en commits viejos de git, anteriores al lanzamiento 3.3.0, y me impresionó bastante.
    También se pueden crear fácilmente entradas de menú de redirección que llamen a scripts tipo plumber o xdg-open.
    Funciona sustituyendo URLs con JS por URLs sin JS, como Libredirect de Firefox/Chromium.

  • Me pregunto si hay algún lugar donde conseguir binarios precompilados de los ports más recientes de Dillo para Windows.

  • Es una lástima que Dillo esté hecho en C++.
    Lo digo porque quería intentar compilarlo con compiladores de C pequeños y simples como cproc/qbe o tinycc.
    Aun así, sí me da la impresión de que las IA de programación están empezando a mostrar señales de poder ayudar bastante en portar en masa código C++ a C simple.

    • Probé yo mismo con mi código C++ hace unos 6 meses usando herramientas que en ese momento decían ser SOTA, y el resultado fue decepcionante.
      Creo que todavía no hemos llegado a ese punto.