Readme.html web browser

This is a small web browser I have been working on and off since college. It is probably my longest running side project. My goals for it have changed over the years and it's still very incomplete but it's capable of browsing the web and using (non-js) forms.

Lately I've been cleaning up the (very messy) parser and adding JS support. There are also some basic unit tests now.


This is by no means complete. While I occasionally run valgrind's memcheck over it there are plenty of memory coruption bugs and loose ends. It's very much just an experament and shouldn't be seriously used.

Reposotory data

├── Makefile
├── Readme.html
├── cleandump.c
├── html.c
├── html.h
├── js.c
├── js.h
├── lists.c
├── lists.h
├── mdgen
│   └── mdgen.c
├── net.c
├── net.h
├── newpager.c
├── newpager.h
├── quickjs
├── readme.html
├── test.c
├── url.c
└── url.h

2 directories, 22 files
940K	.
* master

Go to Mergable branches


eb32395 Merge branch 'master' of /home/swiley/webthing
6425d3a publish to web
3ab29e9 Merge branch 'master' of /home/swiley/webthing
5d4dcbf publish to web
989c40b publish to web
4ce001e re add cirrection to html parser
9784381 something is eating '='
a677bab br should not have children
f8eec62 parser is putting script beneath br
af26348 test improvements
c843809 unit tests broken, going to bed
65b92b1 gdb is better than the weird signal hack
a8cce35 more testing
e67d0d1 first unit test (yikes)
f3f58a9 backtracing
44a2969 have to go to bed
dc28540 doesn't execute js
6877b1f linked quickjs
ef0c19a now built with make
1744932 added quickjs as submodule
b39e095 fix segfault by introducing leak
d6dd43a fixed a lot of stuff in the readme
3d26f5d form input owrks, duckduckgo search fails because the redirect is not followed properly
6b215b3 can edit input fields, does not display inline yet
0d78678 mem fixed, attr quotes fixed, page render state factored out and reinitilized on page load
eb5ecaf fixed some memory corruption, hid style, meta, and link tags, google home page is viewable
b9c1da6 started froms, going to do some valgrind
5715d8c fixed corruption
15bb19a added jump command, serious memory corruption with links
76caaf9 dynamic command interface in pager
a683199 new pager, many commands missing
b255615 fixed readme
bdf8b61 added readme
e409186 layout done (for now) maybe interactive and form editor next
8657331 forgot the actuall chages
a9626f2 new (still simple fsm) layout engine is beginning to work, no warnings
0b7302d started moving to libcurl url api
443f653 some cleanup with lists, removed compiler errors
33e62df example for expected ps preamble
dfa883c pushing to github
9642749 looking postscripty
295ce55 stupid
a400213 wow
0bfc288 continuing after long break
4648de3 segfaults when opening urls but very close
992cab8 segfaults when opening urls but very close
b4375f6 Habe nets!
059129a added pager to main program
d6a2216 wrote pager
b830009 now correctly handles / characters in urls
020c334 renders my homepage! (sort of)
ec61a2c renderscc -g html.c tdump.c -o html && valgrind --leak-check=full ./html cleaning numberous memory corruption bugs with valgrind now
b47ea81 renderscc -g html.c tdump.c -o html && valgrind ./html cleaning numberous memory corruption bugs with valgrind now
dedca51 fixed unterminated raw tags
c965218 some really basic rendering
7614eea made html.h for public dom functions, more future plans
51a0ad2 no longer eats brackets and = in raw tags
17d6174 raw tags (ala script) now parsed somewhat correctly
b1b0644 raw tags (ala script) now parsed somewhat correctly
8c882a5 inner text now works
f87c941 fixed use after free bug
de7d334 doesn't close but reads all tags
062913a no more segfaults
870c04f goes into infinite loop after first property
09471b7 root is exiting on the first tag heh
416f517 built a (very bad) recursive descent parser to get an idea of how they work

Updated and copyright Tue Jan 16 02:26:33 UTC 2024