about summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* pager: merge ask with askChar, remove urandombptato2025-01-172-45/+36
|
* term: rework input bufferbptato2025-01-174-15/+25
| | | | heh
* stylednode: remove obsolete templatebptato2025-01-171-4/+1
|
* container: fix crash on clicking label for empty selectbptato2025-01-161-1/+1
|
* dom: add Option constructorbptato2025-01-161-0/+13
|
* dom: set target on dispatchbptato2025-01-161-0/+1
|
* render: overprint existing text when painting backgroundsbptato2025-01-161-9/+29
| | | | | | | | Even if we don't do some z-ordering correctly, it's no excuse to paint boxes incorrectly. It's also extremely annoying when I try to use a menu and text bleeds into the drop-down window.
* term: fix non-UTF-8 visual outputbptato2025-01-161-8/+7
|
* css: reduce StyledNode usebptato2025-01-165-69/+62
| | | | | Eventually the tree should be collapsed into the DOM, and StyledNode should be created on the stack.
* cssvalues: serialize quotes, add font-size, opacitybptato2025-01-163-34/+49
| | | | | | | | | | | | font-size isn't very useful, but some scripts assume it exists. opacity: 0 for now is special cased: it inhibits rendering of further boxes. This isn't quite right, as it should just behave as a pseudo visibility: hidden... nonetheless it's quite effective at hiding garbage. (Also, remove incorrect comment - it can be nil if the branch has no variables.)
* env, dom: add crypto.getRandomValues, HTMLInputElement.filesbptato2025-01-166-14/+35
|
* cascade: basic CSS variable supportbptato2025-01-163-163/+286
| | | | | | | | | | | and once again, there was light... Well, it barely works, but it's enough to get colors back on most sites. Nested variables aren't supported for now, and shorthand expansion only "works" for `background' (it's a hack). Props to the W3C for introducing the C preprocessor to CSS - I was starting to confuse it with JSSS after calc().
* sheet, selectorparser: fix attr hashing, hash multiple tags in :isbptato2025-01-162-17/+18
|
* dom: optimize isFirstVisualNodebptato2025-01-151-8/+7
|
* cssparser: enumize CSSFunction namebptato2025-01-153-15/+30
|
* pager: improve content type handlingbptato2025-01-155-55/+50
| | | | also remove some unused fields of Container
* layout: truncate inline-block margins as wellbptato2025-01-151-0/+4
|
* widthconv: fix hiragana -> half-width kana conversionbptato2025-01-151-0/+1
| | | | Unicode has no half-width hiragana :/
* buffer: add back node nil checksbptato2025-01-151-2/+2
| | | | | Actually, I'm not sure if this can be nil, especially in anonymous table boxes...
* cascade, stylednode: remove parent field from StyledNodebptato2025-01-153-143/+140
| | | | | | | | Now StyledNode has an "element" reference, which refers to the element it was derived from. This reduces the object's size, removes the need for casting around the "node" field, and also gets rid of a pointless cycle.
* cascade: fix hasValues filterbptato2025-01-141-6/+5
|
* css: refactor selector parsing & cascading, some work on variablesbptato2025-01-146-202/+258
| | | | | | | | | Untangled some nested arrays to reduce the number of intermediary seqs in cascade, and collapsed the two rule def sorts into just one (per pseudo element). This should make cascading somewhat faster. Also, we now parse variables, but they aren't resolved yet. Probably a seq won't cut it for var lookup...
* More strict defsbptato2025-01-141-27/+33
|
* opt: remove value.ok, value.err overloads, use lentbptato2025-01-142-18/+6
| | | | | | largely unused lent idea from nim-results
* Update monouchabptato2025-01-131-1/+1
|
* dom: mark insertBefore "before" as Optionbptato2025-01-132-12/+14
|
* dom: fix leak, HTMLOptionsCollection length getterbptato2025-01-131-0/+4
| | | | Fixes acid3 test 57
* dom: HTMLTemplateElement content getterbptato2025-01-131-1/+1
|
* container: use linked list instead of dequebptato2025-01-132-6/+19
|
* cookie: improve Expires parsingbptato2025-01-131-52/+32
|
* config: switch to camel casebptato2025-01-1310-172/+158
| | | | | | We already need a camel -> kebab converter anyway. Unfortunately this also changes JS binding names, so it's a breaking change. Oh well.
* loader: remove obsolete todobptato2025-01-121-1/+0
|
* cssvalues: set text-decoration to bit, vertical-align to wordbptato2025-01-121-27/+25
| | | | they fit into 8 and 64 bits respectively
* cssvalues: reduce CSSValues sizebptato2025-01-1210-279/+336
| | | | | | | | | | | | | | | | * 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.)
* cssvalues, sheet: fix quotes parsing, misc cleanupbptato2025-01-122-81/+71
|
* cascade: collapse inited into one arraybptato2025-01-122-32/+30
| | | | less work for memset
* dynstream: remove superfluous zeroMem, add sendFds/recvFdsbptato2025-01-123-26/+33
|
* buffer, dynstream: fix clone race, recvmsg/sendmsg castbptato2025-01-122-7/+7
| | | | | | | The fds must be read before the other buffer resumes execution. Also, for some reason, CMSG_SPACE/CMSG_LEN are inconsistent in their size with controllen on BSDs...
* Fix some strict defsbptato2025-01-124-9/+10
|
* loader: refcount LoaderBuffer pagesbptato2025-01-111-24/+9
| | | | | | | | | | | | One less unsafe/error prone construct. Refcounting the page as seq is unfortunate, but still miles better than zero-filling a non-refcounted array. (Plus it works better for base64 decoding.) The len field is still necessary, because old runtime doesn't support setLenUninit. Oh well, it's one wasted word, not the end of the world. As for the chunks, it looks like the allocator still uses small ones for the seq, so we're good.
* loader: fix memory leak on x-saveoutput + various fd leaksbptato2025-01-114-11/+22
|
* loader: truncate existing files on downloadbptato2025-01-111-1/+1
|
* loader: fix loader buffer page size optimizationbptato2025-01-111-1/+5
| | | | | | The goal is to get "SmallChunk" pages from the allocator. I think I stole the idea from faststreams, but the overhead might be different with raw pointers...
* bufreader, bufwriter: send all fds in one messagebptato2025-01-119-265/+181
| | | | | | | | Moves sendfd/recvfd out of C, and fixes some of its flaws too. The main one is that now all file descriptors are sent together. Also, I've decided to remove the ServerSocket after all; it's easy to add it back if it's ever needed again.
* pager: add some option wrappersbptato2025-01-101-4/+4
| | | | to mark nilable ref objects
* dom: reflect titlebptato2025-01-101-1/+2
|
* dom: add createDocumentbptato2025-01-102-19/+55
|
* dom: more select interfacesbptato2025-01-104-12/+71
| | | | this should be all of them
* buffer, ua.css, dom: more select adjustmentsbptato2025-01-105-123/+80
| | | | | | | ok, now it works like in w3m. (mostly, barring CSS limitations...) we'll see how this works out Also adds/fixes some select and option DOM APIs.
* ua.css: improve select renderingbptato2025-01-092-2/+7
| | | | | | | | | 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.