Lanzamiento del navegador Dillo 3.3.0
(dillo-browser.org)- 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
dillocy un socket UNIX activado por defecto - La opción
page_actiondel menú contextual de la página permite ejecutar comandos arbitrarios, y junto condilloctambié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
- Busca el destino con el PID de la variable de entorno
- 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_actionpara permitir ejecutar comandos arbitrarios desde el menú contextual de la página - Si se usan juntos
page_actiony 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
- Por ejemplo, si se configura
- 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
- El script relacionado
fixpage.shpuede descargarse desde el repositorio actions
- El script relacionado
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
- Esta versión incluye una corrección para el problema de fuentes borrosas
- 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
- El estado del progreso puede revisarse en el issue relacionado de FLTK
- 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:keyspara ver los atajos de teclado actuales - Se agregaron las páginas
about:cacheyabout:dicachepara 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 clickpermite 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+Cahora copia el texto seleccionado al portapapeles, alineándose con el comportamiento esperado deCtrl+V- Se agregó la opción
mark_unloaded_imagespara 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_httppara depurar tráfico HTTP
Errores corregidos e información de distribución
- Se corrigió un problema de formato
printfcon%sin escapar que provocaba un bucle infinito envsource dpien entornos musl - Se corrigió un segfault que ocurría durante la prueba TLS CurveBall en LibreSSL
- El análisis de
Max-Ageen 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
- Los archivos de distribución de 3.3.0 se ofrecen como dillo-3.3.0.tar.gz (1.4M) y su signature
- Se migró de GitHub a su propio servidor; los detalles pueden consultarse en migration-from-github
- El repositorio git está disponible en su propio cgit y también se replica en Codeberg y SourceHut
1 comentarios
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.
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.
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-...
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.
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.
Me pregunto si este fenómeno es reproducible, y si lo es, quisiera saber si puedes adjuntar los encabezados HTTP.
De todos modos, además de nuestra instancia de cgit, también hay espejos en Codeberg y SourceHut.
https://git.dillo-browser.org/dillo/
https://codeberg.org/dillo/dillo
https://git.sr.ht/~dillo/dillo
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.
Creo que todavía no hemos llegado a ese punto.