about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
* Update manpagesbptato2025-01-074-115/+345
|
* layout: get rid of flex-direction reverse hackbptato2025-01-074-47/+68
| | | | | This must not be handled by the tree builder, as that needlessly complicates tree caching.
* mediaquery: add serializationbptato2025-01-063-43/+49
| | | | also, reduce the number of types named MediaQueryList by 50%
* dom: add document.referrerbptato2025-01-064-8/+13
| | | | Only works if referer-from is enabled.
* env: add media query matchingbptato2025-01-065-67/+98
| | | | | | | In lite mode, it uses default window attributes. Incidentally, this also untangles media query matching from cascade, saving us a forward declaration hack (yay!)
* container: remove locationbptato2025-01-061-3/+0
| | | | undocumented alias for url; just use the latter.
* layout: wrap on inline floats that exceed the line's lengthbptato2025-01-063-4/+29
| | | | | | | 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...)
* layout, render: establish absolute container with position: stickybptato2025-01-065-19/+23
| | | | We do not support sticky scrolling, but this much should still work.
* buffer: force restyle on toggleImagesbptato2025-01-061-1/+1
| | | | In some cases, it works without restyle, but not always.
* loaderiface: fix race in poll registerbptato2025-01-063-11/+36
| | | | | | | handleRead can register through fetch, so this doesn't work out as nicely as in loader (where we control all register/unregister calls). So now we queue up register events first, and only process them after the "events" iterator exits.
* layout: fix percentage margins in shrink-to-fitbptato2025-01-053-13/+29
| | | | | | | | 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...
* ua.css: set table box-sizing border boxbptato2025-01-055-15/+16
|
* dom: clean up namespace handling, add createElementNSbptato2025-01-053-67/+139
|
* dom: DOMTokenList fixes/improvementsbptato2025-01-054-10/+20
|
* license: include unifont licensebptato2025-01-051-5/+101
| | | | TODO: switch to a PD font
* dom: add form length, fix document.getElementsByName("")bptato2025-01-054-28/+33
|
* dom: clean up, add some strict defsbptato2025-01-051-170/+171
|
* dom: button fixesbptato2025-01-053-4/+21
|
* layout: margin fixesbptato2025-01-053-15/+21
| | | | | | | | * 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
* layout: InnerBlockContext -> BlockBuilderContextbptato2025-01-041-65/+65
|
* dom: add some table interfacesbptato2025-01-042-26/+260
|
* pager: skip a pointless zero fillbptato2025-01-041-1/+1
|
* dom: radiogroup fixesbptato2025-01-042-22/+20
|
* dom: implement cssFloatbptato2025-01-041-0/+4
|
* buffer: fix regression in restyle on window resizebptato2025-01-041-2/+6
| | | | it has to clear old styles too
* dirlist2html: fix setlocale callbptato2025-01-041-1/+1
|
* Try to set close-on-exec, misc cleanupbptato2025-01-046-30/+28
| | | | | | | | | | 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.
* Update chamebptato2025-01-032-6/+6
|
* dom: JS input/form fixesbptato2025-01-031-1/+10
| | | | Fixes acid3 test 53
* layout: respect margin-top of root boxbptato2025-01-033-1/+5
|
* env, buffer: restyle on getComputedStylebptato2025-01-034-50/+64
| | | | | | style/layout invalidation is a mess :( Fixes acid3 test00
* dom: make stringifiers explicit, optimize tokenList toStringbptato2025-01-031-3/+3
|
* twtstr: optimize a bitbptato2025-01-031-23/+19
|
* LayoutUnit -> LUnitbptato2025-01-034-162/+162
|
* lunit: use saturation arithmeticbptato2024-12-233-27/+76
| | | | | | | 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.
* Update docsbptato2025-01-031-1/+2
|
* dom: add option value setter, input checked setterbptato2025-01-031-22/+26
|
* script, buffer: add <, > around URLbptato2025-01-032-2/+2
| | | | this way, markURL works on stack traces
* layout: drop overflow trackingbptato2025-01-032-72/+10
| | | | | It's probably possible to do it in layout, but it's way too hard. Just do it in render.
* Unify PositionStaticLike, update todobptato2025-01-033-22/+42
| | | | | sticky, ruby, writing-mode: lots of complexity for little gain, and the fallback works just as well (if not better)
* jsintl: add selectbptato2025-01-031-0/+5
|
* dom: fully implement ParentNode mixinbptato2025-01-031-2/+108
| | | | | | | | * standard firstElementChild, lastElementChild * add childElementCount, prepend, append, replaceChildren supporting JSValue "this" values in Monoucha would be useful for these (so you could specify where it's defined in the jsfunc string)
* buffer: percent decode anchor in gotoAnchorbptato2025-01-031-1/+1
| | | | so that unicode anchors work too
* loader: add proper HTTP auth handlingbptato2025-01-034-9/+88
| | | | | | | | | | | | | 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.
* nanosvg: parse invalid transform args more efficientlybptato2025-01-031-2/+2
| | | | If there is no ( or ), then just skip until the NUL terminator.
* dom: add CSSStyleDeclaration setProperty, removeProperty; stub out scrollTobptato2025-01-021-17/+49
|
* layout: implement layoutFlexItem as layoutRootBlockbptato2025-01-023-16/+60
| | | | | | | 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.
* layout: cache sub-layoutsbptato2025-01-023-46/+57
| | | | | | | | 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.
* layout: ignore general category Me, Mnbptato2025-01-022-1/+16
| | | | | | | | | | 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.
* pager: history fixesbptato2025-01-015-2/+15
| | | | | | | | | * 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