Summary of changes
The Dillo 3.3.0 release contains several new features, configuration options and bug fixes. It is the first release to provide experimental support for FLTK 1.4 (see the details below).
Control via UNIX socket
A new dilloc program is now available to control Dillo from the
command line or from a script. It searches for Dillo by the PID in the
DILLO_PID environment variable or for a unique Dillo process if not
set. You can see the available commands with dilloc help:
% dilloc help
Commands return 0 on success or non-zero on error.
Available commands:
ping Check if dillo replies correctly:
pid Print PID of selected dillo process
reload Reload the current tab
ready Exits with 0 if finished loading, 1 otherwise
open URL Open the given URL in the current tab
url Print the url in the current tab
title Print the title of page in the current tab
status [MSG] Set the status bar to MSG
dump Print the content of the current tab
hdump Print the HTTP headers of the current tab
load Replace the content in the current tab by stdin
rawload Replace the HTTP headers and content of the current
tab by stdin
quit Close dillo
wait [T] Wait until the current tab has finished loading
at most T seconds (default 60.0). Wait forever with
T set to 0.
Page actions
We have added the ability to run arbitrary commands from the page menu
(right click on the page) with the page_action new option.
With page actions, dilloc provides a powerful mechanism to
perform page manipulations. Here is an example page action in
~/.dillo/dillorc:
page_action="Mimic Chrome:curl_chrome136 $url | dilloc load"
When the "Mimic Chrome" option is selected, the current page will be fetched again using curl impersonate to mimic Chrome (which avoids some JS walls) and the output will be piped directly into Dillo as the new HTML of the current page.
Another example is the "Fix page" action, which tries to find specific fixes for the current page based on the URL, HTTP headers or other criteria:
page_action="Fix page:~/.dillo/actions/fixpage.sh"
See the actions git
repository to download the
fixpage.sh
script.
FLTK 1.4 experimental support
We have added experimental support to build Dillo with FLTK 1.4.0 and higher
with the new --enable-experimental-fltk configure flag, so that
experienced users and testers can provide technical feedback on different
platforms. Be sure to use the latest
FLTK 1.4.5
release
which contains fixes to solve the
problems with blurry fonts.
We have similar rendering quality in FLTK 1.4.5 as in FLTK 1.3 on a X11 platform with a 96 DPI screen (both with the Xft and Pango backends), but we still have rendering problems with higher DPIs (specially non-multiple of 96) or with Wayland. You can track the status in the corresponding FLTK issue.
Important: If you maintain a Dillo package, do not enable FLTK 1.4 support by default for all users as they will be exposed to visual glitches and other issues.
Fixed OAuth login
In order to perform the OAuth authentication (for example to login into Fediverse via Smolfedi) we need to allow cookies that are set in a redirection response. By default Dillo blocks all third party cookies that are not caused by a request initiated by the user, so we can prevent tracking by image pixels. We added an exception to also allow cookies from redirections of the main page after the user initiated request, so we can still stay safe against tracking but allow OAuth to work.
Download
To download the 3.3.0 release use these links:
Notice that we have migrated from GitHub to our own server. The git repositories are now served by our self-hosted cgit and also mirrored in Codeberg and SourceHut.
Detailed changes
This is the list of changes from the ChangeLog of this release:
- Rodrigo Arias Mallo:
- Add optional support for brotli (br) content encoding.
- Add
about:keysto display current keyboard shortcuts. - Control + left click opens links in new tab (emulates mouse middle button).
- Ctrl+C copies selected text into the clipboard so Ctrl+V works as expected.
- Enable IPv6 support by default if supported by the platform.
- Focus the N-th tab with the Alt+
shortcut. - Fix vsource dpi infinite loop on musl due to unescaped "%" printf format.
- Add
about:cacheandabout:dicachepages to show internal cache details. - Add mojeek search engine with shortcut "mj".
- Hide form elements (like buttons and inputs) with display:none in CSS.
- Increase margin in location bar to make it easier to select with the mouse.
- Navigate back and forward with mouse buttons.
- Fix OAuth login by allowing cookies in root 30X redirects.
- Add support for remote control via a UNIX socket (enabled by default,
disable with
--disable-control-socket). - Add new dilloc program to remote control dillo from the command line.
- Set
DILLO_PIDvariable when executing actions so dilloc can read it. - Add support for "page_action" option to define custom entries in the page menu to run programs or scripts.
- Add "mark_unloaded_images" option to show a border in images not loaded, so they are easier to see.
- Fix segfault on CurveBall TLS test with LibreSSL.
- Match complete search prefixes in "search_url" to avoid partial matches.
- Update website URL to https://dillo-browser.org/ and git repository to https://git.dillo-browser.org/dillo.
- Add "trace_http" option to debug HTTP traffic.
- Avoid cached responses when submitting forms.
- Fix cookie Max-Age parsing using the epoch instead of the local timezone.
- Add experimental FLTK >= 1.4 support with the
--enable-experimental-fltkconfigure flag.
- Patches by Alex
- Middle click on back or forward button opens page in new tab.
- Patches by Cameron Paul, Rodrigo Arias Mallo
- Add support for Content-Disposition header to set the filename.
- Patches by Leonardo Taccari
- Fix build in NetBSD and avoid ctype(3) incorrect sign extension.
- Patches by Magnus Larsen
- Fix use-after-free in HTTP server and OpenSSL connection dialog.