| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
+ some misc refactorings
|
|
|
|
|
| |
This was a bad idea that, despite my best efforts, never worked
properly.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add document.forms
* add form.elements
* remove redundant jshasprop functions
* use mpairs for attribute iteration (mpairs use pointers, but pairs
copies)
* fix remove() crash
* fix remove() collection invalidation for children (if parent is not
in the collection)
* update monoucha
|
|
|
|
|
| |
it's really min-height, not height; consistency is not CSS's strong
suit...
|
|
|
|
|
| |
avoid adding whitespace to the previous atom if it's not on the current
line
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* add responseText, response
* add net tests
-> currently sync XHR only; should find a way to do async
tests...
* update monoucha
-> simplified & updated some related code that no longer worked
properly
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix header case sensitivity issues
-> probably still wrong as it discards the original
casing. better than nothing, anyway
* fix fulfill on generic promises
* support standard open() async parameter weirdness
* refactor loader response body reading (so bodyRead is no longer
mandatory)
* actually read response body
still missing: response body getters
|
| |
|
|
|
|
|
|
|
| |
* cssvalues, twtstr: unify enum parsing code paths, parse enums by
bisearch instead of hash tables
* mediaquery: refactor (long overdue), fix range comparison syntax
parsing, make ident comparisons case-insensitive (as they should be)
|
|
|
|
|
|
|
| |
* History: doesn't really do anything, just adding it to fix some pages
* LocalStorage: kind of works, but does lookups with linear search, and
the quota limitation is on the number of entries not their size. plus
it doesn't actually store anything on disk yet (like cookies).
|
|
|
|
|
|
|
| |
* properly wrap inline internal table boxes in inline-table (instead
of block-level table)
* fix missing baseline in table wrapper boxes
* fix wrong wrapping of misparented table/row/row group children
|
|
|
|
|
|
|
|
|
|
| |
* support position: absolute on flex items
* proper top/bottom/left/right calculation for position: relative
* push positioned flex box sizes to positioned stack
Still not perfect: position: absolute should always resolve percentage
sizes and top/bottom/left/right, meaning absolute layout needs to be
delayed until its containing box is fully layouted.
|
|
|
|
| |
It was broken for parent boxes with indefinite sizes.
|
|
|
|
|
|
|
| |
* fix max size trumping min size
* respect min-width/max-width/min-height/max-height for images
* fix xminwidth calculation for percentage-sized images with an
indefinite containing size
|
|
|
|
| |
+ some more cleanup
|
|
|
|
|
|
| |
* fix various parsing bugs
* rewrite state machine
* other small optimizations
|
|
|
|
|
|
| |
* fix flex column item width not being stretched
* set minimum flex column height to the layouted item's height (to avoid
overlap)
|
| |
|
|
|
|
|
| |
top/left/right/bottom should only be used in renderdocument with
position: absolute.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix text-align breaking down in the presence of floats
* improve (and simplify) background color area painting
This greatly simplifies inline layout by removing the additional
text-align atom movement code and replacing it with a full re-layout
when needed. That re-layout only occurs in (rare) cases where the text
is likely to be relatively short anyway, so it's probably a win in any
remotely realistic layout.
This has also made it possible to at last merge the last three passes
(horizontal/vertical alignment and background painting) and drop that
weird synchronized tree + vector traversal.
|
| |
|
| |
|
| |
|
|
|
|
| |
this one is weird but I'm sure the standard is technically right
|
|
|
|
|
| |
See attached test case; previously, this would result in a missing space
in visual mode and a crash in dump mode.
|
|
|
|
|
|
|
| |
Much cleaner than the previous solution.
Should also be somewhat less wasteful, as we no longer constantly
rebuild the same tree with new branches.
|
|
|
|
|
| |
I would prefer it to not cut off the canvas background color, but the
current output is just as valid.
|
|
|
|
|
| |
* do not use inline block computed values for wrapper fragment
* fix minimum line box height calculation
|
|
|
|
|
|
|
| |
As expected, the mystery line was just hiding another bug. (In
particular, indefinite containing size constraints were not denied in
resolveContentWidth, so it only (accidentally) worked with stretched
sizes.)
|
|
|
|
|
|
| |
* merge caption sizing code path with layoutRootBlock
* fix caption margins being disregarded
* fix incorrect positioning of `caption-side: bottom'
|
|
|
|
|
|
|
|
|
|
|
| |
As per standard:
> Adjoining vertical margins collapse, except:
> [...]
> If the top and bottom margins of an element with clearance are
> adjoining, its margins collapse with the adjoining margins of
> following siblings but that resulting margin does not collapse with
> the bottom margin of the parent block.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Instead of allocating a separate object for each box, just re-use
a single BlockBox on re-layouts.
This means that now the (block-level) tree is built in its final form in
the first pass.
(Inline boxes remain the same as before for now.)
|
|
|
|
|
| |
* fix list-style-position: inside
* get rid of ListItemBoxBuilder
|
|
|
|
| |
Both outputs suck, but it probably doesn't matter much.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the following printed "2" instead of "12":
<div style=float:left>1</div><div style=display:flow-root>2</div>
This fixes the above problem in the laziest possible way: we relayout once
in the smallest possible space the BFC fits in when floats exist. See the
comment in the code for details.
As a nice bonus, this also fixes tables overlapping with floated boxes,
by pretending that they establish a BFC.
|
|
|
|
| |
Fix percentage-based left/right etc.
|
| |
|
|
|
|
|
|
| |
Turns out we also have to *expand* column width, if the specified column
width is too small *and* no unspecified column exists to take the rest
of the place.
|
| |
|
|
|
|
|
|
|
| |
* unwind the QJS stack with an uncatchable exception when quit is called
* clean up JS references in JSRuntime free even when the Nim
counterparts are still alive
* simplify some tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we didn't actually free the main JS runtime, probably because
you can't do this without first waiting for JS to unwind the stack.
(This has the unfortunate effect that code now *can* run after quit().
TODO: find a fix for this.)
This isn't a huge problem per se, we only have one of these and the OS
can clean it up. However, it also disabled the JS_FreeRuntime leak
check, which resulted in sieve-like behavior (manual refcounting is
a pain).
So now we choose the other tradeoff: quit no longer runs exitnow, but
it waits for the event loop to run to the end and only then exits the
browser. Then, before exit we free the JS context & runtime, and also
all JS values allocated by config.
Fixes:
* fix `ad' flag not being set for just one siteconf/omnirule
* fix various leaks (since leak check is enabled now)
* use ptr UncheckedArray[JSValue] for QJS bindings that take an array
* allow JSAtom in jsgetprop etc., also disallow int types other than
uint32
* do not set a destructor for globals
|
| |
|
|
(Sadly some layout tests still fail.)
|