| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
it has to clear old styles too
|
|
|
|
|
|
|
|
|
|
| |
FD_CLOEXEC should hopefully get rid of bugs where buffers outlived the
main process because of some stray child process keeping the canary
pipe alive.
It's not perfect because of the runMailcapWriteFile/runMailcapReadFile
double-forks. Ideally they should be replaced with an implementation
that tracks temporary files in the main process.
|
|
|
|
|
|
| |
style/layout invalidation is a mess :(
Fixes acid3 test00
|
|
|
|
| |
this way, markURL works on stack traces
|
|
|
|
| |
so that unicode anchors work too
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Until now, we just stuffed it into the URL, which was somewhat
problematic.
Mainstream browsers like to hide the username from the user, but I've
decided to follow w3m: buffers do not receive auth info, but the pager
itself displays the username.
As for the origin: I wanted to use the regular origin, but that does not
work with any custom URL. So instead of changing the regular origin
function, I've added another.
|
|
|
|
|
|
|
|
|
| |
* add failed buffers to history too
* make buffer.history and siteconf history actually do something
* prevent history in dump mode after retry too
* disable history in test configs
ref. https://todo.sr.ht/~bptato/chawan/39
|
|
|
|
|
| |
more intuitive than shoehorning it into "view image"
(also makes it easier to apply the content type)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mostly compatible with other browsers/tools that follow the
Netscape/curl format.
Cookie jars are represented by prepending "jar@" to the host part, but
*only* if the target jar is different than the domain. Hopefully, other
software at least does not choke on this convention. (At least curl
seems to simply ignore the entries.)
Also, I've moved cookies.nim to config so that code for local files
parsed at startup remains in one place.
|
|
|
|
|
| |
"No CGI dir configured" is no longer a common case, so it's OK to just
return "CGI file not found".
|
|
|
|
| |
Now screen.width etc. works in the pager too.
|
|
|
|
|
|
|
| |
It isn't really limited to config. It just happens to be in
XDG_CONFIG_HOME because XDG basedirs suck.
(W3M_DIR works similarly.)
|
|
|
|
| |
Respects autofocus.
|
|
|
|
|
|
|
|
|
|
| |
For APIs that cannot be implemented in a privacy-friendly manner.
As a start, I've added accurate screen size queries; getComputedStyle,
getBoundingClientRect, etc. should follow. (We have a harmless
getComputedStyle already, but it's broken.)
Probably, things like JS-based scroll belong in here too, but I'm not
sure yet. (Perhaps autofocus should be reused instead?)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix luwrap comparison function
* strip high unicode controls in term/pager
* use wcwidth in dirlist2html
* remove combining category from strwidth
* remove unused "disallowed" field from lineedit
My initial goal with switching to wcwidth in dirlist2html was just to
get rid of the outdated combining map in charwidth_gen. Then I realized
that layout will normalize those out anyway, so we don't actually have
to deal with them anywhere.
Also, I found a few bugs in the process; high unicode control chars not
being stripped out was a particularly bad one, as it allows for pages to
mess up the terminal output. (Easiest way to replicate: just open a
random binary file without this patch.)
|
|
|
|
|
|
| |
It was named "fragment" mainly because I added it back when there was
still a separate InlineBox type and I needed another name.
Now InlineBox is gone, and I'm tired of typing fragment.
|
| |
|
| |
|
|
|
|
| |
doing it manually is too error prone
|
| |
|
| |
|
|
|
|
| |
Lets us skip a couple pointless multiplications/divisions during layout.
|
|
|
|
|
|
|
|
| |
* correct action on M-b
* add external.bookmark option
* move openFileExpand functionality into unquote
* add menu items
* update docs
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It gets copied once anyway, so just use a blob.
I guess I could skip the copy with some effort, but the 4 lines
implementation is too attractive :P
This is still an improvement, as it doesn't needlessly zero-fill the
buffer on realloc.
(I've also removed the final realloc from blob, as it seemed quite
pointless. Using Content-Length could help... except it doesn't,
because it refers to the encoded length. Ugh.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unconditionally registering output handles on resume could result in a
failed assertion on double-register.
The bug would appear like:
resume (register) -> handleRead -> pushBuffer -> currentBuffer is nil ->
register again
handleWrite had a very high likelihood of occurring between resume and
handleRead, and that hid the bug by immediately unregistering the handle
after resume. In fact, I haven't been able to reproduce the bug at all
today, and only found it after poring over the source...
Fix this by not registering output handles that are empty (except
if the istream is already finished, in which case it will just be
unregistered).
|
|
|
|
|
|
|
|
|
|
|
|
| |
* remove std/streams use from mime.types; mmap and parse directly
* use mime.types for inline image extensions
* add some jpeg file extensions
Latter came up because I was trying to add a format locally and it
wouldn't recognize it on images from my file system (i.e. by extension).
As a security measure we still do not allow additional extensions for
predefined inline image types.
|
|
|
|
| |
only the most basic form; no media queries yet
|
|
|
|
| |
whoops
|
|
|
|
|
|
|
| |
with buffer.images enabled, we already cache them, so we can skip the
additional request
also, add saveImage, bound to sI
|
|
|
|
|
| |
This couldn't get into system.nim for technical reasons, but it's still
pretty useful when iterating over non-mutable openArrays.
|
|
|
|
|
| |
Fixed a bug that would lead to styles unnecessarily being recalculated
if the root element had a :hover dependency.
|
| |
|
|
|
|
|
|
| |
eh
probably have to move the event loop to pager...
|
|
|
|
| |
one less mystery
|
|
|
|
| |
merge text nodes, eat nobr, wbr
|
| |
|
|
|
|
|
|
|
| |
It necessarily removes the config.images check from codec access, which
I'm not quite happy about, so I've added a check to the DOM instead.
(TODO: maybe pager should just dynamically grant codec access as a
capability instead? but maybe that's even more error prone...)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was a bit annoying because it triggered the popup warning on
cursorNextLink -> click with form buttons (as the square brackets around
[button] are implemented with ::before/::after.)
Notably, this also removes the visibility check from isClickable.
I suspect there was a good reason why I added it, but I can't remember
why, and it's incompatible with what desktop browsers do on:
<a href="https://asdf.com" style="visibility: hidden">
<div style="visibility: visible">
test
</div>
</div>
So if it's ever added back, then this case should be respected too.
|
|
|
|
|
| |
findPrevLink is still an unreadable mess, but at least findNextLink
looks alright now.
|
|
|
|
| |
kill qmark hack, plus refactor the form data parser/serializer
|
| |
|
|
|
|
|
|
|
| |
most of it has already been moved to monoucha, and the rest fits better
in other directories.
also, move urimethodmap to config
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
23beebe6 introduced a regression that broke gotoAnchor. This fixes that,
plus a couple other long-standing gotoAnchor bugs:
* If no anchor is found, do not dupe the buffer.
Desktop browsers still add a history entry, while w3m prints an
error. I've copied the latter because it makes more sense as a user,
but this will have to be refined for the navigation API at some point.
* If the anchor *is* found, then always jump to it, even if it's not
visible.
This was a limitation of relying on the line array, so now we rely on
the box tree instead. (Sooner or later, the former must go anyway.)
Also, fix `U' reload not restoring the position (hopefully this time for
good).
|
|
|
|
|
|
|
| |
* query, fragment are now strings, not options
* get rid of Host, Path types, now hostname/pathname are strings
* fix ipv4 parsing error case
* in file protocol, fix URL for dirlist without slash with a redirection
|
|
|
|
| |
as much as I wish it weren't, layout *is* css.
|