aboutsummaryrefslogtreecommitdiff

Simple Extension for viewing certain websites with user-controlled JS

The browser extension developed here

  • is one of the last guerilla efforts of those still opposing the pervasive idea of websites deserving the ability to execute software (e.g. JavaScript code) in our web browsers,
  • might help you pass Anubis proof-of-work challenge (used, for example, on some parts of kernel.org) without having to enable scripts on the site that uses it, and
  • should co-exists with other blockers and script managers that you might be using.

The past has not been simple

I have already had an attempt at replacing site-served (sometimes nonfree) JS with user-supplied scripts, here. That extension aimed to be perfect with

  • script replacements executing unprivileged in the page context,
  • an ability to specify dependencies between scripts,
  • a repository of replacement scripts for sites,
  • an ability to search that repo by site URL,
  • a configurable script blocker functionality included,
  • support for Firefox-based browsers from version 60 onwards as well as Chromium-based browsers,
  • a detailed documentation,
  • a dedicated issue tracker,
  • its own website,
  • cryptographically signed releases, and
  • non-POSIX tools in the build system avoided to the extent possible,

Some of these could not be achieved in the way I intended. I later tried making a similar tool as a TLS-enabled proxy but could not spend more time on it once the NLnet grant finished.

Keeping software simple-stupid

Or should the heading say "simple, stupid"?

This extension makes several websites work (or kind of work) without site-served JS, but

  • all replacement scripts are executed in the semi-privileged content script context,
  • there's no notion of dependencies between scripts that this extension executes on websites,
  • the replacement scripts are contained within the extension itself and not queryable from any repository,
  • the extension blocks JS (and sometimes CSS) on sites it touches, albeit in a non-configurable fashion,
  • is only known to work with the browser I am using at any given moment (GNU IceCat 140.something at the time of writing),
  • has no documentation besides this README and its own code (which, btw, it the most accurate documentation possible),
  • has no issue tracker (email koszko@koszko.org if you need),
  • has no website of its own (just a Git repo served with cgit),
  • is only released as untagged git commits, and
  • besides the zip command line tool requires you to have GNU Make, jq and Inkscape to build it.

Copying

CC0. Also, REUSE.