Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
Breaking the loop causes missing leaks that are otherwise visible when
closing the tab.
|
|
|
|
|
|
|
|
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.
|
|
Allows detecting memory leaks on exit automatically.
|
|
|
|
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.
|
|
See: https://en.wikipedia.org/wiki/Mojeek
|
|
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.
|
|
|
|
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
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
Allows jumping directly to a given tab. It encourages a low number of
tabs opened, otherwise it will exceed the 1 to 10 range.
|
|
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.
|
|
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/
|
|
Make sure that users or package maintainers don't accidentally enable
developer options designed to be run by developers only.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
|
|
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.
|
|
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>
|
|
|
|
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.
|
|
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
|
|
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.
|
|
|
|
|
|
See: https://github.com/dillo-browser/dillo/issues/410
|
|
See: https://github.com/dillo-browser/dillo/issues/406
|
|
See: https://github.com/dillo-browser/dillo/issues/407
|
|
The Emacs shortcut was overriding the FLTK behavior of selecting all
input text.
Fixes: https://github.com/dillo-browser/dillo/issues/400
|
|
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
|
|
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.
|
|
|
|
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
|
|
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
|
|
See: https://github.com/dillo-browser/dillo/issues/338
|
|
|
|
|