## LibreJS - WebExtensions Edition ## BUILD: First, you need to get some stuff with npm: $ npm install acorn@"<=8.7.1" jssha browserify $ export PATH=$PATH:./node_modules/.bin To build the extension run: $ browserify main_background.js -o bundle.js To build the extension plus create a .xpi package run: $ ./build.sh To build the extension including the automated test suite (see TEST below) run: $ ./build.sh -t or $ ./build.sh --test Note: this build.sh script relies on no new source files being created. DEBUG: To debug this add-on on IceCat and other Firefox derivatives, browse to the special URL "about:debugging", select "Enable add-on debugging", and load the manifest.json in this directory with the "Load Temporary Add-on" button. LibreJS should work with other WebExtensions-compliant browsers; but currently, none of them meet the freedom standards of GNU, so no help will be provided for their usage. TEST: An automated test suite runs automatically in its own tab whenever the extension is loaded as a "temporary add-on" from about:debugging. Otherwise (if included in the xpi, see BUILD above) it can be launched from the UI by clicking the [Automated self test...] button. HEADLESS TESTS: To launch the test suite from the command line, ensure the xpi package has been built with automated test suite. Then install selenium-webdriver and geckodriver, and ensure the latter is in $PATH: $ npm install selenium-webdriver geckodriver $ export PATH=$PATH:./node_modules/.bin Now you can invoke the test with $ node ./utilities/test.js which will print out a summary of test results. Optionally you can also test with a chosen seed $ node ./utilities/test.js 12345 HEADLESS COMPLIANCE CHECK: To check whether a webpage is LibreJS-compliant from the command line, ensure that the xpi package has been built WITHOUT the automated test suite. Then install selenium-webdriver and geckodriver, and ensure the latter is in $PATH: $ npm install selenium-webdriver $ npm install geckodriver $ export PATH=$PATH:./node_modules/.bin Now you can check a webpage for compliance with $ node ./utilities/compliance.js <url> It will open the url in a headless browser, save a screenshot, and output the compliance check result. For example, to check the compliance of the FSF homepage, do $ node ./utilities/compliance.js https://fsf.org CONTACT: Development mailing list: bug-librejs@gnu.org Users mailing list: help-librejs@gnu.org Subscribe URL: https://savannah.gnu.org/mail/?group=librejs Bug Reports: https://savannah.gnu.org/bugs/?group=librejs