| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
they fit into 8 and 64 bits respectively
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* switch from float64 -> float32; other browsers use 32-bit floats too
* specify integer size as 32-bit
* use NetworkBitmap for background-image value (currently just an
invalid dummy value)
* remove "none" property & value types
CSSValue's payload is always one word (plus another for the type tag).
CSSValues keeps its size, but no longer has to heap-alloc + refcount
word-sized CSSValues.
(On 32-bit systems, CSSValues might actually be larger than before,
but I expect it's still a net benefit with the removal of refcounting
and the switch to 32-bit floats.)
|
| |
|
|
|
|
| |
less work for memset
|
|
|
|
|
|
|
|
|
| |
Regular select is now rendered as flex, and does not wrap.
This gets rid of the pointless whitespace before/after options.
multiple still looks weird, but maybe a bit less?
Probably we should just render it with pseudo-checkboxes, and drop the
special mode from select.nim.
|
|
|
|
| |
we always do 2 passes
|
|
|
|
| |
better than nothing
|
|
|
|
| |
starting to run out of test case names
|
|
|
|
| |
@media (grid: 1) works again.
|
|
|
|
|
| |
This must not be handled by the tree builder, as that needlessly
complicates tree caching.
|
|
|
|
| |
also, reduce the number of types named MediaQueryList by 50%
|
|
|
|
|
|
|
| |
In lite mode, it uses default window attributes.
Incidentally, this also untangles media query matching from cascade,
saving us a forward declaration hack (yay!)
|
|
|
|
|
|
|
| |
In this case, it seems we have to wrap.
(It's still not quite there; replace flow-root with inline-box to see
another interesting bug...)
|
|
|
|
| |
We do not support sticky scrolling, but this much should still work.
|
|
|
|
|
|
|
|
| |
Turns out this doesn't work like I thought it does... the second
layout is always needed.
This probably means that it's possible to layout absolutes during flow
after all...
|
| |
|
|
|
|
|
|
|
|
| |
* respect flex item starting margin on main axis
* pass left margin as offset input too -> fixes some sub-layout cache
inconsistencies
well, I *think* it does, but I haven't managed to find a case where it
changes anything... either way, at least the code is prettier now
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
I'm not a fan, because it hides bugs. But working around the overflow
errors is starting to get unwieldy.
On 32-bit systems, we try to use compiler intrinsics as Nim does.
|
|
|
|
|
| |
It's probably possible to do it in layout, but it's way too hard.
Just do it in render.
|
|
|
|
|
| |
sticky, ruby, writing-mode: lots of complexity for little gain, and the
fallback works just as well (if not better)
|
|
|
|
|
|
|
| |
This way, it benefits from sub-layout caching. Which is great because
our flex layout likes to unnecessarily redo item layout...
Also, we now account for the bottom margin in flex items.
|
|
|
|
|
|
|
|
| |
Only root blocks for now; for non-roots, you'd have to cache exclusions
too, and that is a fair bit harder.
It isn't very noticable as an optimization, but it's a good first step
towards a cached layout.
|
|
|
|
|
|
|
|
|
|
| |
I'm not sure if this is the best way. On one hand, it probably breaks
text in some languages that cannot be represented in normal form.
On the other hand, some terminals may crash on such strange sequences
(or worse).
I'll just skip them for now, because it's marginally faster than
returning 0 from width. We'll see if somebody complains.
|
|
|
|
|
| |
* do not display submit/reset text with empty value
* fix erroneous blank placement with white-space: pre on new line
|
| |
|
|
|
|
| |
I don't like the extra flag, but I don't see a better way.
|
|
|
|
| |
this broke gotoAnchor in some cases
|
|
|
|
| |
The standard says we should blockify. Alas, the standard is lying.
|
| |
|
|
|
|
| |
no need to alloc a seq for this
|
|
|
|
|
|
|
| |
They are relative to the box's actual position, not that of the parent:
> For relatively positioned boxes, the offset is with respect to the
> bottom edge of the box itself.
|
|
|
|
| |
Only available in "app" mode.
|
| |
|
| |
|
|
|
|
|
|
| |
you can't bisearch an unsorted map...
(also, turn on text styling for colored layout tests because it would
have caught this)
|
|
|
|
|
|
|
|
| |
They need some peculiar conditions to manifest, but the logic errors
are clear:
* padding contributing to intrinsic minimum size wasn't being clamped
* inline padding was being applied twice
|
|
|
|
| |
Now screen.width etc. works in the pager too.
|
|
|
|
|
| |
it has to accept percentage sizes too for intrinsic size clamping,
it seems
|
| |
|
|
|
|
|
| |
It's a fair bit more accurate now on flex-heavy pages.
Image sizing remains a broken mess.
|
|
|
|
|
|
|
|
|
|
| |
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?)
|
|
|
|
|
| |
It is still wrong in case the table is too small, but at least it fixes
the regression from 0971ad85.
|
|
|
|
| |
what was I expecting
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Welp, turns out I was overthinking it. CSS does not support inline
position: absolute at all, it just blockifies.
That does leave us with the question of "why does inline-block behave
differently than block?" Especially because both in Gecko and Blink,
getComputedStyle for absolute inline-blocks gives me "block", not
"inline-block", and yet there is the same difference in rendering when I
change the CSS.
I first thought it's a quirks mode issue, but standards mode doesn't
affect it. Wat.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
* isValidEscape was fairly pointless, and occasionally used incorrectly.
* "starts with an ident sequence" is normally called on the next 3
codepoints; on the one occasion where it isn't, just hardcode the dash
case.
|
|
|
|
|
|
|
|
| |
* fix clip for image
* switch back img's display to inline
* fix image width calculation without specified width/height
I'm not 100% sure if this is correct, but it certainly looks better.
|