Capturando Load e Unload

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.

Etiquetas do documento e colaboradores

 Última atualização por: Pheanor,