Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
|
|
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
|
|
|
|
|
|
Fixes: https://github.com/dillo-browser/dillo/issues/66
|
|
Reviewed-by: dogma
|
|
When a <meta> tag reports the "text/xhtml" content, we were correcting
it to the type guessed in TypeDet. However, the current
implementation to guess XHTML and HTML pages fails if the doctype is not
at the start of the document, falling back to text/plain.
A more robust solution is to set the TypeNorm to
"application/xhtml+xml", which can be handled by a_Mime_get_viewer() as
an HTML-like document.
Reported-by: Kevin Koster <dillo@ombertech.com>
See: https://lists.mailman3.com/hyperkitty/list/dillo-dev@mailman3.com/thread/7GJ4AAMFFPEHOIYEOH4NHVMSXMJDFYXG/
|
|
|
|
|
|
|
|
|
|
a status message
|
|
|
|
|
|
I'm not including the preload file yet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...now that floats and grows are in the repo and I won't be making
Sebastian's life difficult with a bunch of whitespace changes.
|
|
http://lists.dillo.org/pipermail/dillo-dev/2014-July/010190.html
and no one objected, and it hasn't given me any trouble, so...
|
|
|
|
For a long time it had a custom ADT with a list of nodes and each
node a linked list (with pointers). The last memory bug motivated me to
try to normalize it to use dlib. Now, it got simpler, shorter, and
possibly faster (although conversion wasn't a simple task).
PD: It also uses less memory now.
|
|
Using the same testing files as the previous patch,
the results are:
.---------------------------------------------.
|imgbufs | No patch | Patch #1 | Patch #2 |
|----------------------------------------------
|1imgA.html | 2/1 | 1/1 | 1/0 |
|2imgSA.html | 3/2 | 1/2 | 1/0 |
|3imgSA.html | 4/3 | 1/3 | 1/0 |
|----------------------------------------------
|2imgA.html | 4/2 | 2/2 | 2/0 |
|3imgA.html | 6/3 | 3/3 | 3/0 |
'---------------------------------------------'
n1/n2 means:
n1 imgbufs were created for first load (empty cache)
n2 imgbufs were created for reload (cached image)
Notes:
* Rendering is much faster. Easy to notice with Back operation.
* Between four to five times on www.welt.de.
* Corner cases can be more than ten times. Usually, it *feels* faster.
|
|
|
|
Last night I looked through the old cvs interface, and it never was
used. For a little while, there was something like ...remove_raw()
calling it, but that in turn was only called in one place, and only
with NULLKey...
|
|
|
|
|
|
|
|
As the behaviour of int overflow is not defined we
rather check for it before incrementing the variable.
Submitted-by: p37sitdu@lavabit.com
|
|
Basically, I and i are different letters in Turkic languages, and this
causes problems for str(n)casecmp and toupper/tolower in these locales
when dillo is dealing with ASCII.
|
|
as suggested by Axel Beckert in
http://lists.auriga.wearlab.de/pipermail/dillo-dev/2011-September/008992.html
|
|
Trying to make it a little clearer. It's surprising how there isn't
a good, brief, clear term for this. Discussion of the concept tends
to start using words like "administration" and "control".
|
|
as mentioned in section 7.1 of RFC 6265
|
|
There was a convoluted way of using an already freed bw:
first, one bw asks for a page, and that becomes conn->bw,
and then another bw starts also asking for the page, and
the first bw closes, invalidating the conn->bw, and then
the second bw closes and the cancel expect code tries to
use the old bw.
Fixed now.
|
|
Sometimes a server will send, say, 500 Internal Server Error with
a Content-Length of 0, and Dillo just happily shows the empty page
instead of the document that you thought you were going to get,
and it's confusing.
|
|
This leak had long made occasional appearances in Jeremy's valgrind
logs, and I supposed it was some complicated CCC interaction, and
didn't want to put a band-aid over the problem without knowing why
it's happening first. But now I finally dug into it, and I see it
coming from aborting in Cache_process_queue() (not viewable, for
instance), and then a_Cache_process_dbuf() never gets IOClose, which
makes a lot of sense!
|
|
|
|
|
|
|
|
Surprising that it took a week for me to notice anything was wrong.
|
|
|
|
same_domain option in preference so that spying on users isn't so easy.
|