aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-08-30Don't show form inputs with display:noneRodrigo Arias Mallo
When the current element or a parent has display:none, the display_none flag is set and no new element should be added to the viewport. For form inputs, instead of always adding the Embed to the viewport, we only do it if display_none is not set. The Embed is still registered as an input in the form, so it will continue to send the proper form values to the server. For complex buttons that can contain nested elements inside, we switch to a dummy button that doesn't have a Textbox and rely on the logic at html.cc to avoid creating more child elements until the display_none is unset. Fixes: https://github.com/dillo-browser/dillo/issues/433
2025-08-30Use uppercase Submit by default in buttonsRodrigo Arias Mallo
2025-08-30Exit all tabs with SIGUSR2 signalRodrigo Arias Mallo
Breaking the loop causes missing leaks that are otherwise visible when closing the tab.
2025-08-30Also match indirect leaksRodrigo Arias Mallo
2025-08-25Save stderr in a log per test fileRodrigo Arias Mallo
2025-08-25Run leak check automatically in GitHub CIRodrigo Arias Mallo
2025-08-25Detect leaks in test suite with AsanRodrigo Arias Mallo
Leaks from libfontconfig.so are excluded for now, as it doesn't seem to be our fault. The gcc mechanism to suppress leaks doesn't seem to be working, so we fallback to awk. In the presence of leaks, that specific test will fail by returning non-zero, but this will not be what we want for those tests that are currently failing with XPASS. We will only consider the ones that are passing as those targeted for leak detection.
2025-08-24Cleanly exit dillo on USR2 signalRodrigo Arias Mallo
Allows detecting memory leaks on exit automatically.
2025-08-24Free toString() in containers unit testRodrigo Arias Mallo
2025-08-24Object::toString() free responsibility to callerRodrigo Arias Mallo
It already was the caller responsibility, but it was documented as not being so, with a todo comment. Until other implementation is provided, this was leaking memory. No need to keep the const.
2025-08-12Add mojeek search engineRodrigo Arias Mallo
See: https://en.wikipedia.org/wiki/Mojeek
2025-08-12Fix internal page leakRodrigo Arias Mallo
A copy of the buffer is done while injecting the content for about:cache and about:dicache, so the Dstr needs to be free'd after.
2025-08-11Add new cache pages to changelogRodrigo Arias Mallo
2025-08-11Add dicache meaning: decompressed image cacheRodrigo Arias Mallo
From Livio Baldini Soares: > Let me clarify a little bit about what the dicache is. > > This is how Dillo works. When you ask for a URL (be it a root URL, > like a HTML, or an image embedded in a page), it looks it up in a > _memory_ cache. If it's already there it returns the content of the > cache, and if not it makes a connection to retrieve that URL. > > But there is a complication with respect to images. The images which > are downloaded need to be decompressed to be displayed (that is, > transformed from their original format, jpeg, gif, etc, to a bitmap > format). So for images, first the dicache (_d_ecompressed _i_mage > cache) is checked, then the cache, then finally it is retrieved from > the site. The problem with dicache is that it eats up a *LOT* of > memory, and the only benefit is the processing time of transforming > from the original format to the bitmap. That's why the default is NO. See: https://dillo-dev.auriga.wearlab.narkive.com/TYZWEMgE/how-to-use-dicache#post3 See: https://github.com/dillo-browser/dillo/issues/249#issuecomment-2295040723
2025-08-11Add about:dicache for decompressed image cacheRodrigo Arias Mallo
The dicache holds the decompressed buffers for each image and it often is the main cause for memory consumption in Dillo. The current algorithm for evicting entries waits until a image has no references and at least three pages were opened before removing the entry.
2025-08-11Add about:cache page with cache statisticsRodrigo Arias Mallo
The internal network cache holds entries for all the URLs fetched by Dillo, and it only grows over time. It is convenient to be able to see what elements are being currently stored so we can have choose a better criteria if we decide to remove entries to avoid a huge memory usage over time. The entries are generated every time the page is requested, so it always reflects the current state.
2025-08-11Add hit counter in cache entriesRodrigo Arias Mallo
2025-08-11Add dStr_shorten() to make strings shorterRodrigo Arias Mallo
Some URLs are very long and would cause long lines when being displayed. To avoid this problem, we introduce dStr_shorten() to cut them and use "..." in the middle so they fit in the specified character count.
2025-08-11Escape CSS % in printf formatRodrigo Arias Mallo
The % symbol causes a printf format for %; which fails in musl, causing the loop in dStr_vprintfa() to continue expading the buffer. Fixes: https://github.com/dillo-browser/dillo/issues/429
2025-08-08Search for fltk-config1.3 before fltk-configRodrigo Arias Mallo
Arch Linux has changed the default FLTK version to 1.4 and the fltk-config program for 1.3 is renamed to fltk-config1.3. See: https://gitlab.archlinux.org/archlinux/packaging/packages/fltk1.3/-/raw/e04fd1461dc0b6919cacfeee80a432893a4acd69/fltk1.3-1.3.11-integration.patch
2025-08-04Middle click in Home or Book opens in new tabRodrigo Arias Mallo
Open the Home page or the Bookmarks in a new tab if the button is pressed with middle-click, following the same behavior for hyperlinks.
2025-08-04Focus the N-th tab with Alt-<number>Rodrigo Arias Mallo
Allows jumping directly to a given tab. It encourages a low number of tabs opened, otherwise it will exceed the 1 to 10 range.
2025-08-02Handle OpAbort from DPI CCC server sideRodrigo Arias Mallo
When loading http://elpis.ws and then the issue 10, several images are requested via the data: URL which in turn causes many calls to the DPI datauri plugin, and it seems some may fail. When the DPI server fails to reply, an OpAbort is received by the CCC, but is ignored when it comes from the server side. This leaves the connection entry stale, and when navigating backwards, an attempt to read a free chunk of memory causes a crash. Instead of ignoring the OpAbort, we handle it as if the CCC had received an OpEnd event, which propagates the received operation to the chain and then removes the connection.
2025-07-26Add NetBSD default path for CA certificate bundleRodrigo Arias Mallo
In NetBSD the default CA certificate bundle for OpenSSL is located at /etc/openssl/certs/ca-certificates.crt, so we include it in the default search list so it works out of the box. See: https://man.netbsd.org/certctl.8#FILES See: https://wiki.netbsd.org/certctl-transition/
2025-07-12Document developer options in configure helpRodrigo Arias Mallo
Make sure that users or package maintainers don't accidentally enable developer options designed to be run by developers only.
2025-07-12Separate developer options in configure summaryRodrigo Arias Mallo
Those options are not designed to be used by users or package maintainers, so let's make it more clear by moving them in another group.
2025-07-11Report if IPv6 support is enabled with the -v flagRodrigo Arias Mallo
The IPv6 support is stored in the config.h header file, instead of being passed with the -D flag, so it is easier to read from version.cc.
2025-07-11Detect IPv6 support by defaultRodrigo Arias Mallo
To avoid the autodetection and force it to be enabled or disabled use --enable-ipv6 or --disable-ipv6 respectively. Fixes: https://github.com/dillo-browser/dillo/issues/167
2025-07-07Fix text-alignCameron Paul
Inline elements are now aligned based on the text-align value of their containing element instead of their own text-align value. Block level elements are no longer affected by the text-align property. Fixes: https://github.com/dillo-browser/dillo/issues/410
2025-07-07Expand text-align-center test with more test casesCameron Paul
2025-07-02Don't change CFLAGS or LDFLAGS for custom Mbed TLSRodrigo Arias Mallo
Adding the extra flags to search Mbed TLS in CFLAGS and LDFLAGS directly inhibits AC_PROG_CC from injecting the usual -O2 and -g flags. Instead, we add them to MBEDTLS_* set of variables which are only used to locate Mbed TLS. Then we pass them to the Makefile via AC_SUBSTAC_SUBST(). We also move the LIBSSL_* flags to be early on the order of dillo_LDADD, so that extra -L flags which can be injected from fltk-config or other programs, don't accidentally point to /usr/lib or a similar location where it could race with another installation of Mbed TLS. This mechanism won't work for cases in which Mbed TLS has libraries installed in a location other than the default search path, but works for Arch Linux and Gentoo because the symlink them to the default search path, even if they are installed in a different location.
2025-07-02Add options to search custom MbedTLS installationsAzamat H. Hackimov
Some Linux distributions (like Gentoo or Arch) allows to install MbedTLS 2.x and 3.x branches simultaneously. This change helps to find custom MbedTLS locations. Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
2025-06-30Run dpidc stop only if dpid is runningNomarian
2025-06-29Fix webp and brotli status variable in configureRodrigo Arias Mallo
We are interested in webp_ok and brotli_ok which indicates if we can use webp or brotli. Even if the user specifies --enable-webp setting enable_webp to yes, if it is not found it won't be available.
2025-06-29Fix compare output in HTML test driverRodrigo Arias Mallo
Newer versions output two numbers instead of just one, so we pick the first number: ++ compare -metric AE b-div.html_wdir/{html.png,ref.png,diff.png} + diffcount='0 (0)' + '[' '0 (0)' = 0 ']' + echo FAIL FAIL
2025-06-29Set test wait time to 1 second but allow overrideRodrigo Arias Mallo
Use the environment variable DILLO_TEST_WAIT_TIME to lower the default time to wait since dillo window appears and when we take the screenshot to compare the rendering output.
2025-06-29Add extra sleep after window appears in HTML testsCameron Paul
2025-06-29Poll for dillo window during HTML testsCameron Paul
2025-06-16Add HTML test for text-align: centerCameron Paul
See: https://github.com/dillo-browser/dillo/issues/410
2025-06-16Add multiple floats HTML testCameron Paul
See: https://github.com/dillo-browser/dillo/issues/406
2025-06-16Add margin rounding HTML testCameron Paul
See: https://github.com/dillo-browser/dillo/issues/407
2025-05-20Make Ctrl+A select input textRodrigo Arias Mallo
The Emacs shortcut was overriding the FLTK behavior of selecting all input text. Fixes: https://github.com/dillo-browser/dillo/issues/400
2025-05-18Only parse Content-Disposition for root URLsRodrigo Arias Mallo
A server may return the Content-Disposition in elements of a page like images, which would otherwise trigger several "save as" dialogs. Fixes: https://github.com/dillo-browser/dillo/issues/398
2025-05-10Don't use assert to check if realloc() failedRodrigo Arias Mallo
Avoid using assert as when building with NDEBUG defined they become a no-operation so the realloc is never done. Always perform the check and exit accordingly.
2025-05-08Add Marginalia and Wiby search enginesRodrigo Arias Mallo
2025-05-08Make Ctrl+C copy selection into clipboardRodrigo Arias Mallo
Follows the behavior of so many other programs by copying the current text selection into the clipboard with Ctrl+C. Selecting text continues to copy it into the primary selection. Fixes: https://github.com/dillo-browser/dillo/issues/228
2025-05-07Copy links to clipboard selection tooRodrigo Arias Mallo
Selecting text in the page copies only to the primary selection. Copying links via the context menu now places the URL both in the primary and clipboard selections so it can also be pasted with Ctrl+V. See: https://github.com/dillo-browser/dillo/issues/228
2025-05-04Drop Google Search as it now requires JavaScriptRodrigo Arias Mallo
See: https://github.com/dillo-browser/dillo/issues/338
2025-05-02Print brotli version with -vRodrigo Arias Mallo
2025-05-01Add Content-Disposition support to ChangeLogRodrigo Arias Mallo