# Greasemonkey

Greasemonkey és un gestor d’escriptura d’usuari disponible com a extensió de Mozilla Firefox. Permet als usuaris instal·lar scripts que facin canvis sobre la marxa al contingut de la pàgina web després o abans de carregar la pàgina al navegador (també coneguda com a navegació augmentada). Els canvis realitzats a les pàgines web s'executen cada vegada que es visualitza la pàgina, de manera que són efectivament permanents per a l’usuari que executa el script. Greasemonkey es pot utilitzar per personalitzar l'aparença de la pàgina, afegir noves funcions a les pàgines web (per exemple, incrustar comparacions de preus als llocs de compres), corregir errors de representació, combinar dades de diverses pàgines web i molts altres propòsits.

## Història

El projecte Greasemonkey va començar el 28 de novembre de 2004, escrit per Aaron Boodman. Boodman es va inspirar a escriure Greasemonkey després de mirar una extensió de Firefox dissenyada per netejar la interfície d'AllMusic, escrita per Adrian Holovaty, que més tard es va convertir en desenvolupador de scripts d'usuari. Al maig de 2005, hi havia aproximadament 60 scripts d'usuari generals i 115 específics del lloc distribuïts per Greasemonkey. Al juliol de 2005, Mark Pilgrim, va trobar greus vulnerabilitats a Greasemonkey i es va corregir a la versió 3.5 de Greasemonkey. Durant aquest temps, també es va desenvolupar un compilador Greasemonkey per convertir un script d’usuari en una extensió autònoma de Firefox. Greasemonkey va rebre inicialment queixes dels editors per la seva capacitat de bloquejar anuncis. No obstant això, aquesta crítica va canviar el seu enfocament cap a altres complements a partir del llançament del 2006 d'Adblock Plus.

### Userscripts.org

Per acomodar el nombre creixent de scripts, Brittc Selvitelle i altres membres de la comunitat Greasemonkey van fundar userscripts.org a finals del 2005. Userscripts.org es va obrir el 2007, però el lloc es va allunyar posteriorment d'aquesta base de codis. Com a repositori principal de seqüències d’ordres que apareix al lloc oficial de Greasemonkey, userscripts.org acumulava milers de seqüències de comandaments a l’any.
El 2010, l'últim administrador conegut, Jesse Andrews, va publicar que el lloc estava en mode de manteniment a causa de la falta de temps i va demanar un nou manteniment per oferir-se com a voluntari. Tot i això, va continuar sent l'únic administrador del lloc fins que es va iniciar un debat sobre el recompte d'instal·lacions l'1 d'abril de 2013. Abans d'això, molts dels "scripts més populars" que s'enumeren al lloc tenien un nombre d'instal·lacions nominal de zero. Durant l'any següent, els scripts de correu brossa es van fer més habituals, van augmentar els temps d'inactivitat del servidor i es va mantenir l'error de recompte d'instal·lacions. Sense cap altra comunicació per part d'Andrews, els redactors d'usuaris van descriure el lloc com a descuidat i el lloc oficial de Greasemonkey va eliminar el seu enllaç a la pàgina principal. Com a resposta, els guionistes i altres desenvolupadors van començar a treballar a la forquilla "openuserjs.org", i posteriorment a greasyfork.org, com a substitut immediat.
El maig del 2014, userscripts.org va ser inaccessible al port 80, cosa que va provocar que els usuaris hi haguessin d'accedir pel port 8080. L'agost de 2014, el lloc es va tancar completament. La majoria dels seus scripts es van fer una còpia de seguretat al mirall estàtic userscripts-mirror.org on ara es poden trobar.

## Detalls tècnics

Els scripts d'usuari de Greasemonkey s'escriuen en JavaScript i manipulen el contingut d'una pàgina web mitjançant la interfície Model d'objectes de document. Els scripts generalment s'escriuen per ser específics de la pàgina o de domini (s'apliquen a totes les pàgines d’un domini), però també es poden etiquetar per aplicar-los a tots els dominis per a millores globals del navegador. Els usuaris de Greasemonkey poden escriure o descarregar scripts i desar-los a la seva pròpia biblioteca personal. Quan els usuaris visiten un lloc web que coincideix amb un script a la seva biblioteca personal, Greasemonkey invoca els scripts rellevants.
Els scripts de Greasemonkey poden modificar una pàgina web de qualsevol manera que JavaScript ho permeti, amb certes restriccions de seguretat de Greasemonkey. Els scripts també poden accedir a altres pàgines web i serveis web mitjançant una sol·licitud XMLHTTP no restringida pel domini, cosa que permet combinar contingut extern amb el contingut de la pàgina original.
Els scripts s'anomenen somename .user.js i Greasemonkey ofereix instal·lar qualsevol script d’aquest tipus quan es sol·liciti una URL que finalitzi amb aquest sufix. Els scripts Greasemonkey contenen metadades que especifiquen el nom de l'escriptura, una descripció, els recursos necessaris per l'escriptura, un URL de l'espai de noms que s'utilitza per diferenciar els scripts amb un nom idèntic i els patrons d’URL per als quals es pretén invocar o no l'escriptura.
Escriure un script Greasemonkey és similar a l'escriptura de JavaScript per a una pàgina web, amb alguns drets addicionals com XMLHttpRequests entre llocs. En comparació amb l'escriptura d’una extensió de Firefox completa, la creació de scripts d’usuari és un pas molt modest en la complexitat de la programació web bàsica. Tanmateix, els scripts Greasemonkey són limitats a causa de les restriccions de seguretat imposades per XPCNativeWrappers de Mozilla Per exemple, els scripts Greasemonkey no tenen accés a molts components de Firefox, com ara el gestor de descàrregues, els processos d'E / S o les seves principals barres d'eines. A més, els scripts Greasemonkey s'executen per instància d’una pàgina web coincident. Per això, és difícil gestionar llistes d'elements a nivell mundial. Tot i això, els guionistes han utilitzat cookies i Greasemonkey fins i tot ofereix API com GM_getValue i GM_setValue per superar-ho.

### Scripts d'usuari

Els servidors d'allotjament de fitxers de Greasemonkey requereixen que els URL dels scripts acabin amb .user.js i no amb un tipus MIME com text/html. Es donarà suport a HTTPS El corrector d'actualitzacions integrat per Greasemonkey. A partir de juliol de 2019, el projecte Greasemonkey llista tres allotjaments de scripts d'usuari recomanats:
* Gist, un servei de pasta combinat operat per GitHub on s'allotgen fitxers simples. Els fitxers es poden enganxar en un formulari web i desar-los. Per defecte s'utilitza HTTPS. Els fitxers poden seguir l'esquema de noms amb el sufix ".user.js" per a l'URL que serveix com a enllaç d'instal·lació.
* Greasy Fork, un lloc creat pel mantenidor de userstyles.org.
* OpenUserJS.org, un lloc que va començar com una bifurcació per al dipòsit de scripts obsolet userscripts.org.

## Compatibilitat

Greasemonkey està disponible per a Firefox, Flock i GNOME Web (abans anomenat Epiphany). L'extensió Greasemonkey per al web forma part del paquet d'extensions web. Tanmateix, aquesta extensió no és totalment compatible a partir de la versió 2.15.1, ja que algunes funcions de l'API Greasemonkey (per exemple, GM_getValue) no són compatibles. També hi ha versions personalitzades per al SeaMonkey, Songbird, Pale Moon, qutebrowser i el navegador Falkon.

## Referències

* ↑ «Greasemonkey Project Info». Arxivat de l'original el 25 març 2012. [Consulta: 31 agost 2011].
* ↑ Pilgrim, Mark. Greasemonkey Hacks. O'Reilly, 2005. ISBN 978-0-596-55357-9.
* ↑ «Aaron Boodman wrote Greasemonkey in 2004».
* 1 2 , 17-05-2005.
* ↑ «Còpia arxivada». Arxivat de l'original el 2020-03-03. [Consulta: 15 agost 2021].
* ↑ https://lwn.net/Articles/144452/
* ↑ «Còpia arxivada». Arxivat de l'original el 2005-07-29. [Consulta: 15 agost 2021].
* ↑ Nivi. «Greasemonkey will blow up business models (as well as your mind)», 08-05-2005. Arxivat de l'original el 3 juny 2006. [Consulta: 22 juliol 2010].
* ↑ , 24-03-2005.
* ↑ Selvitelle, Britt. «Userscripts.org... Opensource!», 03-01-2007. Arxivat de l'original el 17 gener 2007. [Consulta: 21 maig 2014].
* ↑ «Passing the torch on userscripts.org». Hacker News. [Consulta: 24 octubre 2014].
* ↑ «Fixing Install Counts», 01-04-2013. Arxivat de l'original el 3 novembre 2013. [Consulta: 21 maig 2014].
* 1 2 3 Brinkmann, Martin. «Userscripts.org down for good? Here are alternatives», 09-05-2014. [Consulta: 21 maig 2014].
* ↑ «User Script Hosting», 16-05-2014. [Consulta: 21 maig 2014].
* 1 2 «OpenUserJS». openuserjs.org.
* 1 2 «Fixing Install Counts – Page 6», 01-04-2013. Arxivat de l'original el 3 novembre 2013. [Consulta: 5 novembre 2015].
* 1 2 «Greasy Fork». greasyfork.org.
* ↑ Barnabe, Jason. «Introducing Greasy Fork – a user scripts site», 19-02-2014. [Consulta: 5 novembre 2015].
* ↑ .https://developer.mozilla.org/en/XPCNativeWrapper
* ↑ «User Script Hosting - GreaseSpot Wiki». wiki.greasespot.net. [Consulta: 22 juliol 2019].
* ↑ «Greasemonkey». mozdev.org. mozdev. Arxivat de l'original el 2015-04-23. [Consulta: 5 maig 2009].
* ↑ «Greasemonkey Port for SeaMonkey - About - OpenUserJS». openuserjs.org.
* ↑ ianloic. «Greasemonkey». Songbird. Arxivat de l'original el 2 juny 2008. [Consulta: 5 maig 2009].
* ↑ «janekptacijarabaci/greasemonkey» (en anglès). GitHub. [Consulta: 23 març 2020].
* ↑ «Improvements for GreaseMonkey support · Issue #3238 · qutebrowser/qutebrowser» (en anglès). GitHub. [Consulta: 19 maig 2020].

## Vegeu també

* Chrome
* Firefox