about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* url: do not rely on $ -> toString conversionbptato2025-01-011-2/+2
| | | | I want to remove it
* layout, dom: input rendering fixesbptato2025-01-016-3/+15
| | | | | * do not display submit/reset text with empty value * fix erroneous blank placement with white-space: pre on new line
* layout: fix regression in cd069a76ebptato2025-01-013-18/+20
|
* layout: prevent double-clear for flow rootsbptato2025-01-013-11/+49
| | | | I don't like the extra flag, but I don't see a better way.
* config: deprecate 8bit, 24bit color-mode aliasesbptato2025-01-011-0/+2
|
* dom: add cookie setter stub, HTMLSelectElement stuffbptato2025-01-011-19/+68
|
* layout: add missing StyledNode ref to parent inline boxesbptato2025-01-011-1/+2
| | | | this broke gotoAnchor in some cases
* dom: small refactoring + optimizationbptato2024-12-312-22/+22
|
* dom: expose currentScriptbptato2024-12-311-1/+1
|
* cascade: prevent blockification for non-inline absolute boxesbptato2024-12-303-4/+46
| | | | The standard says we should blockify. Alas, the standard is lying.
* layout: absolute sizing fixesbptato2024-12-305-4/+113
|
* cascade: inline presentational hint calculationbptato2024-12-301-19/+19
| | | | no need to alloc a seq for this
* format, tools: use ARCbptato2024-12-303-2/+6
| | | | | Greatly reduces binary sizes. I won't risk it for protocols yet. Neither for img, because it doesn't work with sixel at all. (y?)
* Add built-in image viewerbptato2024-12-305-3/+40
| | | | | | It works by emitting a base64 URI inside an img tag. Very inefficient, but useful if no external viewer is set up (e.g. over SSH).
* buffer: make video, audio clickablebptato2024-12-306-39/+78
| | | | | more intuitive than shoehorning it into "view image" (also makes it easier to apply the content type)
* layout: fix position: relative for right, bottombptato2024-12-303-4/+17
| | | | | | | 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.
* dom, cssvalues: add getComputedStylebptato2024-12-305-44/+113
| | | | Only available in "app" mode.
* layout: fix an overflow bugbptato2024-12-303-1/+29
|
* pager: misc improvementsbptato2024-12-301-44/+44
| | | | ok I'll use result, whatever
* dom: add input type getter/setterbptato2024-12-301-1/+1
|
* script: improve defineConstsbptato2024-12-306-5/+21
| | | | | | Well, I guess this works for now, but something is still wrong. In Gecko, document.__proto__ === Document.__proto__, but in Chawan, it isn't.
* cssvalues: fix length shorthand parsingbptato2024-12-302-4/+3
|
* env: stub postMessagebptato2024-12-301-0/+3
|