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.
. ├── Makefile ├── Readme.html ├── backgroundupdate.sh ├── build.sh ├── 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 ├── preamble.ps ├── quickjs ├── readme.html ├── readme.md ├── test.c ├── url.c └── url.h 2 directories, 22 files 940K . * master newalloc swiley/js
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