| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
| |
We sent the two packets at the same time anyway.
(Status could have been sent earlier in some cases, but there is no
point - it's unused until after all headers have been received.)
|
|
|
|
|
| |
This adds a runtime check to packet readers to ensure that all fds have
been read, and switches to seqs for packet writers.
|
| |
|
|
|
|
|
| |
Conflating buffered streams with non-buffered streams is generally a
bad idea.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now we just pass down the value of n and check errno, plus
readDataLoop/writeDataLoop returns a bool indicating whether it failed.
For now this seems to work OK, but maybe I'll add a better abstraction
in the future.
EOFError is still used for handling failed packets; this is brittle,
and should be replaced once we have a proper buffering mechanism for
them. (That will also let us kill BufStream.)
Unrelated: this also fixes a bug in buffer with cacheId.
|
| |
|
|
|
|
|
|
|
|
| |
and throw out the conflict resolution logic; it doesn't matter much if
we override an old cache file, as it should have been cleaned up anyway.
I've also replaced dirExists + createDir with a single mkdir at call
sites. If it fails, so be it.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We were calling the wrong getTypePtr.
Also, fix some manual tests.
|
|
|
|
| |
not standard-compliant, but better than nothing
|
| |
|
| |
|
|
|
|
| |
it looks ugly
|
| |
|
| |
|
|
|
|
| |
also, fix a typo
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Instead of hashing the class name for isInstanceOf, we now just reuse
the Nim type pointer -> JSClassID map, which should be more efficient.
This removes getClass and hasClass; these can be replaced by just
reusing the class ID returned from registerType.
|
|
|
|
|
|
|
|
|
|
| |
We were painting the background box in render for dump mode, but this
conflicted with the standard requirement that the canvas be painted
before other elements. So now we handle this directly in the pager.
Conveniently enough, this also fixes the issue of canvas color adding
pointless spacing to pages (which often made the selection feature less
useful.)
|
| |
|
|
|
|
| |
...
|
| |
|
|
|
|
|
|
| |
:root is used on the UA sheet, so it's quite important.
:link, :visited can be treated as shortcuts (although :visited never
matches right now).
|
| |
|
|
|
|
| |
ref. https://todo.sr.ht/~bptato/chawan/43
|
|
|
|
| |
Ugly, but works. I think.
|
|
|
|
|
|
|
|
|
|
| |
Mainly because the seq was hindering further improvements.
I don't expect performance or memory usage to change much; leaf nodes
now store one pointer more, but parent nodes no longer pay for the
overhead of a seq.
(FWIW, other browsers seem to be using linked lists for this, too.)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also, eliminate the offset attribute in StackItem by just taking
render.offset from the nearest ancestor as the base.
That leaves us with clipBox, which I'm not yet sure how to get rid of.
Its current implementation is certainly wrong: `position: absolute'
should really use its absolute container's clip box. It is however
correct for `position: relative' in its current form.
(One way would be to cache it inside CSSBox, like we do offset.)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also fixes an invisible bug where inline-block child absolutes were
queued multiple times.
This adds a pointer to the parent box for CSSBox objects, which isn't
great, but the alternatives (maintaining an explicit stack or adding
another tree traversal) were overly complex and/or too inefficient.
On the flip side, now it should be possible to do both stacking contexts
(with negative z-index) and overflow tracking in layout. (I think.)
|
|
|
|
| |
Undocumented, plus and globalThis/window are enough.
|
|
|
|
| |
Fixes setTimeout etc. not working on client.
|
|
|
|
| |
We cannot handle these yet.
|
|
|
|
| |
It would be nice to at least make it single-pass.
|
| |
|
|
|
|
| |
Event handler functions can be set twice now.
|
| |
|
|
|
|
|
| |
Dump mode remains the same, except now it can be controlled in
config.toml as well.
|
| |
|
|
|
|
|
| |
A map isn't so bad with three pointers, but it won't be viable once we
start adding more pseudo-elements.
|
|
|
|
| |
plus refactor a bit
|
| |
|
|
|
|
|
| |
Base InlineBox is a fair bit smaller now, and (most) strings are
cached using RefString.
|
|
|
|
|
| |
This isn't great, but neither was passing around a pointer that pointed
to a single object.
|
| |
|