| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Instead of generating a separate container box for list items, just set
the marker's display to an internal value that is treated specially.
This fixes a bug where position: relative would not register the correct
block as the positioned ancestor.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old logic was badly copy pasted from the pass that did text
formatting; accordingly, it was overly complex and did not work
correctly.
Now we just add a single formatting cell to override the last one if
it exists. (Formatting cells go from x position -> next cell or line
end, and padding implies that the line had ended before the starting
position of our text.)
I've left in a workaround to what I think is a bug. It may be related
to cursorNextLink getting stuck at the line's end...
|
| |
|
|
|
|
|
|
|
|
| |
* only free callback after setting it to undefined (just in case JS
observes the free with WeakMap etc.)
* do not directly call callback; QJS really doesn't seem to like it when
it deletes itself with removeEventListener
* fix a leak with handleEvent
|
|
|
|
|
| |
This may happen if the buffer crashes while pager is trying to share its
resources.
|
|
|
|
|
|
|
|
|
| |
The issue with brotli was that we were calling toOpenArray with a
uint, and that doesn't really work in Nim (even though it looks like
it does).
So I've removed the circular buffer from brotli and made oqoff an int
for tinfl (which unlike brotli actually needs a circular buffer).
|
|
|
|
|
| |
* ignore username/password if undefined
* do not throw on subsequent fetch with username/password
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Others don't support them either. (Firefox claims to, but only really
decodes Server-Timing for debugging.)
|
| |
|
| |
|
|
|
|
|
|
| |
Never mind, it also broke some other things :(
This reverts commit bc294d3284e0448b2f149ac6d905c8474508791d.
|
|
|
|
|
| |
The algorithm itself is still fundamentally broken, but this at least
prevents some cases of images becoming absurdly large.
|
|
|
|
| |
Now it only does HTTP/1.1, with Connection: close.
|
| |
|
| |
|
| |
|
|
|
|
| |
Lack of cbool is a pain. I'm sticking with JS_BOOL for now.
|
|
|
|
|
|
| |
it doesn't really do what you would expect, better use JS_Is* functions
(also, it broke 32-bit builds)
|
|
|
|
| |
not much else is done yet, but it's a start
|
| |
|
| |
|
|
|
|
|
| |
Also removes the computation of underflow on the end margin for blocks;
as far as I can tell, this was never used.
|
|
|
|
|
|
|
|
|
|
| |
Well, it's not much prettier... but it will be useful for keep-alive.
(Hopefully.)
Also, loader could now be locked down capsicum/pledge/seccomp, but I'm
not sure if there's a point. The biggest potential threat it faces is
cross-contamination of handles, and no amount of syscall filtering is
going to protect against that.
|
|
|
|
|
|
|
|
|
| |
I've removed the SIGINT trap because the fork server is now in a
separate process group than the main process anyway. We'll see if this
actually works...
Also realized we weren't closing the fork server's control stream on
fork; now we do.
|
|
|
|
|
|
|
|
|
|
| |
Instead of trying to track child pids (which is wrong - a child may die
at any time for whatever reason, so we could have ended up murdering
some random process that took its place...), just setsid on forkserver
start and send SIGTERM to the entire process group on termination.
Also removed the loader pid from the FileLoader object, as it is no
longer useful.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This time, I've also ported over the consistency check to prevent some
ownership bugs.
Unfortunately, the check is very limited, and it is still possible to
double-free or leak JSValues. I think it would be possible to make
coverage 100%, but only with ARC...
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Pros: basic display on pages that depend on grid being implemented to
display anything at all.
Cons: breaks pages that have a fallback layout for UAs that can't do
grid. (In practice, such pages must be rare - CSS for layout is painful
enough that nobody in their right mind will spend time on implementing
a fallback layout for the same DOM.)
|
|
|
|
|
|
| |
(also removed unused windows check)
ref. https://todo.sr.ht/~bptato/chawan/50
|
|
|
|
|
|
| |
The standard specifies counter-intuitive behavior dependent on
non-standard CSS.
Lacking evidence that this is needed, we ignore it.
|
|
|
|
|
|
| |
It made cached layout inconsistent with uncached layout.
(I'm not sure if this is actually observable; either way, it's a bad
idea to rely on this.)
|
|
|
|
| |
it worked somehow, but it's wrong...
|
|
|
|
|
|
|
|
|
| |
Previously, the code just called put and unset on handles in situations
where it seemed necessary, but this has become unmanageable.
Now, put is called as soon as a handle receives its stream, and unset is
called whenever said handle (and thereby its stream) is closed.
This fixes a bug in loadCGI with an rbtCache body.
|
|
|
|
|
|
|
| |
* optimize toJS set
* change defineProperty wrappers to return an enum
If we're going to wrap defineProperty, then let's do it properly.
|
|
|
|
|
|
| |
I've also refactored the code a bit, so it's both easier to understand
and more efficient. (In particular, BlockLayoutState no longer has to
store marginBottom.)
|
| |
|
|
|
|
| |
+ simplify argv -> seq conversion
|
|
|
|
|
| |
In theory, it is possible for rename to succeed before the buffers are
flushed, and then we lose data.
|
|
|
|
|
|
|
| |
It's simpler and more efficient to handle this in the DOM.
(The interface was also confusing/broken in that it only really accepted
one htmldda class.)
|
|
|
|
|
| |
Not having them is a bad omen; I think the only reason this hasn't
caused an issue yet is that only a few types embed JSValues.
|