𝒞ome creare un semplicissimo addon per Firefox usando una distribuzione
Linux come Mageia. Prima di tutto ho installato node.js dai repository
di Mageia, dentro node dovrebbe
esserci npm e quindi dentro npm dovrebbe esserci jpm. In pratica ho
installato solo node.js e poi ho dato da root il comando:
Quindi si parte con la costruzione dell'addon premettendo che io ho index.js come file per lo script, quindi usando nano come editor si da:
Il codice per il menù contestuale è stato copiato da qui, mentre il codice per l'apertura del nuovo tab da qui.
Ora si passa a provare l'addon con un:
# npm install jpm --globalsenza ottenere errori, ovviamente ci si può assicurare che npm sia installato con un $ which npm. Quindi ho dato il comando da utente:
$ jpmottenendo l'help del comando, in alternativa si può dare un $ which jpm. Quindi ho iniziato a costruire l'addon con:
$ cdjpm init è l'inizializzatore dell'addon che fa una serie di domande generiche per i dati generali dell'addon, premere return se si accetta l'impostazione di default. Questi dati sono messi in package.json dentro la nostra cartella addon.
$ mkdir addon
$ cd addon
$ jpm init
Quindi si parte con la costruzione dell'addon premettendo che io ho index.js come file per lo script, quindi usando nano come editor si da:
$ nano index.jse si inserisce il codice che nel mio caso è:
var contextMenu = require("sdk/context-menu");Questo addon nel caso di un testo selezionato e della pressione del tasto destro del mouse sopra il testo selezionato, visualizza nel menù contestuale una voce dal nome contenuto in "label" e cioè "Translation (en=>it)". Selezionando questa voce dal menù contestuale apre un tab nuovo con dentro il sito "http://it.dicios.com/enit/" + selectionText, dove selctionText è il testo selezionato. Tale sito visualizza la traduzione in italiano dell'eventuale parola in inglese selezionata.
var tabs = require("sdk/tabs");
var menuItem = contextMenu.Item({
label: "Translation (en=>it)",
context: contextMenu.SelectionContext(),
contentScript: 'self.on("click", function () {' +
' var text = window.getSelection().toString();' +
' self.postMessage(text);' +
'});',
onMessage: function (selectionText) {
tabs.open("http://it.dicios.com/enit/" + selectionText);
}
});
Kensan.it
Il codice per il menù contestuale è stato copiato da qui, mentre il codice per l'apertura del nuovo tab da qui.
Ora si passa a provare l'addon con un:
$ jpm run -b /usr/bin/firefoxdove occorre indicare il path di Firefox ($ which firefox). Viene usato un profilo nuovo ad ogni avvio di questo comando, non viene usato il profilo presente in ~/.mozilla. Se tutto va bene allora si può passare alla fase seguente:
$ jpm xpicrea il file xpi dentro la nostra cartella addon e quindi possiamo installarlo nel nostro Firefox. Questo è il file xpi che ho fatto, il nome è Translate.xpi. Questo invece è il file xpi firmato da Mozilla che richiede di essere firmato dalla versione 44 in poi, il nome è my_translation_addon-0.0.1-fx+an.xpi