Uzbl

Tasklist

FS#254 - Add a uzbl-proxy tool

Attached to Project: Uzbl
Opened by Ben Boeckel (mathstuf) - 2011-04-14 03:19:46 AM
Last edited by Ben Boeckel (mathstuf) - 2011-04-14 11:37:06 PM
Task Type Feature Request
Category uzbl-browser & sample material
Status Researching
Assigned To Ben Boeckel (mathstuf)
Operating System All
Severity Medium
Priority High
Reported Version Development
Due in Version Undecided
Due Date 2011-05-30
Percent Complete 0%
Votes 0
Private No

Details

What it should do:

* Block connections to websites based on a whitelist/blacklist of URI regexes (AdBlock)
* URL rewriting (SSL Everywhere)
* Add/remove/modify HTML headers (Do Not Track)
* IPv6 (It will happen at some point)
* SSL

What it should NOT do:

* Caching: Others do it better. Much better. Use varnish and squid (see http://ingvar.blog.redpill-linpro.com/2010/05/26/accelerating-the-internet-or-actually-squid-with-varnish/).
* Auditing: Not our problem. Per-user == no write access to trustworthy logs.
* Content filtering: Per-user == no security for this.
* Mime filter: uzbl-core does text/html (or others if the webserver is misconfigured to not trigger a download); your download handler should reject crap you don't want.

Configuration:

* Flat file
* Plain text
* Easy to parse (grep, awk, etc.)

Rationale:

* Other proxies do more than is necessary
* It is purely a construct to implement features for uzbl that other browsers do in a UNIX philosophy way (other tools can use it, etc.)
* Meant to be per-user, not a system daemon

Implementation:

I have an old assignment (ANSI C89 + long long) which can trivially be ported to glib and header support. SSL and Connect support are less trivial, but it's something to start with. If we want to start from scratch, that is possible as well.

Thoughts?
This task depends upon

View Dependency Graph

This task blocks these from closing
FS#225 - 404 page
Comment by Bjartur Thorlacius (bjartur) - 2011-04-14 11:44:20 AM
By URL rewriting, whether do you mean it should connect over TLS whenever it can, falling back to plaintext TCP in case of connection failure or that it rewrites URLs per a regex provided by the user?
Comment by Ben Boeckel (mathstuf) - 2011-04-14 12:08:00 PM
@bjartur The proxy would catch urls that match a regex, rewrite and return a 307 to a) notify the client and b) make the proxy simpler (303 makes the client assume things like POST worked and 302 is used as if it were 303).
Comment by Ben Boeckel (mathstuf) - 2011-04-16 06:18:58 PM
Another feature that might be nice to support: https://addons.mozilla.org/en-US/firefox/addon/leechblock/

Comment by David Keijser (keis) - 2011-04-17 01:39:45 PM
libsoup has a server and a client part. I think we should try to use this if possible. to keep the number of http implementations in uzbl to a minimum.
Comment by Ben Boeckel (mathstuf) - 2011-04-17 01:42:23 PM
True. With the number of moving parts, maybe something like u-e-m would work better so that additional features could easily be dropped in.
Comment by David Keijser (keis) - 2011-04-17 01:54:37 PM
both polipo and squid can use something they call 'external redirectors'. If we could use this as-is or extend it we could save some time by not having to implement yet-another-adblocker and use adzapper.
sounds good for a u-e-m style modular world and also very unix-y

Loading...