44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
antiquated methods.
JavaScript is not perfect, but it's what we have, so we will use it
where we find it advantageous.
[cg]: ./contribute.wiki
## <a id="block"></a>Blocking JavaScript
Rather than either block JavaScript wholesale or give up on blocking
JavaScript entirely, we recommend that you use tools like [NoScript][ns]
or [uBlock Origin][ub] to selectively block problematic uses of
JavaScript so the rest of the web can use the technology productively,
as it was intended. There are doubtless other useful tools of this sort;
we recommend only these two due to our limited experience, not out of
any wish to exclude other tools.
The primary difference between these two for our purposes is that
NoScript lets you select scripts to run on a page on a case-by-case
basis, whereas uBlock Origin delegates those choices to a group of
motivated volunteers who maintain whitelists and blacklists to control
all of this; you can then override UBO’s stock rules as needed.
[ns]: https://noscript.net/
[ub]: https://github.com/gorhill/uBlock/
## <a id="debate"></a>Arguments Against JavaScript & Our Rebuttals
There many common arguments against the use of JavaScript. Rather than
rehash these same arguments on the [forum][ffor], we distill the common
ones we’ve heard before and give our stock answers to them here:
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
antiquated methods.
JavaScript is not perfect, but it's what we have, so we will use it
where we find it advantageous.
[cg]: ./contribute.wiki
## <a id="debate"></a>Arguments Against JavaScript & Our Rebuttals
There many common arguments against the use of JavaScript. Rather than
rehash these same arguments on the [forum][ffor], we distill the common
ones we’ve heard before and give our stock answers to them here:
|
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
|
JavaScript blocking than the average web user. Yet, we’d also expect
to find that our user base has a disproportionately high number who
run [powerful conditional blocking plugins](#block) in their
browsers, rather than block JavaScript entirely. We suspect that
between these two forces, the number of no-JS purists among Fossil’s
user base is still a tiny minority.
9. “**My browser doesn’t even *have* a JavaScript interpreter.**”
The Fossil open source project has no full-time developers, and only
a few of these part-timers are responsible for the bulk of the code
in Fossil. If you want Fossil to support such niche use cases, then
you will have to [get involved with its development][cg]; it’s
*your* uncommon itch.
10. <a id="compat"></a>“**Fossil’s JavaScript code isn’t compatible with my browser.**”
The Fossil project’s developers aim to remain relatively compatible with
the largest portions of the client-side browser base. We use only
standards-defined JavaScript features which are known to work in the
overwhelmingly vast majority of browsers going back approximately 5
years, at minimum, as documented by [Can I Use...?][ciu] We avoid use of
features added to the language more recently or those which are still in
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
JavaScript blocking than the average web user. Yet, we’d also expect
to find that our user base has a disproportionately high number who
run [powerful conditional blocking plugins](#block) in their
browsers, rather than block JavaScript entirely. We suspect that
between these two forces, the number of no-JS purists among Fossil’s
user base is still a tiny minority.
9. <a id="block"></a>“**I block JavaScript entirely in my browser. That breaks Fossil.**”
First, see our philosophy statement above. Briefly, we intend that
there always be some other way to get any given result without using
JavaScript, developer interest willing.
But second, it doesn’t have to be all-or-nothing. We recommend that
those interested in blocking problematic uses of JavaScript use
tools like [NoScript][ns] or [uBlock Origin][ubo] to *selectively*
block JavaScript so the rest of the web can use the technology
productively, as it was intended.
There are doubtless other useful tools of this sort. We recommend
these two only from our limited experience, not out of any wish to
exclude other tools.
The primary difference between these two for our purposes is that
NoScript lets you select scripts to run on a page on a case-by-case
basis, whereas uBlock Origin delegates those choices to a group of
motivated volunteers who maintain whitelists and blacklists to control
all of this; you can then override UBO’s stock rules as needed.
10. “**My browser doesn’t even *have* a JavaScript interpreter.**”
The Fossil open source project has no full-time developers, and only
a few of these part-timers are responsible for the bulk of the code
in Fossil. If you want Fossil to support such niche use cases, then
you will have to [get involved with its development][cg]; it’s
*your* uncommon itch.
11. <a id="compat"></a>“**Fossil’s JavaScript code isn’t compatible with my browser.**”
The Fossil project’s developers aim to remain relatively compatible with
the largest portions of the client-side browser base. We use only
standards-defined JavaScript features which are known to work in the
overwhelmingly vast majority of browsers going back approximately 5
years, at minimum, as documented by [Can I Use...?][ciu] We avoid use of
features added to the language more recently or those which are still in
|
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
|
[fcgi]: /help?cmd=cgi
[ffor]: https://fossil-scm.org/forum/
[flic]: /doc/trunk/COPYRIGHT-BSD2.txt
[fshome]: /doc/trunk/www/server/
[fsrc]: https://fossil-scm.org/home/file/src
[fsrv]: /help?cmd=server
[hljs]: https://fossil-scm.org/forum/forumpost/9150bc22ca
[pjs]: https://fossil-scm.org/forum/forumpost/1198651c6d
[s1]: https://blockmetry.com/blog/javascript-disabled
[s2]: https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/
[s3]: https://w3techs.com/technologies/overview/client_side_language/all
[v8]: https://en.wikipedia.org/wiki/V8_(JavaScript_engine)
----
## <a id="uses"></a>Places Where Fossil’s Web UI Uses JavaScript
|
>
>
|
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
|
[fcgi]: /help?cmd=cgi
[ffor]: https://fossil-scm.org/forum/
[flic]: /doc/trunk/COPYRIGHT-BSD2.txt
[fshome]: /doc/trunk/www/server/
[fsrc]: https://fossil-scm.org/home/file/src
[fsrv]: /help?cmd=server
[hljs]: https://fossil-scm.org/forum/forumpost/9150bc22ca
[ns]: https://noscript.net/
[pjs]: https://fossil-scm.org/forum/forumpost/1198651c6d
[s1]: https://blockmetry.com/blog/javascript-disabled
[s2]: https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/
[s3]: https://w3techs.com/technologies/overview/client_side_language/all
[ubo]: https://github.com/gorhill/uBlock/
[v8]: https://en.wikipedia.org/wiki/V8_(JavaScript_engine)
----
## <a id="uses"></a>Places Where Fossil’s Web UI Uses JavaScript
|