Saturday, September 10, 2022

A minimal browser in base

Hello. My reasons for this proposition:
1. The user will be able to test basic websites without installing
anything.
2. The user will be able to read an incredibly useful official
FAQ, with no external devices involved.
3. The user will be able to manage mailing list
membership via the web interface.
4. Using ftp(1) and reading pure HTML is inconvenient.
5. The browser (Lynx) was already included. It was removed due to
concerns about code quality, licensing, and support for insecure
protocols.
You could say that you don't need a browser installed by default if you
have a network connection and can install the package anyway.
Still, am I the only one who feels like it's pretty much the only thing
missing in the base for a comfortable day to day desktop usage?
So, if we include a browser, which one?
I could only find two options. The rest use
unacceptable licenses or are way too big and scary.
w3m:
- terminal only.
- No CSS or Javascript support. CSS can be used for tracking. CSS3 +
HTML5 is Turing complete. I don't need to convince you that
Javascript is a security nightmare.
Sources:
https://lemire.me/blog/2011/03/08/breaking-news-htmlcss-is-turing-complete/
https://www.templarbit.com/blog/2018/03/20/tracking-users-with-css/
- No support for obscure protocols. Just HTTP/S and FTP.
- MIT license. Seems to align well with our copyright policy.
(For those who don't know, it's an equivalent to ISC and BSD
2-clause. Xorg also uses MIT).
- Can also be used as a pager/e-reader with bookmark
functionality. Two birds with one stone? Anybody feel like replacing
less? Joke.
- Optional image support (we shouldn't use it for security concerns,
obviously).
- 70k of C + boehm garbage collector, another 40k.
Current source is maintained by a a Debian developer.
https://tracker.debian.org/pkg/w3m
w3l
, fork of w3m:
- Removed some features that can be provided by other tools (e.g. tab
functionality).
- Completely removed image support. The keybinding to open an image in
an external viewer is enough.
- For some reason uses curl. I guess, it can
use ftp(1) instead.
- Minimal reliance on the garbage collector. I suspect that it can be
completely removed.
- 30k of C + 40k of C in boehm gc.
Source: https://sr.ht/~vdupras/w3l/
If you know about any other options, I will be interested in
discussing them.

No comments:

Post a Comment