[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
www server/gnun/gnun.mk help/help-javascript.html
From: |
Therese Godefroy |
Subject: |
www server/gnun/gnun.mk help/help-javascript.html |
Date: |
Sun, 28 Feb 2021 05:54:15 -0500 (EST) |
CVSROOT: /webcvs/www
Module name: www
Changes by: Therese Godefroy <th_g> 21/02/28 05:54:15
Modified files:
server/gnun : gnun.mk
Added files:
help : help-javascript.html
Log message:
Add help-javascript.html (RT #1697350):
"Write site-specific extensions to replace sites' JavaScript code".
CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/help/help-javascript.html?cvsroot=www&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/www/server/gnun/gnun.mk?cvsroot=www&r1=1.522&r2=1.523
Patches:
Index: server/gnun/gnun.mk
===================================================================
RCS file: /webcvs/www/www/server/gnun/gnun.mk,v
retrieving revision 1.522
retrieving revision 1.523
diff -u -b -r1.522 -r1.523
--- server/gnun/gnun.mk 4 Jan 2021 21:00:17 -0000 1.522
+++ server/gnun/gnun.mk 28 Feb 2021 10:54:15 -0000 1.523
@@ -380,6 +380,7 @@
gnu-bucks-recipients \
help \
help-hardware \
+ help-javascript \
linking-gnu \
priority-projects
Index: help/help-javascript.html
===================================================================
RCS file: help/help-javascript.html
diff -N help/help-javascript.html
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ help/help-javascript.html 28 Feb 2021 10:54:14 -0000 1.1
@@ -0,0 +1,312 @@
+<!--#include virtual="/server/html5-header.html" -->
+<!-- Parent-Version: 1.95 -->
+<!-- This page is derived from /server/standards/boilerplate.html -->
+<title>Write site-specific extensions to replace sites' JavaScript code
+- GNU Project - Free Software Foundation</title>
+<!--#include virtual="/server/gnun/initial-translations-list.html" -->
+<!--#include virtual="/server/banner.html" -->
+<div class="reduced-width">
+<h2>Write site-specific extensions to replace sites' JavaScript code</h2>
+<div class="thin"></div>
+
+<p><em>Many websites damage users' freedom by sending nonfree JavaScript
+programs to the user's browser. We invite volunteers to develop free
+browser extensions to replace for the JavaScript sent by particular
+sites (see the lists below).</em></p>
+
+<p>Our first response to the problem of nonfree JS code was to develop
+LibreJS, which enables Firefox-based browsers to detect and block that
+code. That protects us from running a site's nonfree JS programs, but
+does not make the site actually function. Writing an extension for
+it, as we propose here, would achieve that. It would also avoid the
+risk inherent in running software straight off someone else's website.</p>
+
+<p>We could also solve the problem by convincing the webmasters to
+correct their sites to function without the JavaScript code, but
+convincing them proves to be very difficult, since mostly they don't
+understand the issue, let alone care about it. Maybe recommending use
+of these extensions for their sites will convince them to pay
+attention to supporting non-JavaScript access.</p>
+
+<p>Therefore we invite volunteers to pick a site and write a browser
+extension to make that site function, assuming that LibreJS blocks the
+nonfree JavaScript sent by the site.</p>
+
+<p>The first thing to do is to look briefly at the licenses of the
+JavaScript files on the site. Some of them might actually be free
+software. If some of the JS code sent by the site is free, you can
+include it in your extension, changing it as needed.</p>
+
+<p>Next, check whether the site has published an API. If so, it is best
+to communicate using the API, if that can do the job. Otherwise, you
+need to use the browser debugging facilities to figure out what data
+and commands the JavaScript code sends to the server—in
+effect, its undocumented API.</p>
+
+<p>The way to avoid infringing copyright on the site's own JavaScript
+code is not to study the code. Not any part of it, not even once.
+If you did not read the code, it follows that you did not copy any of
+it. Look only at the licenses.</p>
+
+<p>These extensions should be honest—they should not
+“cheat.” If the site's JavaScript asks the user for
+information and sends it, the extension should ask the user for that
+information and send it. If the site asks per (<a href="#ft1">1</a>)
+to check a box to agree to XYZ, the extension should ask per to check a
+box to agree to XYZ. The extension should faithfully pass on whatever
+responses the user enters. If the site sends a cookie, the extension
+should let it be handled according to the browser settings for cookies.</p>
+
+<p>It is impossible to implement real security via JS code sent to the
+user, but whatever the site does to try to implement something
+resembling security, the extension should carry out faithfully. In
+particular, if the site asks the user to answer questions to prove
+perself not to be a robot, the extension should show per the same
+questions, get the answers, and send them in—thus enabling per
+to demonstrate that perse is human.</p>
+
+<p><a href="https://github.com/JeffCarpenter/librecaptcha">
+Jeff Carpenter's librecaptcha</a> might be useful if the
+site sends a captcha. We will start a project to convert it to JS,
+and we will need volunteers for that, so please write to me if you are
+interested in helping.</p>
+
+<p>Meanwhile, if the site's JS code gathers information surreptitiously,
+it is admirable to thwart that snooping. One idea is to ask the user
+what answer to return—for example, “The site is trying to find
+out your location. What do you want to tell it?” But it would be
+good to avoid asking the user frequently or repeatedly.</p>
+
+<p>When you have an extension working, please mail a copy to the GNU
+Project at <a
+href="mailto:js-extensions@gnu.org"><js-extensions@gnu.org></a>.
+You can also register it in Firefox's extensions list, if you can stomach
+running the nonfree software to do that.</p>
+
+<p>We have set up a mailing list, <a
+href="https://lists.gnu.org/mailman/listinfo/js-extensions-discussion">
+js-extensions-discussion</a> where
+you can talk with others who are developing extensions.</p>
+
+<p>Once things are going, we would like to set up a savannah.gnu.org repo
+where we will put the extensions that are working on. To do that, we
+need a volunteer or two to manage it. We expect this task not to be a
+lot of work; the reason to have two is for redundancy.</p>
+
+<p>We could also have a Savannah project which you could (if you wish)
+use for developing an extension; that too would require volunteers to
+take care of it.</p>
+
+<p>Here are some suggestions for sites to write extensions for. However,
+if some other site interests you more, by all means go where your
+interests take you.</p>
+
+<h3>Sites for accessing information and publications</h3>
+
+<p>The initial goal is to handle anonymous access.
+To handle logging in, and logged-in access,
+is going beyond the short-term call of duty.</p>
+
+<ul>
+<li><a href="https://www.house.gov/">house.gov</a>
+(for making pages visible and enabling sending mail to representatives)</li>
+
+<li><a href="https://www.accuweather.com">accuweather.com</a>
+(for looking at its weather info)</li>
+
+<li><a href="https://pubmed.ncbi.nlm.nih.gov/">pubmed.ncbi.nlm.nih.gov</a>
+(for downloading papers)</li>
+
+<li><a href="https://tripadvisor.com">tripadvisor.com</a>
+(at least to show a restaurant's full menu)</li>
+
+<li><a href="https://www.blogger.com/about/?bpli=1">blogger.com</a>
+(to view the blogs)</li>
+
+<li><a href="https://www.britishmuseum.org/collection">
+britishmuseum.org/collection</a> (to view the collection)</li>
+
+<li><a href="https://www.rgs.org/about/our-collections/online-exhibitions/">
+rgs.org/about/our-collections/online-exhibitions/</a>
+(to view the exhibitions)</li>
+
+<li><a href="https://scribd.com">scribd.com</a>
+(to read texts)</li>
+
+<li><a href="https://soundcloud.com">soundcloud.com</a>
+(to listen to audios)</li>
+
+<li><a href="https://bandcamp.com">bandcamp.com</a>
+(to listen to or download music)</li>
+
+<li><a href="https://www.manualslib.com">manualslib.com</a>
+(to download manuals)</li>
+
+<li><a href="http://npr.com">npr.com</a>
+(to listen—try using its API)</li>
+
+<li><a href="https://www.nasa.gov/">nasa.gov</a>
+(to look at the publications, including photos and videos)</li>
+
+<li><a href="https://www.reddit.com/">reddit.com</a>
+(for reading, at least)</li>
+</ul>
+
+<h3>Petition-signing sites (to let the user sign)</h3>
+
+<ul>
+<li><a href="https://www.freedomunited.org/">freedomunited.org</a>
+(appears to “succeed” but no confirmation comes back)</li>
+
+<li><a href="https://www.sumofus.org/">sumofus.org</a>
+(the old extension from years ago no longer works)</li>
+
+<li><a href="https://www.change.org/">change.org</a>
+(warning, this site's JS is very complex)</li>
+
+<li><a href="https://www.afsc.org/">afsc.org</a></li>
+
+<li><a href="https://act.ran.org/">act.ran.org</a></li>
+
+<li><a href="https://home.coworker.org/">coworker.org</a></li>
+
+<li><a href="https://earthjustice.org/">earthjustice.org</a></li>
+
+<li><a href="https://amazonwatch.org/">amazonwatch.org</a></li>
+
+<li><a href="https://front.moveon.org/">moveon.org</a></li>
+
+<li><a href="https://publiccitizen.salsalabs.org/foundation/index.html">
+publiccitizen.salsalabs.org</a></li>
+
+<li><a href="https://action.splcenter.org">action.splcenter.org</a></li>
+
+<li><a href="https://secure.everyaction.com">secure.everyaction.com</a></li>
+
+<li><a href="https://www.amnesty.org">amnesty.org</a></li>
+
+<li><a href="https://addup.sierraclub.org/">addup.sierraclub.org</a></li>
+
+<li><a href="https://www.ucsusa.org/">ucsusa.org</a></li>
+
+<li><a href="https://engage.drugpolicy.org">engage.drugpolicy.org</a></li>
+
+<li><a
href="https://engage.us.greenpeace.org">engage.us.greenpeace.org</a></li>
+<!-- Redirects to https://www.greenpeace.org/usa/ -->
+</ul>
+
+<h3>Other kinds of sites</h3>
+
+<ul>
+<li><a href="https://disqus.com/">Disqus</a> comments,
+found in various websites (for posting a comment)</li>
+
+<li><a href="https://www.regulations.gov/">regulations.gov</a>
+(for commenting on proposed US regulations)</li>
+
+<li><a href="https://www.surveymonkey.com/">surveymonkey.com</a>
+(for answering surveys)</li>
+
+<li><a href="https://www.coworker.org/start-a-petition">
+coworker.org/start-a-petition</a> (for starting a petition)</li>
+
+<li><a href="https://wetransfer.com">wetransfer</a>
+(ideally for upload and download, but just downloading would be a good
+first step)</li>
+
+<li><a href="https://stripe.com">stripe.com</a>
+(for entering payments for other sites)</li>
+</ul>
+
+<h3>Sites that people have handled in this way</h3>
+
+<ul>
+<li><a href="https://accounts.google.com">docs.google.com</a>
+(for downloading documents)</li>
+
+<li><a href="https://pay.gov">pay.gov</a>
+(for registering a DMCA contact)</li>
+
+<li><a href="https://rsf.org/">rsf.org</a> (for signing petitions)</li>
+
+<li><a href="https://www.theonion.com/">theonion.com</a>
+(for looking at images and audio)</li>
+
+<li><a href="https://goteo.org/">goteo.org</a> (for payments)</li>
+</ul>
+
+<div class="infobox">
+<hr />
+<h3>Footnote</h3>
+<ol>
+ <li id="ft1">The author uses the gender-neutral third person singular
+pronouns and possessive adjective “perse,” “per,”
+ “perself,” and “pers.”</li>
+</ol>
+</div>
+</div>
+
+</div><!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Please send general FSF & GNU inquiries to
+<a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>.
+There are also <a href="/contact/">other ways to contact</a>
+the FSF. Broken links and other corrections or suggestions can be sent
+to <a href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p>
+
+<p><!-- TRANSLATORS: Ignore the original text in this paragraph,
+ replace it with the translation of these two:
+
+ We work hard and do our best to provide accurate, good quality
+ translations. However, we are not exempt from imperfection.
+ Please send your comments and general suggestions in this regard
+ to <a href="mailto:web-translators@gnu.org">
+ <web-translators@gnu.org></a>.</p>
+
+ <p>For information on coordinating and contributing translations of
+ our web pages, see <a
+ href="/server/standards/README.translations.html">Translations
+ README</a>. -->
+Please see the <a
+href="/server/standards/README.translations.html">Translations
+README</a> for information on coordinating and contributing translations
+of this article.</p>
+</div>
+
+<!-- Regarding copyright, in general, standalone pages (as opposed to
+ files generated as part of manuals) on the GNU web server should
+ be under CC BY-ND 4.0. Please do NOT change or remove this
+ without talking with the webmasters or licensing team first.
+ Please make sure the copyright date is consistent with the
+ document. For web pages, it is ok to list just the latest year the
+ document was modified, or published.
+
+ If you wish to list earlier years, that is ok too.
+ Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
+ years, as long as each year in the range is in fact a copyrightable
+ year, i.e., a year in which the document was published (including
+ being publicly visible on the web or in a revision control system).
+
+ There is more detail about copyright years in the GNU Maintainers
+ Information document, www.gnu.org/prep/maintain. -->
+
+<p>Copyright © 2021 Free Software Foundation, Inc.</p>
+
+<p>This page is licensed under a <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/4.0/">Creative
+Commons Attribution-NoDerivatives 4.0 International License</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.html" -->
+
+<p class="unprintable">Updated:
+<!-- timestamp start -->
+$Date: 2021/02/28 10:54:14 $
+<!-- timestamp end -->
+</p>
+</div>
+</div><!-- for class="inner", starts in the banner include -->
+</body>
+</html>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- www server/gnun/gnun.mk help/help-javascript.html,
Therese Godefroy <=