GNU LibreJS aims to address the JavaScript problem described in Richard
Stallman's article The JavaScript Trap. LibreJS is a free add-on for GNU IceCat and other Mozilla-based browsers. It blocks nonfree nontrivial JavaScript while allowing JavaScript that is free and/or trivial.
The user manual pages are at
<https://www.gnu.org/software/librejs/manual/>.
Source tarballs and signed xpis are available at
<https://ftp.gnu.org/gnu/librejs/>.
The binary can also be found at the Firefox Browser Addon website:
<https://addons.mozilla.org/en-US/firefox/addon/librejs/>.
GPG key ID: EF86DFD0
Fingerprint: 47F9 D050 1E11 8879 9040 4941 2126 7E93 EF86 DFD0
See also
<https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=librejs>.
New in 7.21.0
GNU LibreJS aims to address the JavaScript problem described in Richard Stallman's article The JavaScript Trap*. LibreJS is a free add-on for GNU IceCat and other Mozilla-based browsers. It blocks nonfree nontrivial JavaScript while allowing JavaScript that is free and/or trivial. * https://www.gnu.org/philosophy/javascript-trap.en.html
The source tarball for this release can be found at:
http://ftp.gnu.org/gnu/librejs/librejs-7.17.0.tar.gz
http://ftp.gnu.org/gnu/librejs/librejs-7.17.0.tar.gz.sig
The installable extension file (compatible with Mozilla-based browsers version >= v60) is available here:
http://ftp.gnu.org/gnu/librejs/librejs-7.17.0.xpi
http://ftp.gnu.org/gnu/librejs/librejs-7.17.0.xpi.sig
GPG key:05EF 1D2F FE61 747D 1FC8 27C3 7FAC 7D26 472F 4409
https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=librejs
This release introduces a new interface for management of the whitelist/blacklist, along with several bug fixes:
All contributions thanks to Giorgio Maone.
GNU LibreJS aims to address the JavaScript problem described in Richard Stallman's article The JavaScript Trap*. LibreJS is a free add-on for GNU IceCat and other Mozilla-based browsers. It blocks nonfree nontrivial JavaScript while allowing JavaScript that is free and/or trivial. * https://www.gnu.org/philosophy/javascript-trap.en.html
The source tarball for this release can be found at:
http://ftp.gnu.org/gnu/librejs/librejs-7.16.0.tar.gz
http://ftp.gnu.org/gnu/librejs/librejs-7.16.0.tar.gz.sig
The installable extension file (compatible with Mozilla-based browsers version >= v60) is available here:
http://ftp.gnu.org/gnu/librejs/librejs-7.16.0.xpi
http://ftp.gnu.org/gnu/librejs/librejs-7.16.0.xpi.sig
GPG key:05EF 1D2F FE61 747D 1FC8 27C3 7FAC 7D26 472F 4409
https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=librejs
The main improvement in version 7.16.0 is the implementation of WebLabels (https://www.fsf.org/blogs/licensing/rel-jslicense), which was the remaining missing feature since LibreJS got reimplemented using the WebExtensions format. On top of that, multiple bugfixes and performance improvements were added. All contributions thanks to Giorgio Maone.
Changes since version 7.15 (excerpt from the git changelog):
Fixes missing feedback for actions on the report UI when in a tab.
Fixes missing feedback on tab reload from UI panel.
Refactored HTML loading, parsing and serialization mechanisms.
Moved external licenses check into response pre-processing
WebLabels-based license checking implementation.
Fix Back/forth navigation not changing tab status information
GNU LibreJS aims to address the JavaScript problem described in Richard Stallman's article The JavaScript Trap*. LibreJS is a free add-on for GNU IceCat and other Mozilla-based browsers. It blocks nonfree nontrivial JavaScript while allowing JavaScript that is free and/or trivial. * https://www.gnu.org/philosophy/javascript-trap.en.html
The source tarball for this release can be found at:
http://ftp.gnu.org/gnu/librejs/librejs-7.15.0.tar.gz
http://ftp.gnu.org/gnu/librejs/librejs-7.15.0.tar.gz.sig
The installable extension file (compatible with Mozilla-based browsers version >= v60) is available here:
http://ftp.gnu.org/gnu/librejs/librejs-7.15.0.xpi
http://ftp.gnu.org/gnu/librejs/librejs-7.15.0.xpi.sig
GPG key:05EF 1D2F FE61 747D 1FC8 27C3 7FAC 7D26 472F 4409
https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=librejs
Version 7.15 includes a partial rework of the mechanism for script loading and parsing, improving performance, reliability and code maintainability. The release also adds the implementation of per-script white/blacklisting, and many smaller bugfixes. All contributions thanks to the work of Giorgio Maone.
Changes since version 7.14 (excerpt from the git changelog):
Fixed whitelisting of scripts with query strings in URL.
Fixed report attempts when no tabId is available.
UI rewrite for better responsiveness and simplicity.
Broader detection of UTF-8 encoding in responses.
Fixed badge shouldn't be shown on privileged pages.
Fixed sub-frames resetting badge to green.
Uniform conventions for module importing paths.
Temporarily display back hidden old UI elements.
Refactoring list management in its own class.
Bug fixing and simplifying UI synchronization.
Whitelisted/blackilisted reporting and modification support.
Stateful response processing support.
Implement early whitelisting / blacklisting logic.
Display actual extension version number in UI.
White/Black lists back-end refactoring.
Refactor and fix HTTP response filtering.
GNU LibreJS aims to address the JavaScript problem described in Richard Stallman's article The JavaScript Trap*. LibreJS is a free add-on for GNU IceCat and other Mozilla-based browsers. It blocks nonfree nontrivial JavaScript while allowing JavaScript that is free and/or trivial. * https://www.gnu.org/philosophy/javascript-trap.en.html
The source tarball for this release can be found at:
http://ftp.gnu.org/gnu/librejs/librejs-7.14.tar.gz
http://ftp.gnu.org/gnu/librejs/librejs-7.14.tar.gz.sig
The installable extension file (compatible with Mozilla-based browsers version >= v57) is available here:
http://ftp.gnu.org/gnu/librejs/librejs-7.14.xpi
http://ftp.gnu.org/gnu/librejs/librejs-7.14.xpi.sig
GPG key:05EF 1D2F FE61 747D 1FC8 27C3 7FAC 7D26 472F 4409
https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=librejs
Version 7.14 is an extensive bugfix release that builds on the work done by Nathan Nichols, Nyk Nyby and Zach Wick to port LibreJS to the new WebExtensions format, and previously on the contributions by Loic Duros and myself among others.
Changes since version 7.13 (excerpt from the git changelog):
The GNU LibreJS team has undergone some recent changes; both
administrative and technical.
On the administrative side, zach wick (zwick) has taken over the role
of maintainer. We'd like to thank nikolas for all of his time and
effort that he has put into making LibreJS what it is.
On the technical side, nate_nichols has been hard at work fleshing out
what LibreJS will look like under the hood when built on top of the
WebExtension APIs. This change from the old extension APIs is needed
because while LibreJS primarily targets running in GNU Icecat, GNU
Icecat uses the Mozilla Firefox codebase as its upstream. Mozilla has
announced that they will be deprecating the XPCOM and XUL extension
APIs to be replaced by the WebExtension APIs. This means that once
this deprecation lands in a Mozilla Firefox ESR release, it will make
its way into GNU Icecat, and at that time, LibreJS will have to be
using the WebExtension APIs.
As a side effect, this is also an opportunity for LibreJS to be used
as an extension in other web browsers that support the WebExtension
APIs.
The next release of GNU LibreJS will be a major version (7.0) and we
will only be backporting substantial bugfix patches to the 6.x
versions of LibreJS while the legacy XUL APIs still are used by GNU
Icecat.
If you are interested in hacking with us, please join us in #librejs
on Freenode, by subscribing to our mailing list, or by checking out
the "webext" branch from the Git repository.
Happy Hacking!
-zach
There's a new version of LibreJS - version 6.0.13.
LibreJS is a Mozilla add-on that prevents nonfree JavaScript programs
from running in your web browser.
Originally this release was going to be 6.0.11, but I had some trouble
registering this add-on with Mozilla which required me to increment
the version to 6.0.13.
Here's the changes since 6.0.10:
* Added Unlicense to the list of recognized licenses. Thanks
to Adam Plaice for the patch.
* Added some library whitelist updates from James Kruth.
* William Cummings pointed out a piece of code that was using
non-standard syntax that might not be supported in the future.
I've re-written this to use more standard syntax.
* Fixed a problem where the LibreJS icon wasn't displaying in
the add-ons view.
This project's website is here:
https://www.gnu.org/software/librejs/
The source files are here:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.13.tar.gz (462K)
And here's the xpi package you can install in your browser:
https://ftp.gnu.org/gnu/librejs/gnu_librejs-6.0.13-fx.xpi (601K)
There's a new version of LibreJS - version 6.0.10.
LibreJS is a Mozilla add-on that prevents nonfree JavaScript programs from running in your web browser.
Here's the changes since 6.0.9:
* Fixed a bug where @license-end was getting ignored
in some cases. Thanks to Micah Cowan for debugging this.
* Added the Universal Permissive License to list of recognized
licenses. Thanks to Benjamin Przybocki for suggesting it.
* Converted LibreJS to use Mozilla's new jpm tool instead
of the old add-on system: cfx. Thanks to Adrian Aichner for
helping out with this.
* Added some notes on working with the LibreJS codebase
to the manual.
* Reverted some commits that were causing problems. Thanks
to Ruben for pointing these out.
This project's website is here:
https://www.gnu.org/software/librejs/
The source files are here:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.10.tar.gz (458k)
And here's the xpi package you can install in your browser:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.10.xpi (581k)
There's a new version of LibreJS - version 6.0.9.
LibreJS is a Mozilla add-on that prevents nonfree JavaScript programs from running in your web browser.
Here's the changes since 6.0.8:
* Add the WTFPL license to the list of accepted licenses.
Thanks to CY for pointing out that it was missing.
* The LibreJS version number is now displayed in the main
LibreJS panel.
* Fixed a mangled Unicode character problem in
process_response.js. Thanks to Jookia for the patch.
* onDetermineCharset now only checks for valid charsets.
Thanks to Ruben Rodriguez for the patch.
* Removed the draggable complain banner functionality. This
functionality prevented LibreJS from getting approved on
Mozilla's Add-on network, and it wasn't essential, so I've
removed it.
* Add JsChecker.isFreeLicensed method from Ruben Rodriguez. We're
hoping this will lead to improved speed and memory usage in
LibreJS.
This project's website is here:
https://www.gnu.org/software/librejs/
The source files are here:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.9.tar.gz (912k)
And here's the xpi package you can install in your browser:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.9.xpi (430k)
There's a new version of LibreJS - version 6.0.8.
LibreJS is a Mozilla add-on that prevents nonfree JavaScript programs
from running in your web browser.
First, there's an update on LibreJS development: I've moved the primary
development repository from Bazaar to Git. I've also removed all of the
large objects in the new repository's history, so it's much easier to
clone. Instead of 77MB, it now takes 4.4MB. The history for the old
repository is still available in Bazaar:
http://bzr.savannah.gnu.org/lh/librejs/
You can see the new repository's web interface here:
http://git.savannah.gnu.org/cgit/librejs.git/
My reasoning is that, although Bazaar was working fine, using git will
help with collaboration because most people are already familiar with it.
As noted in the changelog below, LibreJS has been getting a lot of
patches and suggestions -- I hope that continues.
Here's the changes since 6.0.7:
- LibreJS now accepts the Eclipse Public License. Thanks to
Daniel Ziltener for the patch.
- Fixed a bug that caused the main panel to disappear after
clicking the red "Whitelist" button on a script that wasn't
accepted by LibreJS.
- You can now specify multiple licenses for a JavaScript file
that's been compiled or concatenated from more than one source
file. Info on how to do this is in the manual - search for
"Specifying multiple licenses". Thanks to Arne Möhle for
starting a discussion that led to this change.
- You can now move the "Complain" button out of the way if it's
blocking something on the website you're looking at. Thanks to
Alexandre Garreau for pointing out this problem.
- Applied a patch from Lutz Horn: updating the whitelisted
scripts to include some more libraries, and improving the
gethash.sh script.
This project's website is here:
https://www.gnu.org/software/librejs/
The source files are here:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.8.tar.gz (929k)
And here's the executable you can install in your browser:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.8.xpi (446k)
There's a new version of LibreJS - version 6.0.7.
Here's the changes since 6.0.6:
* Added support for using the BSD 3-Clause license in a JavaScript
Web Labels table. Thanks to Enoch Root for pointing out that this
wasn't working.
* Added a "Web Labels pages being used for this session" list on
the main display panel.
* The JavaScript Web Labels section of the LibreJS manual now contains
a reminder to put a copying permission statement at the beginning of
each of your source files.
This project's website is here:
https://www.gnu.org/software/librejs/
The source files are here:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.7.tar.gz (915k)
And here's the executable you can install in your browser:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.7.xpi (441k)
There's a new version of LibreJS - version 6.0.6.
Here's the changes since 6.0.5:
* When there is a contact email found on a site that contains
nonfree JavaScript, the email link now includes a default subject
and body when you click on it. These defaults are configurable in
the LibreJS add-on preferences.
* LibreJS now works in private browsing mode, and with Tor. When
using LibreJS and Tor at the same time, it's possible for the
website you're visiting to see that you're not running any nonfree
JavaScript it may contain. That would enable it to distinguish
you from many other Tor users, but it still won't know who you are.
* JS Web Labels links are now recognized with data-jslicense="1"
as well as rel="jslicense", in case you want the page to be
HTML5-valid. Savannah ticket #13366. Thanks to Marco Bresciani
for bringing this up.
* Fixed a bug on the whitelist page (Tools -> LibreJS) where
the "Reset whitelist to default" button wasn't working.
This project's website is here:
http://www.gnu.org/software/librejs/
The source files are here:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.6.tar.gz
And here's the executable you can install in your browser:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.6.xpi
There's a new version of LibreJS.
Here's the changes since 6.0.4:
* Fixed a bug where the complain button on the main LibreJS panel
would never appear.
* The torch icon on the complain panel has been replaced with the
word "Complain" to make it more obvious.
* Fixed bug #43403 - LibreJS was marking all scripts as nonfree
if the page returned a 404 status code. Thanks to Rubén
Rodríguez for reporting this.
This project's website is here:
http://www.gnu.org/software/librejs/
The source files are here:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.5.tar.gz
And here's the executable you can install in your browser:
https://ftp.gnu.org/gnu/librejs/librejs-6.0.5.xpi
The main source repository for this project is in Bazaar:
http://bzr.savannah.gnu.org/lh/librejs/dev
Changes since the 6.0.3 release:
* Fixed a bug where some sites would hang until you reload them.
Savannah bug #43466
* Fixed a bug where the complaint box would sometimes get
mis-rendered.
* Updated some internal libraries, and removed a library
dependency. For details you can see the ChangeLog:
http://bzr.savannah.gnu.org/lh/librejs/dev/annotate/head:/ChangeLog
LibreJS 6.0.3 contains a few bugfixes. You can get it here: http://www.gnu.org/software/librejs/
Changes since the 6.0.1 release:
* Disable license analysis when JavaScript is turned off in the
browser. This fixes a bug reported by Rubén Rodríguez.
* Updated the Google Analytics regex to block recent versions of
Google Analytics.
* Reduced file size of the add-on executable.
LibreJS 5.2
has many improvements and new functionalities to make your life easier
while ensuring your freedom is respected.
Download and check out this new version at:
http://www.gnu.org/software/librejs/?v=5.2
If you own or maintain a website, please take the time to free your
JavaScript:
http://www.gnu.org/software/librejs/free-your-javascript.html
GNU LibreJS version 4.6 has been released!
Please find the latest version at:
http://www.gnu.org/software/librejs/?46
This update of LibreJS fixes a memory leak issue which could occur in rare circumstances. It also reduces CPU usage during the analysis stage by making the tree traversal function asynchronous and addresses a few more minor bugs, including one with the whitelist option which was introduced in the previous version.
This release of version 4.6 of GNU LibreJS will be part of the upcoming IceCat 12.
Please send your feedback and report issues to GNU LibreJS mailing list: https://lists.gnu.org/mailman/listinfo/bug-librejs
Thank you!
GNU LibreJS version 4.5 has been released!
Please find the latest version at:
http://www.gnu.org/software/librejs/?45
This update of LibreJS addresses performance issues that were reported by users (thanks go to them), as well as an improved complaint panel.
Please send your feedback and report issues to GNU LibreJS mailing list: https://lists.gnu.org/mailman/listinfo/bug-librejs
Thank you!