about summary refs log tree commit diff stats
path: root/src/buffer/buffer.nim
Commit message (Collapse)AuthorAgeFilesLines
* move around more modulesbptato2023-09-141-1481/+0
| | | | | | | | | | * ips -> io/ * loader related stuff -> loader/ * tempfile -> extern/ * buffer, forkserver -> server/ * lineedit, window -> display/ * cell -> types/ * opt -> types/
* Switch buffer -> client connection to client -> bufferbptato2023-09-141-6/+5
| | | | | | | | | | | | We now connect to buffers from the client, instead of connecting buffers to the client. This has the following advantages: * Simplifies the client event loop. * Makes the client a real client (no more serversocket dependency). * Slightly more secure, as we no longer have to trust buffers not lying about their process ids. * Facilitates the potential future addition of connections from several clients to a single buffer.
* buffer: remove url referencebptato2023-09-091-2/+3
| | | | The same reference is already stored in BufferSource as location.
* buffer.click: implement preventDefaultbptato2023-09-081-8/+16
|
* buffer: run JS jobs on connected/read/errorbptato2023-09-011-0/+6
| | | | | | Not exactly the cleanest solution, but it should work for now. (Ideally it would only be called once after the select IF any of the three occurred on a fetchable file descriptor.)
* buffer: add javascript: URL supportbptato2023-09-011-3/+39
| | | | | | | | | Caveats: * only works in buffers, no navigation yet * converts the output result into a data URL, but data URLs are not supported yet... If JS is disabled, we simply do nothing.
* buffer: fix repaint on click eventsbptato2023-08-311-1/+2
|
* buffer: basic click event supportbptato2023-08-311-4/+48
| | | | | | | Mostly a proof of concept. Just bubble it unconditionally for now and never prevent default. Also, fix fromJSFunction by Dup'ing its closure JSValue.
* refactor: Result[T, JSError] -> JSResult[T]bptato2023-08-281-2/+2
|
* javascript: refactorbptato2023-08-281-1/+1
| | | | | | | Split out parts of the JS module, because it was starting to confuse the compiler a little. (Peakmem is back at 750M. Interesting.)
* Move HTML parsing into Chamebptato2023-08-151-1/+2
| | | | Operation "modularize Chawan somewhat" part 2
* Move charsets into chakasubptato2023-08-141-2/+3
| | | | Operation "modularize Chawan somewhat" part 1
* Add mailcap, mime.types & misc refactoringsbptato2023-08-131-33/+100
| | | | | | | | * add mailcap: works with copiousoutput, needsterminal, etc. * add mime.types (only works with mailcap) * refactor pipeBuffer * remove "dispatcher" * fix bug in directory display where baseurl would not be used
* buffer: fix textarea regressionbptato2023-07-101-2/+6
| | | | | Fix bug of not setting focus on clicked text area elements, which would result in the input text being discarded.
* htmlparser: decouple from DOMbptato2023-07-091-1/+1
| | | | | Instead of directly appending nodes to the DOM, use a DOMBuilder interface.
* Add popup menu for select elementbptato2023-07-051-91/+150
| | | | | | | Replaces the weird CSS implementation we have had until now with a searchable popup menu similar to that of w3m. (The previous implementation broke on websites that do not expect <select> to expand on click, had no separate search, and was ugly.)
* 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-2/+4
| | | | Introduced by 1.6.14. Warns of undefined behavior.
* FormData fixesbptato2023-07-021-1/+1
|
* Add window.locationbptato2023-06-291-1/+5
| | | | Note: setters do not work yet.
* buffer: only load images if config allows itbptato2023-06-251-1/+4
|
* cookie: return error on invalid domainbptato2023-06-251-2/+2
|
* Improve broken cookie handling, add multipart to formbptato2023-06-251-2/+2
| | | | | | | | Now it's not as horribly broken as before (but it's still far from perfect). We can at least log in to sr.ht (hooray). The form multipart part is straightforward, just pass what we used to pass long ago before I broke multipart.
* Do not allow text() twice, etc...bptato2023-06-201-14/+17
|
* Reject fetch promise on network errorbptato2023-06-191-12/+17
| | | | Instead of setting the non-standard res variable.
* Get rid of the .jserr pragmabptato2023-06-191-11/+9
|
* Rework JS exception systembptato2023-06-191-13/+24
| | | | | 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-6/+13
| | | | | 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
|
* Fix various layout bugs, prepare for image supportbptato2023-06-121-24/+46
|
* Add support for visibilitybptato2023-06-071-18/+15
|
* Add support for width, height media querybptato2023-06-071-4/+6
|
* Clean up stream error handlingbptato2023-06-071-6/+6
| | | | | | * sread now raises EOFError if readData returns too few bytes * buffer handleError ignores unregistered fds like client * client handleError ignores unregistered fds like buffer
* buffer: call handleError before handleRead & miscbptato2023-06-051-6/+6
|
* Add support for canvas and multipartbptato2023-06-051-82/+28
| | | | | | | | | | | | | | | 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 setTimeout, setInterval to windowbptato2023-06-011-49/+60
|
* Refactor config, add charset optsbptato2023-05-161-11/+12
| | | | Only document-charset supported for now.
* Set buffer state to LOADED on finishLoadbptato2023-05-141-2/+2
|
* Name negative response codesbptato2023-05-141-2/+4
|
* Async resource loading, exception handling fixesbptato2023-05-141-18/+60
|
* Fix some fetch crashesbptato2023-05-111-0/+1
| | | | Now it should work for very basic use-cases
* Temporarily disable multipartbptato2023-04-301-1/+1
| | | | It never really worked, and I can't be bothered to fix it now
* WIP fetchbptato2023-04-301-0/+10
|
* buffer: disable popup confirmation for formsbptato2023-04-101-4/+13
|
* buffer: adapt onload to PosixStream and SocketStreambptato2023-02-131-15/+14
|
* buffer: fix infinite loop in getClickablebptato2023-01-031-2/+3
|
* buffer: fix infinite loopbptato2023-01-031-1/+2
|
* dom: add better attribute reflectionbptato2023-01-021-2/+3
| | | | | Instead of creating a new function for each attribute, use a single magic function for reflected attributes.
* Add support for <label>bptato2023-01-021-93/+111
|