about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
* html: improve Request, derive Client from Windowbptato2024-05-2017-315/+362
| | | | | | | * make Client an instance of Window (for less special casing) * misc work on Request & fetch * improve origin comparison (opaque origins of same URLs are now considered the same)
* layout: fix inline tab expansionbptato2024-05-191-0/+1
|
* layout: fix BFC positioning in presence of floatsbptato2024-05-196-14/+106
| | | | | | | | | | | | | 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.
* css: stub overflowbptato2024-05-182-3/+18
| | | | | The renderer cannot handle it yet, but at least this fixes pages that expect overflow: hidden (etc.) to establish a new BFC.
* layout: fix maxFloatHeight checkbptato2024-05-181-5/+5
| | | | | Including our own position is a mistake, since the BFC starts from the inner box.
* layout: reuse box.positioned in positionAbsolutebptato2024-05-181-4/+4
|
* layout: relative positioning fixesbptato2024-05-184-75/+85
| | | | Fix percentage-based left/right etc.
* layout: slightly refactor table layoutbptato2024-05-181-27/+26
|
* forkserver: simplify fcLoadConfigbptato2024-05-183-16/+6
|
* Update docsbptato2024-05-164-209/+159
|
* config: separate tmp dir for sockets, usersbptato2024-05-167-22/+22
| | | | | | | * add $LOGNAME to the tmp directory name, so that tmpdirs of separate users don't conflict * use separate directory for sockets, so that we do not have to give buffers access to all cached pages
* test: text-transformbptato2024-05-162-0/+3
|
* css/values -> css/cssvaluesbptato2024-05-1610-11/+11
| | | | for consistency
* cssvalues: fix casingbptato2024-05-161-61/+61
|
* pager: editor command fixesbptato2024-05-123-4/+5
|
* js: allow var instead of ptrbptato2024-05-125-94/+100
|
* container: remove unused codebptato2024-05-121-5/+0
|
* client, pager: remove unnecessary std/streamsbptato2024-05-112-12/+7
|
* buffer: fix multipart formsbptato2024-05-1114-233/+244
| | | | | | | | | * fix enctype not getting picked up * fix form data constructor requiring open() syscall (which gets blocked by our seccomp filter) * add closing boundary to multipart end * pass fds instead of path names through WebFile/Blob and send those through bufwriter/bufreader
* Fix typobptato2024-05-111-1/+2
|
* pager: take $EDITOR from envbptato2024-05-112-6/+6
| | | | | | * use EDITOR environment variable in default config, fix line number ordering in fallback * autodetect vi-like editors and add line number
* term: optimize canvas redraw, remove emulate-overlinebptato2024-05-105-81/+38
| | | | | | | * Replaced the `pcanvas' comparison with a much simpler tracking of the first damaged cell in writeGrid, which is significantly faster. * Removed emulate-overline: it's of too little utility compared to the maintenance burden it caused.
* luwrap: use separate context (+ various cleanups)bptato2024-05-109-256/+293
| | | | | | Use a LUContext to only load required CharRanges once per pager. Also, add kana & hangul vi word break categories for convenience.
* luwrap: replace Nim unicode maps with libunicodebptato2024-05-098-69/+136
| | | | | | | | | | | | | | | | | Instead of using the built-in (and outdated, and buggy) tables, we now use libunicode from QJS. This shaves some bytes off the executable, though far less than I had imagined it would. Also, a surprising effect of this change: because libunicode's tables aren't glitched out, kanji properly gets classified as alpha. I found this greatly annoying because `w' in Japanese text would now jump through whole sentences. As a band-aid solution I added an extra Han category, but I wish we had a more robust solution that could differentiate between *all* scripts. TODO: I suspect that separately loading the tables for every rune in breaksViWordCat is rather inefficient. Using some context object (at least per operation) would probably be beneficial.
* layout: unify some code pathsbptato2024-05-093-246/+236
| | | | | | | Turn Offset, Size, etc. into arrays indexed by a DimensionType enum, and use it to unify code that only differs in the dimension it is computing for. (e.g. this lets us use the same code for flex row & column layouts.)
* img: rename SEGMENT_*bptato2024-05-091-16/+15
|
* fromjs: remove broken uint64 converterbptato2024-05-091-5/+0
| | | | It would silently truncate the upper 32 bits... not a very bright idea.
* dom: simplify ButtonTypebptato2024-05-084-20/+19
|
* layout: another table colwidth fixbptato2024-05-083-2/+16
| | | | | | 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.
* js: fix compileModulebptato2024-05-083-3/+3
|
* js: clean up eval wrappersbptato2024-05-081-6/+4
|
* js: fix finalizer effectsbptato2024-05-083-3/+3
|
* js: refactorbptato2024-05-0834-173/+185
| | | | | | | * prefix to-be-separated modules with js * remove dynstreams dependency * untangle from EmptyPromise * move typeptr into tojs
* layout: small cleanupbptato2024-05-081-39/+34
|
* layout: resize over-constrained table columnsbptato2024-05-082-15/+24
| | | | | | | | | If the total specified column width is larger than the table's allowed width, we now resize them proportionally to the specified width. This is quite important because many tables set the width to e.g. 50% for "give me half of the table", instead of its true meaning "give me half of the page".
* dom: fix area relList elementbptato2024-05-071-1/+1
|
* libunicode: fix compilationbptato2024-05-071-1/+1
|
* Improve class parser (#289)Charlie Gordon2024-05-071-3/+9
| | | | | | - accept `class P { async = 1 }}` - accept `class P { static = 1 }}` etc. - Fixes #261
* fix class method with name get (#258)Richard Davison2024-05-071-1/+2
| | | | Co-authored-by: Richard Davison <ridaviso@amazon.com>
* Improve libunicode and libregexp headers (#288)Charlie Gordon2024-05-075-128/+237
| | | | | | | | - move all `lre_xxx` functions to libunicode - use flags table `lre_ctype_bits` instead of bitmaps - simplify `lre_is_space`, `lre_js_is_ident_first` and `lre_js_is_ident_next` - simplify `simple_next_token`, handle UTF-8 correctly - simplify `is_let`, remove dead code
* Improve unicode table handling (#286)Charlie Gordon2024-05-072-49/+148
| | | | | | | | - Document table and index formats - Add size statistics - Fix UBSAN issue in `get_le24()` Fixes #285
* js: fix compilation on 1.6.14bptato2024-05-063-5/+4
| | | | | | | | | * resolve empty promises without params, not a single undefined param (we can't just unsafeAddr constants on 1.6.14, and I don't see why we need to pass undefined?) * same in client with InternalError * explicitly convert static `asglobal' to bool (1.6.14 turns unquoted enums into ints...)
* cascade: avoid empty ::before/::afterbptato2024-05-051-3/+2
| | | | | If `content' is empty, then generating before/after pseudo-elements is wrong.
* color: separate out JS convertersbptato2024-05-054-43/+49
| | | | | ansi2html depends on color, but we definitely do not want to link it to QJS, so the converters must be moved into a separate module.
* Makefile: fix missing mkdir calls in installbptato2024-05-051-0/+2
| | | | Thanks @onemoresuza for noticing.
* layout: table cell resizing fixesbptato2024-05-053-24/+57
|
* Use isSome instead of isOkbptato2024-05-0514-56/+49
| | | | no point in having identical overloads
* js: move fromJS_or_return nil check to JSError toJSbptato2024-05-042-7/+4
|
* Update docsbptato2024-05-044-492/+278
|
* client: make quit() actually quit, misc fixesbptato2024-05-0413-138/+131
| | | | | | | * 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