about summary refs log tree commit diff stats
path: root/src/display/client.nim
Commit message (Collapse)AuthorAgeFilesLines
* Improve encoding supportbptato2023-07-121-2/+2
| | | | | | | | * Use the output charset in lineedit (as w3m does) * encoder: fix broken UTF-8 encoding, use openArray instead of var seq for input queue * Add RuneStream as an in-memory interface to EncoderStream * Document display-charset config option
* htmlparser: decouple from DOMbptato2023-07-091-1/+1
| | | | | Instead of directly appending nodes to the DOM, use a DOMBuilder interface.
* Add proxy supportbptato2023-07-041-1/+5
|
* Do not conditionally disable CastSizesbptato2023-07-031-6/+1
| | | | ...because that doesn't work at all.
* Fix JS type conversion regressionsbptato2023-07-031-3/+6
|
* Fix CastSize warningsbptato2023-07-031-1/+3
| | | | Introduced by 1.6.14. Warns of undefined behavior.
* Add XHR/Event stubsbptato2023-07-021-3/+7
|
* Factor out headers into separate modulebptato2023-07-011-0/+2
|
* use =destroy instead of finalizersbptato2023-07-011-1/+4
| | | | | This should help with moving to ORC in the future. (Also, finalizers do not work very well in the first place.)
* Do not block indefinitely if buffer crashes before acceptbptato2023-06-291-34/+46
| | | | Kind of a hack, but better than nothing.
* Do not free jsrt in quit()bptato2023-06-291-2/+2
| | | | | | Free'ing jsrt triggers a QuickJS assertion, presumably because of references still existing to the global object. Needs a proper fix later, for now it's just annoying.
* Free JSRuntime, JSContext and ctors on exitbptato2023-06-271-1/+8
|
* Fix crash in openEditor if SIGINT was deliveredbptato2023-06-261-0/+1
| | | | | | | | | | | nvi for example sets ISIG and traps SIGINT. Without this patch, this would propagate to all processes in the same process group and kill them. (It still does, but we set a signalHandler to ignore that.) Still not perfect, because for some reason we receive WIFSIGNALED even if the signal did not actually kill the editor. For now, we just treat this as a success.
* Working Nim-QuickJS GC integrationbptato2023-06-241-1/+2
| | | | I believe this works correctly. Hopefully I'm not wrong.
* Fix module loading bugsbptato2023-06-221-8/+17
|
* Reject fetch promise on network errorbptato2023-06-191-1/+1
| | | | Instead of setting the non-standard res variable.
* Get rid of the .jserr pragmabptato2023-06-191-1/+1
|
* Rework JS exception systembptato2023-06-191-0/+3
| | | | | Now we use Result for passing exceptions to JS. As a result, we can finally get rid of the .jserr pragma.
* Cleanups & bug fixes involving promisesbptato2023-06-151-0/+1
| | | | | Now a promise returning nil doesn't just leave the rest of the then chain hanging. Hooray.
* Make Result.text, json return promisebptato2023-06-131-4/+2
|
* Add readBlob, fix WebFile serializationbptato2023-06-111-1/+7
| | | | It's still kind of a mess, but it kind of works?
* Clean up stream error handlingbptato2023-06-071-0/+2
| | | | | | * sread now raises EOFError if readData returns too few bytes * buffer handleError ignores unregistered fds like client * client handleError ignores unregistered fds like buffer
* Fix bug in client's unregistered fd handlingbptato2023-06-061-2/+6
| | | | + run JS jobs after every poll in headless mode
* Add support for canvas and multipartbptato2023-06-051-0/+6
| | | | | | | | | | | | | | | Quite incomplete canvas implementation. Crucially, the layout engine can't do much with whatever is drawn because it doesn't support images yet. I've re-introduced multipart as well, with the FormData API. For the append function I've also introduced a hack to the JS binding generator that allows requesting the JSContext pointer in nim procs. Really I should just fix the union generator thing and add support for overloading. In conclusion, for now the only thing canvas can be used for is exporting it as PNG and uploading it somewhere. Also, we now have PNG encoding and decoding too. (Now if only we had sixels as well...)
* Add module loading to clientbptato2023-06-011-0/+24
| | | | Files only, for now.
* Add setTimeout, setInterval to windowbptato2023-06-011-83/+27
|
* Run JS jobs in headless mode toobptato2023-05-221-0/+2
| | | | As previous commit, just for headless mode
* Run JS jobs on timeout handlersbptato2023-05-211-0/+2
|
* Refactor config, add charset optsbptato2023-05-161-11/+14
| | | | Only document-charset supported for now.
* Fix some fetch crashesbptato2023-05-111-1/+4
| | | | Now it should work for very basic use-cases
* Improve debugging, reduce crashesbptato2023-05-091-1/+23
| | | | Loader no longer dies when not everything is read from the stream.
* WIP fetchbptato2023-04-301-0/+4
|
* setTimeout, setInterval: hack to fix 0 timeoutbptato2023-02-091-2/+2
| | | | Timers with a timeout < 1 seem to block indefinitely. No clue why.
* Slightly improve request api (less crashes)bptato2023-02-051-1/+1
|
* Slightly refactor commandModebptato2023-01-061-4/+12
|
* display/client: quit when pager.buffer is nullbptato2023-01-051-0/+3
|
* Add ask()bptato2023-01-051-5/+14
|
* client, pager, dom, ...: better error handlingbptato2023-01-041-73/+85
| | | | Now the browser shouldn't completely die when a buffer crashes.
* Fix connection load info not being shownbptato2023-01-021-2/+5
|
* Add promise support to JSbptato2022-12-311-1/+9
|
* dom: fix collection cachingbptato2022-12-271-0/+6
| | | | Use ids instead of pure pointers, so we can utilize the JS finalizer.
* pager: improve title display, fix alert displaybptato2022-12-251-0/+1
|
* pager: proxy values in container; js: bugfixesbptato2022-12-201-8/+7
| | | | Also, a little bonus: w3m keybindings
* Add JS support to documentsbptato2022-12-181-25/+23
|
* Allow cycling through hover-texts with ubptato2022-12-161-9/+8
|
* Fix console display bugs, add container.locationbptato2022-12-151-2/+5
|
* Fix stream error handling confusion, title displaybptato2022-12-131-1/+1
| | | | Also probably other fixes.
* Add more cookie optionsbptato2022-12-131-2/+2
|
* Add all sorts of config options and cookiesbptato2022-12-131-2/+6
|
* Fix -dbptato2022-12-101-0/+27
|