Para seguir este tutorial você precisará ter conhecimento básico de jpm
.
Se seu add-on exporta uma função chamada main()
, então aquela função será chamada sempre que o add-on for carregado, e será passada uma string descrevendo a razão de ele ter sido carregado bem como qualquer argumento passado para ele. Se seu add-on exporta uma função chamada onUnload()
, então esta função será chamada quando o add-on for descarregado, e será passada uma string descrevendo a razão da descarga.
Você não tem que usar exports.main()
ou exports.onUnload()
. Você pode colocar o código do seu add-on no nível superior ao invés de envolver ele em uma atribuição de função para exports.main()
. Ele será carregado nas mesmas circunstâncias, mas você não conseguirá acesso às razões da carga ou descarga dele bem como de seus argumentos.
exports.main()
O código main.js
do seu add-on é executado assim que ele é carregado. Ele é carregado quando ele é instalado, habilitado ou quando inicia o Firefox.
Se seu add-on exporta uma função chamada main()
, aquela função será chamada imediatamente depois que o main.js
esteja completamente avaliado, e depois de todas as declarações require()
de nível superior serem executadas (então geralmente depois de todas módulos dependentes serem carregados).
exports.main = function (options, callbacks) {};
options
é um objeto descrevendo os parâmetros com os quais seu add-on foi carregado
options.loadReason
options.loadReason
é uma das seguintes strings descrevendo a razão de seu add-on ter sido carregado:
install enable startup upgrade downgrade
exports.onUnload()
Se seu add-on exporta uma função chamada onUnload()
, aquela função será chamando quando o add-on for descarregado.
exports.onUnload = function (reason) {};
reason
reason
é uma das seguintes strings descrevendo a razão do add-on ter sido descarregado:
uninstall disable shutdown upgrade downgrade
Devido ao bug 627432, sua captura de descarga (onUnload
) nunca será chamada com uninstall
: ela somente é chamada com disable
. Veja no comentário particular sobre este bug.