| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Speeds up processing of pretty much all documents, because we rarely
need to switch the charset after having downloaded the first chunk.
|
| |
|
|
|
|
|
|
|
|
| |
* factor out pushBuffer to make loadFromCache async
* fix incorrect cache path
* replace rewind with loadFromCache (it does the same thing except
actually works)
* remove rewindImpl callback, rewind in buffer instead
|
| |
|
|
|
|
|
| |
do_reshape could move the target element, and thus call click on the
wrong clickable.
|
|
|
|
|
| |
* show submission URL on hover for all form-associated elements
* skip non-checked checkbox/radio inputs
|
| |
|
|
|
|
| |
useful for filtering stuff through commands like rdrview
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At last all BufferSources are unified.
To achieve the same effect as the previous CLONE source type, we now
use the "fromcache" flag in Request. This *forces* the document to be
streamed from the disk; if the file no longer exists for some reason,
an error is returned (i.e. the document is not re-downloaded).
For a document to be cached, it has to be the main document of the
buffer (i.e. no additional resources requested with fetch()), and
also not an x-htmloutput HTML file (for those, the original source is
saved). The result is that toggleSource now always returns the actual
source for e.g. markdown files, not the HTML-transformed version.
Also, it is now possible to view the source of a document that is
still being downloaded.
buffer.sstream has almost been eliminated; it still exists, but only as
a pseudo-buffer to interface with EncoderStream and DecoderStream. It no
longer holds the entire source of a buffer at any point, and is cleared
as soon as the buffer is completely loaded.
|
|
|
|
|
| |
Instead, use a stream: scheme and associate hostnames with file
descriptors directly from the pager.
|
|
|
|
|
|
|
|
|
|
|
|
| |
My eyes are bleeding, but at least there is a chance that this does what
I wanted.
The previous tee implementation mixed buffer and loader fds, so it was
fundamentally broken. Also, it used MultiStream which makes asynchronous
streaming impossible.
This time we use a flat array of output handles and link to them any
buffers not written to the target yet.
|
|
|
|
|
|
| |
Caused by a race condition when updateHover is executed after
buffer.lines.len changed in buffer but before the change has been
reported to container.
|
| |
|
|
|
|
|
| |
We no longer have to wait for the entire document to be loaded to start
loading CSS.
|
| |
|
|
|
|
|
| |
tagType is now a function call, but usually it's enough to just test for
the object type.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Yay!
Admittedly, it is not very useful in its current form, except maybe on
very slow networks.
The problem is that renderDocument is *slow*, so we only run it when
onload fails to consume all bytes from the network in a single pass.
Even then, we are guaranteed to get a FOUC, since CSS is only downloaded
in finishLoad(). Well, I think it's cool, anyway.
|
|
|
|
|
|
|
|
| |
* Update chame to the latest version
* Get rid of nodeType usage
* Add atoms
* Re-implement DOM attributes
* document.write
|
|
|
|
|
| |
* parse manpage output styled ugly backspace overstrike formatting
* fix broken charset detection for large files
|
|
|
|
|
|
|
| |
* Unify form variable for all form-associated elements
* Fix broken form association logic in resetFormOwner
* Use form action for all form-associated submitters
* Remove unused getElementsByTag + de-extern some functions
|
|
|
|
| |
kqueue does not like being closed after fork(2).
|
|
|
|
|
|
|
|
| |
* css/cascade: copy stylesheet in applyMediaQuery (so that changes
are reverted on re-style)
* buffer: clear prevstyled in windowChange (to avoid using cached
results from previous cascading passes); set window.attrs
* pager: avoid windowChange if new attrs are identical to the old ones
|
| |
|
|
|
|
|
|
|
| |
We trap SIGINT with setControlCHook to avoid buffers being killed by
the process group receiving a SIGINT; trapping it to cleanup has the
opposite effect. SIGTERM should be enough, as that is what we use for
cleaning up buffers.
|
|
|
|
| |
much better
|
|
|
|
| |
Can happen e.g. if the window is resized or the user manually reshapes.
|
|
|
|
|
|
| |
* use signal handlers to avoid littering tmpdir with dead sockets
* add connection reset error (for socketstream)
* convert some imports to new style
|
|
|
|
|
|
| |
This was documented, but not implemented until now.
Also, improve the loader module's protocol documentation.
|
| |
|
|
|
|
|
| |
Avoid computing e.g. charwidth data for http which does not need it
at all.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now it is (technically) no longer mandatory to link to libcurl.
Also, Chawan is at last completely protocol and network backend
agnostic :)
* Implement multipart requests in local CGI
* Implement simultaneous download of CGI data
* Add REQUEST_HEADERS env var with all headers
* cssparser: add a missing check in consumeEscape
|
| |
|
|
|
|
|
|
|
|
| |
{ & } acts like in vi (except the cursor is not moved to the line
beginning).
No reason to leave externInto undocumented, as it is even used in
the default config.
|
| |
|
| |
|
|
|
|
| |
(and expose it as a JS function)
|
|
|
|
|
| |
As the comment says, buffer.document only exists if buffer.ishtml
is true.
|
| |
|
|
|
|
|
|
|
| |
* Add DOMContentLoaded
* Re-use the same event object for all elements
* Reshape if an event was fired
* Reshape on setTimeout/setInterval fired
|
| |
|
|
|
|
|
| |
It's better to not do it perfectly in 100% of all cases than to
loop through the entire document in all cases.
|
|
|
|
|
| |
Viewport at this point is basically just the layout state, so it
makes no sense to store it in buffer.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Maybe it's easier to avoid accidentally including like this
|
|
|
|
|
|
| |
* rename module (window -> winattrs, to avoid conflict with env/window)
* do not use result
* remove unused cell_ratio
|
| |
|
|
|
|
|
| |
then() is called even if a nil Promise is returned, so an Opt is
needed here.
|