Fossil SCM
Moved the "No Third-Party JavaScript in Fossil" section of javascript.md down into the Q&A "debate" section. Also reworked some of the following question's answer to the C vs JavaScript matter.
Commit
48ef633333c52ea23f00d576e58fa1bbc2cd97868d53c94985deb2b37c920f69
Parent
bc5cf56965625ab…
1 file changed
+29
-31
+29
-31
| --- www/javascript.md | ||
| +++ www/javascript.md | ||
| @@ -66,27 +66,10 @@ | ||
| 66 | 66 | all of this; you can then override UBO’s stock rules as needed. |
| 67 | 67 | |
| 68 | 68 | [ns]: https://noscript.net/ |
| 69 | 69 | [ub]: https://github.com/gorhill/uBlock/ |
| 70 | 70 | |
| 71 | - | |
| 72 | -## <a id="3pjs"></a>No Third-Party JavaScript in Fossil | |
| 73 | - | |
| 74 | -Fossil does not use any third-party JavaScript libraries, not even very | |
| 75 | -common ones like jQuery. Every bit of JavaScript served by the stock | |
| 76 | -version of Fossil was written specifically for the Fossil project and is | |
| 77 | -stored [in its code repository](https://fossil-scm.org/fossil/file). | |
| 78 | - | |
| 79 | -Therefore, if you want to hack on the JavaScript code served by Fossil | |
| 80 | -and mechanisms like [skin editing][cs] don’t suffice for your purposes, | |
| 81 | -you can hack on the JavaScript in your local instance directly, just as | |
| 82 | -you can hack on its C, SQL, and Tcl code. Fossil is free and open source | |
| 83 | -software, under [a single license][2cbsd]. | |
| 84 | - | |
| 85 | -[2cbsd]: https://fossil-scm.org/home/doc/trunk/COPYRIGHT-BSD2.txt | |
| 86 | -[cs]: ./customskin.md | |
| 87 | - | |
| 88 | 71 | |
| 89 | 72 | ## <a id="snoop"></a>Fossil Does Not Snoop On You |
| 90 | 73 | |
| 91 | 74 | There is no tracking or other snooping technology in Fossil other than |
| 92 | 75 | that necessary for basic security, such as IP address logging on |
| @@ -172,14 +155,34 @@ | ||
| 172 | 155 | their engines fast and competitive. |
| 173 | 156 | |
| 174 | 157 | Once the scripts are cached, Ajax based page updates are faster than |
| 175 | 158 | the alternative. |
| 176 | 159 | |
| 177 | -3. “**JavaScript is insecure.**” | |
| 160 | +3. <a id="3pjs"></a>”**Third-party JavaScript cannot be trusted.**” | |
| 161 | + | |
| 162 | + Fossil does not use any third-party JavaScript libraries, not even | |
| 163 | + very common ones like jQuery. Every bit of JavaScript served by the | |
| 164 | + stock version of Fossil was written specifically for the Fossil | |
| 165 | + project and is stored [in its code repository][fsrc]. | |
| 166 | + | |
| 167 | + Therefore, if you want to hack on the JavaScript code served by | |
| 168 | + Fossil and mechanisms like [skin editing][cskin] don’t suffice for your | |
| 169 | + purposes, you can hack on the JavaScript in your local instance | |
| 170 | + directly, just as you can hack on its C, SQL, and Tcl code. Fossil | |
| 171 | + is free and open source software, under [a single license][2cbsd]. | |
| 172 | + | |
| 173 | +4. “**JavaScript is fundamentally insecure.**” | |
| 178 | 174 | |
| 179 | 175 | JavaScript is historically associated with some nefarious uses, but |
| 180 | - the question is not whether JavaScript is itself evil, it is whether | |
| 176 | + if we wish to have more features in Fossil, the alternative is to | |
| 177 | + add more C code to the Fossil binary, a language with *far more* | |
| 178 | + historical security problems associated with it. | |
| 179 | + | |
| 180 | + Does it not make sense to place as much trust in Fossil’s JavaScript | |
| 181 | + code as in its C code? | |
| 182 | + | |
| 183 | + The question is not whether JavaScript is itself evil, it is whether | |
| 181 | 184 | its *authors* are evil. *Every byte* of JavaScript code used within |
| 182 | 185 | the Fossil UI is: |
| 183 | 186 | |
| 184 | 187 | * ...written by the Fossil developers, vetted by their peers. |
| 185 | 188 | |
| @@ -189,16 +192,10 @@ | ||
| 189 | 192 | * ...compiled directly into the `fossil` binary in a |
| 190 | 193 | non-obfuscated form during the build process, so there are no |
| 191 | 194 | third-party servers delivering mysterious, obfuscated JavaScript |
| 192 | 195 | code to the user. |
| 193 | 196 | |
| 194 | - C, Fossil's main implementation language, has been associated with | |
| 195 | - far more security problems than JavaScript, yet the apparent | |
| 196 | - alternative to reducing the amount of JavaScript in Fossil is to | |
| 197 | - increase the amount of C code. Does it not make sense to place as | |
| 198 | - much trust in Fossil’s JavaScript code as in its C code? | |
| 199 | - | |
| 200 | 197 | Local administrators can [modify the repository’s skin][cskin] to |
| 201 | 198 | inject additional JavaScript code into pages served by their Fossil |
| 202 | 199 | server. A typical case is to add a syntax highlighter like |
| 203 | 200 | [Prism.js][pjs] or [highlightjs][hljs] to the local repository. At |
| 204 | 201 | that point, your trust concern is not with Fossil’s use of |
| @@ -208,20 +205,20 @@ | ||
| 208 | 205 | prohibits execution of JavaScript code which is delivered from |
| 209 | 206 | anywhere but the Fossil server which delivers the page. A local |
| 210 | 207 | administrator can change this CSP, but again this comes down to a |
| 211 | 208 | matter of trust with the administrator, not with Fossil itself. |
| 212 | 209 | |
| 213 | -4. “**Cross-browser compatibility is poor.**” | |
| 210 | +5. “**Cross-browser compatibility is poor.**” | |
| 214 | 211 | |
| 215 | 212 | It most certainly was in the first decade or so of JavaScript’s |
| 216 | 213 | lifetime, resulting in the creation of powerful libraries like |
| 217 | 214 | jQuery to patch over the incompatibilities. Over time, the need for |
| 218 | 215 | such libraries has dropped as browser vendors have fixed the |
| 219 | 216 | incompatibilities. Cross-browser JavaScript compatibility issues |
| 220 | 217 | which affect web developers are, by and large, a thing of the past. |
| 221 | 218 | |
| 222 | -5. “**Fossil UI works fine without JavaScript.**” | |
| 219 | +6. “**Fossil UI works fine without JavaScript.**” | |
| 223 | 220 | |
| 224 | 221 | While this is true today, and we have no philosophical objection to |
| 225 | 222 | it remaining true, we do not intend to limit ourselves to only those |
| 226 | 223 | features that can be created without JavaScript. The mere |
| 227 | 224 | availability of alternatives is not a good justification for holding |
| @@ -230,11 +227,11 @@ | ||
| 230 | 227 | The no-JS case is a [minority position](#stats), so those that want |
| 231 | 228 | Fossil to have no-JS alternatives and graceful fallbacks will need |
| 232 | 229 | to get involved with the development if they want this state of |
| 233 | 230 | affairs to continue. |
| 234 | 231 | |
| 235 | -6. <a id="stats"></a>“**A large number of users run without JavaScript enabled.**” | |
| 232 | +7. <a id="stats"></a>“**A large number of users run without JavaScript enabled.**” | |
| 236 | 233 | |
| 237 | 234 | That’s not what web audience measurements say: |
| 238 | 235 | |
| 239 | 236 | * [What percentage of browsers with javascript disabled?][s1] |
| 240 | 237 | * [How many people are missing out on JavaScript enhancement?][s2] |
| @@ -253,26 +250,27 @@ | ||
| 253 | 250 | run [powerful conditional blocking plugins](#block) in their |
| 254 | 251 | browsers, rather than block JavaScript entirely. We suspect that |
| 255 | 252 | between these two forces, the number of no-JS purists among Fossil’s |
| 256 | 253 | user base is still a tiny minority. |
| 257 | 254 | |
| 258 | -7. “**My browser doesn’t even *have* a JavaScript interpreter.**” | |
| 255 | +8. “**My browser doesn’t even *have* a JavaScript interpreter.**” | |
| 259 | 256 | |
| 260 | 257 | The Fossil open source project has no full-time developers, and only |
| 261 | 258 | a few of these part-timers are responsible for the bulk of the code |
| 262 | 259 | in Fossil. If you want Fossil to support such niche use cases, then |
| 263 | 260 | you will have to [get involved with its development][cg]; it’s |
| 264 | 261 | *your* uncommon itch. |
| 265 | 262 | |
| 263 | +[2cbsd]: https://fossil-scm.org/home/doc/trunk/COPYRIGHT-BSD2.txt | |
| 266 | 264 | [cskin]: ./customskin.md |
| 267 | 265 | [dcsp]: ./defcsp.md |
| 268 | 266 | [fcgi]: /help?cmd=cgi |
| 269 | 267 | [ffor]: https://fossil-scm.org/forum/ |
| 270 | 268 | [flic]: /doc/trunk/COPYRIGHT-BSD2.txt |
| 269 | +[fshome]: /doc/trunk/www/server/ | |
| 271 | 270 | [fsrc]: https://fossil-scm.org/home/file/src |
| 272 | 271 | [fsrv]: /help?cmd=server |
| 273 | -[fshome]: /doc/trunk/www/server/ | |
| 274 | 272 | [hljs]: https://fossil-scm.org/forum/forumpost/9150bc22ca |
| 275 | 273 | [pjs]: https://fossil-scm.org/forum/forumpost/1198651c6d |
| 276 | 274 | [s1]: https://blockmetry.com/blog/javascript-disabled |
| 277 | 275 | [s2]: https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/ |
| 278 | 276 | [s3]: https://w3techs.com/technologies/overview/client_side_language/all |
| @@ -517,11 +515,11 @@ | ||
| 517 | 515 | |
| 518 | 516 | _Graceful Fallback:_ Clicking the hamburger menu button with JavaScript |
| 519 | 517 | disabled will take you to the `/sitemap` page instead of showing a |
| 520 | 518 | simplified version of that page’s content in a drop-down. |
| 521 | 519 | |
| 522 | -_Workaround:_ You can remove this button by [editing the skin][cs] | |
| 520 | +_Workaround:_ You can remove this button by [editing the skin][cskin] | |
| 523 | 521 | header. |
| 524 | 522 | |
| 525 | 523 | |
| 526 | 524 | ### <a id="clock"></a>Clock |
| 527 | 525 | |
| 528 | 526 |
| --- www/javascript.md | |
| +++ www/javascript.md | |
| @@ -66,27 +66,10 @@ | |
| 66 | all of this; you can then override UBO’s stock rules as needed. |
| 67 | |
| 68 | [ns]: https://noscript.net/ |
| 69 | [ub]: https://github.com/gorhill/uBlock/ |
| 70 | |
| 71 | |
| 72 | ## <a id="3pjs"></a>No Third-Party JavaScript in Fossil |
| 73 | |
| 74 | Fossil does not use any third-party JavaScript libraries, not even very |
| 75 | common ones like jQuery. Every bit of JavaScript served by the stock |
| 76 | version of Fossil was written specifically for the Fossil project and is |
| 77 | stored [in its code repository](https://fossil-scm.org/fossil/file). |
| 78 | |
| 79 | Therefore, if you want to hack on the JavaScript code served by Fossil |
| 80 | and mechanisms like [skin editing][cs] don’t suffice for your purposes, |
| 81 | you can hack on the JavaScript in your local instance directly, just as |
| 82 | you can hack on its C, SQL, and Tcl code. Fossil is free and open source |
| 83 | software, under [a single license][2cbsd]. |
| 84 | |
| 85 | [2cbsd]: https://fossil-scm.org/home/doc/trunk/COPYRIGHT-BSD2.txt |
| 86 | [cs]: ./customskin.md |
| 87 | |
| 88 | |
| 89 | ## <a id="snoop"></a>Fossil Does Not Snoop On You |
| 90 | |
| 91 | There is no tracking or other snooping technology in Fossil other than |
| 92 | that necessary for basic security, such as IP address logging on |
| @@ -172,14 +155,34 @@ | |
| 172 | their engines fast and competitive. |
| 173 | |
| 174 | Once the scripts are cached, Ajax based page updates are faster than |
| 175 | the alternative. |
| 176 | |
| 177 | 3. “**JavaScript is insecure.**” |
| 178 | |
| 179 | JavaScript is historically associated with some nefarious uses, but |
| 180 | the question is not whether JavaScript is itself evil, it is whether |
| 181 | its *authors* are evil. *Every byte* of JavaScript code used within |
| 182 | the Fossil UI is: |
| 183 | |
| 184 | * ...written by the Fossil developers, vetted by their peers. |
| 185 | |
| @@ -189,16 +192,10 @@ | |
| 189 | * ...compiled directly into the `fossil` binary in a |
| 190 | non-obfuscated form during the build process, so there are no |
| 191 | third-party servers delivering mysterious, obfuscated JavaScript |
| 192 | code to the user. |
| 193 | |
| 194 | C, Fossil's main implementation language, has been associated with |
| 195 | far more security problems than JavaScript, yet the apparent |
| 196 | alternative to reducing the amount of JavaScript in Fossil is to |
| 197 | increase the amount of C code. Does it not make sense to place as |
| 198 | much trust in Fossil’s JavaScript code as in its C code? |
| 199 | |
| 200 | Local administrators can [modify the repository’s skin][cskin] to |
| 201 | inject additional JavaScript code into pages served by their Fossil |
| 202 | server. A typical case is to add a syntax highlighter like |
| 203 | [Prism.js][pjs] or [highlightjs][hljs] to the local repository. At |
| 204 | that point, your trust concern is not with Fossil’s use of |
| @@ -208,20 +205,20 @@ | |
| 208 | prohibits execution of JavaScript code which is delivered from |
| 209 | anywhere but the Fossil server which delivers the page. A local |
| 210 | administrator can change this CSP, but again this comes down to a |
| 211 | matter of trust with the administrator, not with Fossil itself. |
| 212 | |
| 213 | 4. “**Cross-browser compatibility is poor.**” |
| 214 | |
| 215 | It most certainly was in the first decade or so of JavaScript’s |
| 216 | lifetime, resulting in the creation of powerful libraries like |
| 217 | jQuery to patch over the incompatibilities. Over time, the need for |
| 218 | such libraries has dropped as browser vendors have fixed the |
| 219 | incompatibilities. Cross-browser JavaScript compatibility issues |
| 220 | which affect web developers are, by and large, a thing of the past. |
| 221 | |
| 222 | 5. “**Fossil UI works fine without JavaScript.**” |
| 223 | |
| 224 | While this is true today, and we have no philosophical objection to |
| 225 | it remaining true, we do not intend to limit ourselves to only those |
| 226 | features that can be created without JavaScript. The mere |
| 227 | availability of alternatives is not a good justification for holding |
| @@ -230,11 +227,11 @@ | |
| 230 | The no-JS case is a [minority position](#stats), so those that want |
| 231 | Fossil to have no-JS alternatives and graceful fallbacks will need |
| 232 | to get involved with the development if they want this state of |
| 233 | affairs to continue. |
| 234 | |
| 235 | 6. <a id="stats"></a>“**A large number of users run without JavaScript enabled.**” |
| 236 | |
| 237 | That’s not what web audience measurements say: |
| 238 | |
| 239 | * [What percentage of browsers with javascript disabled?][s1] |
| 240 | * [How many people are missing out on JavaScript enhancement?][s2] |
| @@ -253,26 +250,27 @@ | |
| 253 | run [powerful conditional blocking plugins](#block) in their |
| 254 | browsers, rather than block JavaScript entirely. We suspect that |
| 255 | between these two forces, the number of no-JS purists among Fossil’s |
| 256 | user base is still a tiny minority. |
| 257 | |
| 258 | 7. “**My browser doesn’t even *have* a JavaScript interpreter.**” |
| 259 | |
| 260 | The Fossil open source project has no full-time developers, and only |
| 261 | a few of these part-timers are responsible for the bulk of the code |
| 262 | in Fossil. If you want Fossil to support such niche use cases, then |
| 263 | you will have to [get involved with its development][cg]; it’s |
| 264 | *your* uncommon itch. |
| 265 | |
| 266 | [cskin]: ./customskin.md |
| 267 | [dcsp]: ./defcsp.md |
| 268 | [fcgi]: /help?cmd=cgi |
| 269 | [ffor]: https://fossil-scm.org/forum/ |
| 270 | [flic]: /doc/trunk/COPYRIGHT-BSD2.txt |
| 271 | [fsrc]: https://fossil-scm.org/home/file/src |
| 272 | [fsrv]: /help?cmd=server |
| 273 | [fshome]: /doc/trunk/www/server/ |
| 274 | [hljs]: https://fossil-scm.org/forum/forumpost/9150bc22ca |
| 275 | [pjs]: https://fossil-scm.org/forum/forumpost/1198651c6d |
| 276 | [s1]: https://blockmetry.com/blog/javascript-disabled |
| 277 | [s2]: https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/ |
| 278 | [s3]: https://w3techs.com/technologies/overview/client_side_language/all |
| @@ -517,11 +515,11 @@ | |
| 517 | |
| 518 | _Graceful Fallback:_ Clicking the hamburger menu button with JavaScript |
| 519 | disabled will take you to the `/sitemap` page instead of showing a |
| 520 | simplified version of that page’s content in a drop-down. |
| 521 | |
| 522 | _Workaround:_ You can remove this button by [editing the skin][cs] |
| 523 | header. |
| 524 | |
| 525 | |
| 526 | ### <a id="clock"></a>Clock |
| 527 | |
| 528 |
| --- www/javascript.md | |
| +++ www/javascript.md | |
| @@ -66,27 +66,10 @@ | |
| 66 | all of this; you can then override UBO’s stock rules as needed. |
| 67 | |
| 68 | [ns]: https://noscript.net/ |
| 69 | [ub]: https://github.com/gorhill/uBlock/ |
| 70 | |
| 71 | |
| 72 | ## <a id="snoop"></a>Fossil Does Not Snoop On You |
| 73 | |
| 74 | There is no tracking or other snooping technology in Fossil other than |
| 75 | that necessary for basic security, such as IP address logging on |
| @@ -172,14 +155,34 @@ | |
| 155 | their engines fast and competitive. |
| 156 | |
| 157 | Once the scripts are cached, Ajax based page updates are faster than |
| 158 | the alternative. |
| 159 | |
| 160 | 3. <a id="3pjs"></a>”**Third-party JavaScript cannot be trusted.**” |
| 161 | |
| 162 | Fossil does not use any third-party JavaScript libraries, not even |
| 163 | very common ones like jQuery. Every bit of JavaScript served by the |
| 164 | stock version of Fossil was written specifically for the Fossil |
| 165 | project and is stored [in its code repository][fsrc]. |
| 166 | |
| 167 | Therefore, if you want to hack on the JavaScript code served by |
| 168 | Fossil and mechanisms like [skin editing][cskin] don’t suffice for your |
| 169 | purposes, you can hack on the JavaScript in your local instance |
| 170 | directly, just as you can hack on its C, SQL, and Tcl code. Fossil |
| 171 | is free and open source software, under [a single license][2cbsd]. |
| 172 | |
| 173 | 4. “**JavaScript is fundamentally insecure.**” |
| 174 | |
| 175 | JavaScript is historically associated with some nefarious uses, but |
| 176 | if we wish to have more features in Fossil, the alternative is to |
| 177 | add more C code to the Fossil binary, a language with *far more* |
| 178 | historical security problems associated with it. |
| 179 | |
| 180 | Does it not make sense to place as much trust in Fossil’s JavaScript |
| 181 | code as in its C code? |
| 182 | |
| 183 | The question is not whether JavaScript is itself evil, it is whether |
| 184 | its *authors* are evil. *Every byte* of JavaScript code used within |
| 185 | the Fossil UI is: |
| 186 | |
| 187 | * ...written by the Fossil developers, vetted by their peers. |
| 188 | |
| @@ -189,16 +192,10 @@ | |
| 192 | * ...compiled directly into the `fossil` binary in a |
| 193 | non-obfuscated form during the build process, so there are no |
| 194 | third-party servers delivering mysterious, obfuscated JavaScript |
| 195 | code to the user. |
| 196 | |
| 197 | Local administrators can [modify the repository’s skin][cskin] to |
| 198 | inject additional JavaScript code into pages served by their Fossil |
| 199 | server. A typical case is to add a syntax highlighter like |
| 200 | [Prism.js][pjs] or [highlightjs][hljs] to the local repository. At |
| 201 | that point, your trust concern is not with Fossil’s use of |
| @@ -208,20 +205,20 @@ | |
| 205 | prohibits execution of JavaScript code which is delivered from |
| 206 | anywhere but the Fossil server which delivers the page. A local |
| 207 | administrator can change this CSP, but again this comes down to a |
| 208 | matter of trust with the administrator, not with Fossil itself. |
| 209 | |
| 210 | 5. “**Cross-browser compatibility is poor.**” |
| 211 | |
| 212 | It most certainly was in the first decade or so of JavaScript’s |
| 213 | lifetime, resulting in the creation of powerful libraries like |
| 214 | jQuery to patch over the incompatibilities. Over time, the need for |
| 215 | such libraries has dropped as browser vendors have fixed the |
| 216 | incompatibilities. Cross-browser JavaScript compatibility issues |
| 217 | which affect web developers are, by and large, a thing of the past. |
| 218 | |
| 219 | 6. “**Fossil UI works fine without JavaScript.**” |
| 220 | |
| 221 | While this is true today, and we have no philosophical objection to |
| 222 | it remaining true, we do not intend to limit ourselves to only those |
| 223 | features that can be created without JavaScript. The mere |
| 224 | availability of alternatives is not a good justification for holding |
| @@ -230,11 +227,11 @@ | |
| 227 | The no-JS case is a [minority position](#stats), so those that want |
| 228 | Fossil to have no-JS alternatives and graceful fallbacks will need |
| 229 | to get involved with the development if they want this state of |
| 230 | affairs to continue. |
| 231 | |
| 232 | 7. <a id="stats"></a>“**A large number of users run without JavaScript enabled.**” |
| 233 | |
| 234 | That’s not what web audience measurements say: |
| 235 | |
| 236 | * [What percentage of browsers with javascript disabled?][s1] |
| 237 | * [How many people are missing out on JavaScript enhancement?][s2] |
| @@ -253,26 +250,27 @@ | |
| 250 | run [powerful conditional blocking plugins](#block) in their |
| 251 | browsers, rather than block JavaScript entirely. We suspect that |
| 252 | between these two forces, the number of no-JS purists among Fossil’s |
| 253 | user base is still a tiny minority. |
| 254 | |
| 255 | 8. “**My browser doesn’t even *have* a JavaScript interpreter.**” |
| 256 | |
| 257 | The Fossil open source project has no full-time developers, and only |
| 258 | a few of these part-timers are responsible for the bulk of the code |
| 259 | in Fossil. If you want Fossil to support such niche use cases, then |
| 260 | you will have to [get involved with its development][cg]; it’s |
| 261 | *your* uncommon itch. |
| 262 | |
| 263 | [2cbsd]: https://fossil-scm.org/home/doc/trunk/COPYRIGHT-BSD2.txt |
| 264 | [cskin]: ./customskin.md |
| 265 | [dcsp]: ./defcsp.md |
| 266 | [fcgi]: /help?cmd=cgi |
| 267 | [ffor]: https://fossil-scm.org/forum/ |
| 268 | [flic]: /doc/trunk/COPYRIGHT-BSD2.txt |
| 269 | [fshome]: /doc/trunk/www/server/ |
| 270 | [fsrc]: https://fossil-scm.org/home/file/src |
| 271 | [fsrv]: /help?cmd=server |
| 272 | [hljs]: https://fossil-scm.org/forum/forumpost/9150bc22ca |
| 273 | [pjs]: https://fossil-scm.org/forum/forumpost/1198651c6d |
| 274 | [s1]: https://blockmetry.com/blog/javascript-disabled |
| 275 | [s2]: https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/ |
| 276 | [s3]: https://w3techs.com/technologies/overview/client_side_language/all |
| @@ -517,11 +515,11 @@ | |
| 515 | |
| 516 | _Graceful Fallback:_ Clicking the hamburger menu button with JavaScript |
| 517 | disabled will take you to the `/sitemap` page instead of showing a |
| 518 | simplified version of that page’s content in a drop-down. |
| 519 | |
| 520 | _Workaround:_ You can remove this button by [editing the skin][cskin] |
| 521 | header. |
| 522 | |
| 523 | |
| 524 | ### <a id="clock"></a>Clock |
| 525 | |
| 526 |