From 62f96f35d471f7d0321636e78d5ae194eea6aae7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs?= Date: Sat, 9 Jan 2021 22:58:04 -0500 Subject: version 6.0.14 Rebrand of LibreJS under Unified XUL Platform --- doc/librejs.info | 1293 ------------------------------------------------------ 1 file changed, 1293 deletions(-) delete mode 100644 doc/librejs.info (limited to 'doc/librejs.info') diff --git a/doc/librejs.info b/doc/librejs.info deleted file mode 100644 index 411a3aa..0000000 --- a/doc/librejs.info +++ /dev/null @@ -1,1293 +0,0 @@ -This is librejs.info, produced by makeinfo version 5.2 from -librejs.texi. - -This manual is for GNU LibreJS (version 6.0.13, 04 May 2016), a GNU -IceCat extension to detect and block nonfree nontrivial JavaScript on -webpages. - - Copyright (C) 2011 2012 2014 2015 Loic J. Duros - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.3 or any later version published by the Free Software - Foundation; with no Invariant Sections, with no Front-Cover Texts, - and with no Back-Cover Texts. A copy of the license is included in - the section entitled "GNU Free Documentation License". -INFO-DIR-SECTION GNUzilla -START-INFO-DIR-ENTRY -* LibreJS: (librejs). Detect nonfree nontrivial in GNU Icecat -END-INFO-DIR-ENTRY - - -File: librejs.info, Node: Top, Next: Overview, Up: (dir) - -LibreJS -******* - -This manual is for GNU LibreJS (version 6.0.13, 04 May 2016). - -* Menu: - -* Overview:: General purpose and information. -* Disclaimer:: Emphasize what LibreJS does and does not. -* Installation:: Installing LibreJS from source. -* How to Use:: How to use LibreJS in IceCat. -* JavaScript Detection:: How LibreJS detects nontrivial Javascript. -* Free Licenses Detection:: List of licenses detected by LibreJS. -* Setting Your JavaScript Free:: Information for website owners/maintainers. -* LibreJS Development Notes:: Documentation about the development of - LibreJS itself. -* Installation Requirements:: Requirements to build and install LibreJS. -* LibreJS Internals:: How LibreJS works under the hood. -* Tests:: Test LibreJS and better understand it. -* GNU Free Documentation License:: Copying and sharing this documentation. - - -File: librejs.info, Node: Overview, Next: Disclaimer, Prev: Top, Up: Top - -1 Overview -********** - -GNU LibreJS --an add-on for GNU IceCat and Mozilla Firefox-- detects and -blocks nonfree nontrivial JavaScript while allowing its execution on -pages containing code that is either trivial and/or free. - - Many websites run nontrivial JavaScript on your computer. Some use -it for complex tasks; many use it gratuitously for minor jobs that could -be done easily with plain HTML. Sometimes this JavaScript code is -malicious. Either way, the JavaScript code is often nonfree. For -explanation of the issue, see "The JavaScript -Trap"(). - - If you care about freedom in your computing, and don't wish to let -all and sundry make you run nonfree programs, now you can prevent it by -using LibreJS. - - -File: librejs.info, Node: Disclaimer, Next: Installation, Prev: Overview, Up: Top - -2 Disclaimer -************ - - * LibreJS is not a security tool. Its goal is to detect nonfree - nontrivial JavaScript, and it currently does not detect whether - free or trivial code is malicious or not. Other free Mozilla - extensions and add-ons may be available for this purpose. - - * LibreJS is always a work in progress. If you find a bug, please - report it to . - - -File: librejs.info, Node: Installation, Next: How to Use, Prev: Disclaimer, Up: Top - -3 Installation -************** - -You can install LibreJS directly using a generated 'librejs.xpi' file, -or by building it from source. - -3.1 Building the Package -======================== - -After installing 'jpm', you should be able to use the 'make' command to -build LibreJS from source. - - After running 'make', a new file, 'librejs.xpi' should be generated. -This is the file that can be installed in a Mozilla browser. - -3.2 Installing LibreJS -====================== - -To install the add-on for all users, run: - sudo make install - - or as root: - make install - - Next time you open a Mozilla-browser as a user of your system, you -should be notified that a new add-on (in this case, LibreJS) as been -installed and whether to allow it to run or not. - - -File: librejs.info, Node: How to Use, Next: JavaScript Detection, Prev: Installation, Up: Top - -4 How to Use -************ - -4.1 LibreJS in action -===================== - -After installing the add-on, you will see the LibreJS widget in the -add-on bar at the top right of the browser window. After loading a -page, left-click on the widget to view the deactivated JavaScript code -from the page (both on page and external) and, if applicable, the -scripts that were accepted. - -4.2 Complaint Feature -===================== - -It is very important to complain when a site has nonfree JavaScript -code, especially if it won't work without that code. LibreJS makes it -easy to complain by heuristically finding where to send the complaint. - - When nonfree/nontrivial code is detected in a page, LibreJS attempts -to find a relevant contact link or email for the website you are -visiting. In order to do so, it will attempt to visit a few links from -the current page (for instance, a link labeled "contact" on the same -domain as the current page, ...) - - LibreJS detects contact pages, email addresses that are likely to be -owned by the maintainer of the site, Twitter and identi.ca links, and -phone numbers. - - After LibreJS detects any of the above, a "Complain" tab will appear -on the right of your web browser. When you click on this tab, a large -panel will appear with contact information. Ideally, at the top you -will find the email address of the maintainer, labeled as the "Email you -should use". - - When you complain to the website for their nonfree nontrivial -JavaScript, provide them with the link to the JavaScript Trap essay so -that they can get more information on what the issue is and how they can -solve it on their own site. - - LibreJS includes a default subject line and body for the complaint -email, with a link to the JavaScript Trap essay. This can be configured -in the LibreJS add-on preferences in your web browser. - -4.3 Options -=========== - -"Whitelist" - LibreJS lets you whitelist domain names and subdomains to bypass - the regular JavaScript check. This might be useful, for example, - if you are running your own code in a local web server. In order - to add a whitelisted domain or url, go to Tools >> Add-ons, or - press 'Control + Shift + A'. Inside the add-on window, click on - "Extensions", and in the list, where you see LibreJS, click on the - "Preferences" button. You will see an input field labeled - "Whitelist". In the field, enter comma-separated domain names. Do - not enter the protocol. For instance to whitelist all the pages of - and , enter 'gnu.org'. To - allow all subdomains from gnu.org, enter: '*.gnu.org'. This will - match such sites as and - . - -"Complaint tab" - This specifies whether the complaint tab appears when a site is - running nonfree JavaScript. - -"Display notifications of JavaScript analysis" - This option enables an info bar of realtime JavaScript analysis. - -"Complaint email subject" - Configure the default subject used in complaint emails. - -"Complaint email body" - Configure the default body used in complaint emails. - - -File: librejs.info, Node: JavaScript Detection, Next: Free Licenses Detection, Prev: How to Use, Up: Top - -5 JavaScript Detection -********************** - - LibreJS considers JavaScript on a page nontrivial if any of the - following are true: - - * It makes an AJAX request or is loaded along with scripts that make - an AJAX request, - - * It loads external scripts dynamically or is loaded along with - scripts that do, - - * It defines functions or methods and either loads an external script - (from HTML) or is loaded as one, - - * It uses dynamic JavaScript constructs that are difficult to analyze - without interpreting the program or is loaded along with scripts - that use such constructs. These constructs are: - * Using the eval function - * Calling methods with the square bracket notation - * Using any other construct than a string literal with certain - methods ('Obj.write', 'Obj.createElement', ...). - - In practice, the JavaScript code in your page may be found trivial by -LibreJS if, as a whole: - - * It does not define functions and it does not load external scripts - (with the HTML src attribute in a ' - - - While '$.doSomething();' may seem trivial, you will nevertheless have -to add a stylized license comment on your main HTML page because the -external script (in this case jQuery) has been found to define methods -that make AJAX calls. '$.doSomething()' might make an AJAX call, and -LibreJS does not check for that. The rule of thumb is that when you use -a library or code that handles AJAX, JSON, JSONP, the loading of scripts -dynamically, you should have license mentions for all your JavaScript -files and for your main page regardless. In practice this is a case -that happens very often with code that uses libraries. - - In practice also, the JavaScript code in an external file (an -external '.js' file loaded on your page) may be found trivial if it does -not define functions/methods. - - And in the same manner it will be considered nontrivial if AJAX -calls, dynamic script loading, or non-obvious dynamic JavaScript -constructs are used in another script. - - If your JavaScript code makes AJAX requests, it's important to get an -accurate "Content-Type" in the response from the server. For example, -if you're using JSON, set it to 'application/json'. This is because -LibreJS alters the content of 'text/html' responses. - - -File: librejs.info, Node: Free Licenses Detection, Next: Setting Your JavaScript Free, Prev: JavaScript Detection, Up: Top - -6 Free Licenses Detection -************************* - -6.1 Detected Free Licenses -========================== - -In order for a file to be detected as free, the license notice should -appear in a JavaScript file above all code, at the very top of the file. - - For inline JavaScript code inside '