aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 8bd5b8cfb21d7182acd20113ec19892195196526 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 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](https://anubis.techaro.lol/) proof-of-work
  challenge (used, for example, on some parts of
  [kernel.org](https://www.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](https://git.koszko.org/browser-extension).
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](mailto: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](https://reuse.software/).