www-commits
[Top][All Lists]
Advanced

[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&mdash;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&mdash;they should not
+&ldquo;cheat.&rdquo; 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&nbsp;(<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&mdash;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&mdash;for example, &ldquo;The site is trying to find
+out your location. What do you want to tell it?&rdquo; 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";>&lt;js-extensions@gnu.org&gt;</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&mdash;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 &ldquo;succeed&rdquo; 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 &ldquo;perse,&rdquo; &ldquo;per,&rdquo;
+ &ldquo;perself,&rdquo; and &ldquo;pers.&rdquo;</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 &amp; GNU inquiries to
+<a href="mailto:gnu@gnu.org";>&lt;gnu@gnu.org&gt;</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";>&lt;webmasters@gnu.org&gt;</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";>
+        &lt;web-translators@gnu.org&gt;</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 &copy; 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>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]