about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* cssvalues: fix length shorthand parsingbptato2024-12-302-4/+3
|
* env: stub postMessagebptato2024-12-301-0/+3
|
* cssvalues: fix font-weight parsingbptato2024-12-293-3/+4
| | | | | | you can't bisearch an unsorted map... (also, turn on text styling for colored layout tests because it would have caught this)
* lcgi: add missing noreturnbptato2024-12-291-1/+1
|
* Update docsbptato2024-12-292-3/+27
|
* cookie: add persistent cookies, misc refactoring/fixesbptato2024-12-2915-293/+572
| | | | | | | | | | | | | Mostly compatible with other browsers/tools that follow the Netscape/curl format. Cookie jars are represented by prepending "jar@" to the host part, but *only* if the target jar is different than the domain. Hopefully, other software at least does not choke on this convention. (At least curl seems to simply ignore the entries.) Also, I've moved cookies.nim to config so that code for local files parsed at startup remains in one place.
* config: clean up redundant CHA_DIR, update CGI docsbptato2024-12-295-47/+23
| | | | | "No CGI dir configured" is no longer a common case, so it's OK to just return "CGI file not found".
* pager: small cleanupbptato2024-12-291-2/+1
|
* history: remove comment parsing, fix fd leakbptato2024-12-292-8/+9
|
* xhr: fix flipped exception in overrideMimeTypebptato2024-12-282-1/+3
|
* cookie: remove redundant checkbptato2024-12-281-3/+1
| | | | | | | | This only resulted in false negatives; seems like it's a remnant from the old, non-standard implementation that did not correctly check for the per-cookie domain. (also, fix a strict def)
* layout: fix various padding bugsbptato2024-12-283-32/+52
| | | | | | | | They need some peculiar conditions to manifest, but the logic errors are clear: * padding contributing to intrinsic minimum size wasn't being clamped * inline padding was being applied twice
* uri2html: escape ampersandbptato2024-12-281-1/+1
|
* env: add innerWidth, innerHeightbptato2024-12-281-0/+6
|
* env: do not copy attrs, fix screen on clientbptato2024-12-285-29/+31
| | | | Now screen.width etc. works in the pager too.
* layout: fix a flex sizing bugbptato2024-12-273-5/+18
| | | | | it has to accept percentage sizes too for intrinsic size clamping, it seems
* cookie: remove broken third-party-cookie optionbptato2024-12-274-37/+6
| | | | | | | | | Looking at it closer, this never actually did what it advertised to do. It only affected first-party cookies from subdomains, but that has been fixed; third-party cookies were never supported in the first place. (In fact, even first-party cookies are still skipped unless directly received on navigation. This should probably be fixed.)
* dom: standard querySelector/All; type erase childrenbptato2024-12-272-27/+54
|
* dom: set elIndex to -1 for AttrDummyElementbptato2024-12-271-0/+2
|
* dom: expose getPropertyValuebptato2024-12-271-1/+1
|
* term: fix in-cell offset bug on kitty image scrollbptato2024-12-271-0/+5
| | | | | If the image has an offx or offy, then it means it is partially outside the screen, so its offx2/offy2 is already accounted for.
* CHA_CONFIG_DIR -> CHA_DIRbptato2024-12-2710-16/+23
| | | | | | | It isn't really limited to config. It just happens to be in XDG_CONFIG_HOME because XDG basedirs suck. (W3M_DIR works similarly.)
* Update docsbptato2024-12-274-164/+220
| | | | | Licenses now ordered by "explicitly PD", "PD-equivalent" and "not PD-equivalent".
* dom: add focus()bptato2024-12-274-4/+16
| | | | Respects autofocus.
* Update monouchabptato2024-12-262-6/+6
|
* layout: improve intrinsic minimum size calculationbptato2024-12-2610-85/+225
| | | | | It's a fair bit more accurate now on flex-heavy pages. Image sizing remains a broken mess.
* jsencoding: fix nil deref on empty encode inputbptato2024-12-262-9/+10
|
* term: fix display-charset not being interpretedbptato2024-12-261-5/+5
| | | | Also fixes the -O option.
* Update todobptato2024-12-261-3/+5
|
* Optimize some Option[string] outbptato2024-12-265-25/+29
| | | | toJS is generally more efficient
* env: fix taintEnabledbptato2024-12-261-1/+1
| | | | it should have been a function
* buffer: add "app" scripting modebptato2024-12-268-47/+89
| | | | | | | | | | For APIs that cannot be implemented in a privacy-friendly manner. As a start, I've added accurate screen size queries; getComputedStyle, getBoundingClientRect, etc. should follow. (We have a harmless getComputedStyle already, but it's broken.) Probably, things like JS-based scroll belong in here too, but I'm not sure yet. (Perhaps autofocus should be reused instead?)
* env: reflect user agent header in userAgentbptato2024-12-264-6/+10
|
* config: fix selection copybptato2024-12-221-3/+4
| | | | | | | In my infinite wisdom, I typed two paragraphs about this issue in c45502f8, but never actually changed the default config. Also, it's been almost a year now; time to drop yc.
* Strict def fixesbptato2024-12-225-5/+7
|
* main: add missing noreturnbptato2024-12-221-1/+1
|
* uri2html: skip hr if title is emptybptato2024-12-221-1/+1
|
* buffer.chasc: allow reversed clone syscall signaturebptato2024-12-221-2/+6
| | | | | | | This caused buffer cloning to choke on armhf. It seems that cris and S/390 architectures also swap flags and stack; luckily, both are dead.
* history: fix entry droppingbptato2024-12-221-0/+2
| | | | | next's pointer backwards must be updated too, or it the dropped ref will be erroneously displayed on the history screen.
* dom: optimize textContent, nodeValue; add nodeValue setterbptato2024-12-221-16/+31
|
* config: fix overriding substring bindingsbptato2024-12-222-10/+6
| | | | | | | | | | | | | | | | | It is unfortunately a breaking change, but the existing behavior was practically broken anyway. The only issue I can think of is that keybindings like `yy' now override `y', which previously worked because y (regrettably) calls feedNext. But those should be added to the default config anyway. (If a user really desires the old behavior, they can just re-bind y to cmd.buffer.copySelection after their own custom bindings. Config values are now stored in an ordered table, so this should work.) I've left the undocumented JS setter as it is, because the old behavior seems more useful there. (Perhaps there should be a separate function that behaves like toml?)
* chaseccomp: add CFLAGS, LDFLAGS to makefilebptato2024-12-222-1/+3
| | | | | Otherwise, it complains about missing syscalls on cross compilation. (Also, fix the warnings this revealed.)
* Misc character display fixesbptato2024-12-2214-326/+80
| | | | | | | | | | | | | | | | | | * fix luwrap comparison function * strip high unicode controls in term/pager * use wcwidth in dirlist2html * remove combining category from strwidth * remove unused "disallowed" field from lineedit My initial goal with switching to wcwidth in dirlist2html was just to get rid of the outdated combining map in charwidth_gen. Then I realized that layout will normalize those out anyway, so we don't actually have to deal with them anywhere. Also, I found a few bugs in the process; high unicode control chars not being stripped out was a particularly bad one, as it allows for pages to mess up the terminal output. (Easiest way to replicate: just open a random binary file without this patch.)
* Add historybptato2024-12-1714-50/+260
| | | | | It's still missing a "color visited links" feature, but it's better than nothing.
* twtstr: improve content type parameter handlingbptato2024-12-225-8/+32
| | | | | * accept quoted-string * quote values in setContentTypeAttr
* layout: resolve percentage width for auto table cellsbptato2024-12-213-9/+24
| | | | | It is still wrong in case the table is too small, but at least it fixes the regression from 0971ad85.
* cascade: actually, it should be inline-blockbptato2024-12-203-1/+18
| | | | what was I expecting
* cascade: blockify on position: absolute or fixedbptato2024-12-202-4/+5
| | | | | | | | | | | | | | Welp, turns out I was overthinking it. CSS does not support inline position: absolute at all, it just blockifies. That does leave us with the question of "why does inline-block behave differently than block?" Especially because both in Gecko and Blink, getComputedStyle for absolute inline-blocks gives me "block", not "inline-block", and yet there is the same difference in rendering when I change the CSS. I first thought it's a quirks mode issue, but standards mode doesn't affect it. Wat.
* box: InlineFragment -> InlineBoxbptato2024-12-204-150/+147
| | | | | | It was named "fragment" mainly because I added it back when there was still a separate InlineBox type and I needed another name. Now InlineBox is gone, and I'm tired of typing fragment.
* cssparser: small refactoringbptato2024-12-201-37/+23
| | | | | | | * isValidEscape was fairly pointless, and occasionally used incorrectly. * "starts with an ident sequence" is normally called on the next 3 codepoints; on the one occasion where it isn't, just hardcode the dash case.