URL: https://linuxfr.org/news/sortie-de-gnu-librejs-4-7 Title: Sortie de GNU LibreJS 4.7 Authors: Denis Dordoigne Florent Zara Date: 2012年06月05日T14:36:34+02:00 License: CC By-SA Tags: richard_stallman, firefox, javascript et gnu Score: 23 GNU LibreJS est une extension des navigateurs [Firefox](http://linuxfr.org/news/firefox-12-et-thunderbird-12-sont-sortis-mobile-est-mis-a-jour) et dérivés qui permet de n'exécuter que le code javascript libre intégré aux pages web que l'on visite. Une fois cette extension installée, seuls les javascripts explicitement marqués comme libres dans le code source des pages web sont chargés par le navigateur. LibreJS apporte un minimum d'intelligence dans le blocage, il ne bloque pas notamment les scripts considérés comme triviaux, c'est-à-dire qui ne contiennent ni requêtes Ajax, ni appels dynamiques à scripts externes, ni constructions difficiles à analyser sans interpréter le programme (par exemple : utilisation de la fonction eval, appel à des méthodes via la notation crochets, etc.). La version 4.7 apporte une évolution majeure : LibreJS detecte maintenat 256 différentes versions de bibliothèques libres populaires comme jQuery, MooTools et Prototype : il compare les hash SHA1 des fichiers upstream avec ceux proposés par le site web, et ne bloque pas les copies verbatim de ceux-ci. ---- [GNU LibreJS](http://www.gnu.org/software/librejs/) [Le piège javascript](http://www.gnu.org/philosophy/javascript-trap.fr.html) [Setting Your JavaScript Free](http://www.gnu.org/software/librejs/free-your-javascript.html) [GNU LibreJS Manual](http://www.gnu.org/software/librejs/manual/librejs.html) ---- L'objectif de cette extension est de répondre au « piège javascript » dénoncé par [Richard Stallman](http://fr.wikipedia.org/wiki/Richard Stallman "Définition Wikipédia") :> JavaScript (dont le nom officiel est ECMAscript, mais peu de gens utilisent ce nom) était autrefois utilisé pour faire des effets frivoles, certes jolis mais non essentiels à la navigation et aux fonctionnalités d'affichage. Il était acceptable de les considérer comme de pures extensions du langage de balises HTML, plutôt que comme de vrais logiciels ; ils ne représentaient pas un problème significatif.>>Beaucoup de sites utilisent encore JavaScript de cette façon, mais certains l'utilisent pour des programmes conséquents réalisant des travaux importants. Par exemple, Google Docs télécharge sur votre machine un programme JavaScript qui pèse un demi megaoctet, dans une forme compactée que nous pourrions appeler Obscurscript car il n'y a aucun commentaire et très peu d'espaces, et les noms de méthodes ne font qu'une lettre. Le code source d'un programme est la forme préférée pour le modifier ; le code compacté n'est pas du code source, et le vrai code source n'est pas disponible pour l'utilisateur.>>[...]>>Un fort mouvement s'est développé qui appelle les sites web à ne communiquer qu'avec des formats et des protocoles libres (certains disent « ouverts ») ; c'est-à-dire, dont la documentation est publiée et que chacun est libre de mettre en œuvre. Avec la présence de programmes dans les pages web, ce critère est nécessaire mais pas suffisant. JavaScript lui-même, en tant que format, est libre : utiliser JavaScript dans un site web n'est pas nécessairement mauvais. Cependant, comme nous l'avons vu plus haut, ce n'est pas nécessairement bon. Quand le site transmet un programme à l'utilisateur, il n'est pas suffisant que le programme soit écrit dans un langage documenté et libre d'entraves ; ce programme doit être également libre. « Ne transmettre que des programmes libres aux utilisateurs », cette règle doit faire partie des critères définissant un comportement correct des sites web. La convention proposée par le projet GNU pour identifier les javascripts libres est simple. La licence libre doit être déclarée en commentaire entre des lignes commençant par "@licstart" et "@licend", et les éventuelles références au code source doivent être précédées par un commentaire commençant par "@source". Des détails et exemples sont donnés dans le guide **Setting Your JavaScript Free**.