--- title: Gerenciador de Complementos slug: Mozilla/Add-ons/Gerenciador_de_Add-on translation_of: Mozilla/JavaScript_code_modules/Add-on_Manager ---

{{ gecko_minversion_header("2.0") }}

O Gerenciador de Add-on (Add-on Manager) é responsável por gerenciar todos os add-ons instalados no aplicativo. Através de suas APIs, informação sobre todos os add-ons instalados pode ser recuperada e novos add-ons podem ser instalados. As APIs foram projetadas para serem genéricas e suportar muitos tipos diferentes de add-ons.

Muitas funções na interface do Gerenciador de Add-on operam de modo assíncrono, retornando os resultados através de callbacks (funções de retrochamadas) passadas para as funções. As callbacks podem ser chamadas imediatamente enquanto as funções iniciais ainda estão em execução ou pouco tempo após, dependendo de quando os dados da requisição se tornem disponíveis.

Acessando os add-ons instalados

Informação sobre os add-ons instalados podem ser recuperadas através da  API principal AddonManager. Todas as suas funções são assíncronas, isso significa que uma função de callback deve ser passada para receber as instâncias de Addon. A função de callback pode muito bem ser chamada somente após a função da API retornar. Por exemplo:

Components.utils.import("resource://gre/modules/AddonManager.jsm");

AddonManager.getAllAddons(function(aAddons) {
  // Aqui aAddons é um array de objetos Addon
});
// Esse código será executado antes do código dentro da callback

Notificações sobre mudanças nos add-ons instalados são dispachadas para quaisquer AddonListeners. registrado Eles devem ser registrados através do método addAddonListener().

Instalando novos add-ons

Novos add-ons podem ser instalados usando os métodos getInstallForFile() ou getInstallForURL() do objeto AddonManager. Essas passsarão uma instância de AddonInstall para a função de callback, que pode, então, ser usada para instalar o add-on:

Components.utils.import("resource://gre/modules/AddonManager.jsm");

AddonManager.getInstallForURL("http://www.foo.com/test.xpi", function(aInstall) {
  // aInstall é uma instância de AddonInstall
  aInstall.install();
}, "application/x-xpinstall");

O progresso de AddonInstall pode ser monitorado usando um InstallListener. Um listener pode ser registgrado quer para uma instalação em particular usando o método addListener() ou para todas as instalações usando o método addInstallListener().

Encontrando atualizações

Pode-se verificar a existência de atualizações para Add-ons usando o método findUpdates(). Deve-se lhe passar um UpdateListener para receber informações sobre compatibilidade e informação de nova atualização. Qualquer atualização disponível é retornada  como um AddonInstall, pronto para ser baixado e instalado.

{{ h1_gecko_minversion("Detectando mudanças nos add-ons", "7.0") }}

Você também pode conseguir listas de add-ons que, na inicialização, foram modificados de diversos modos. O método  getStartupChanges() lhe permite descobir quais add-ons foram instalados, removidos, atualizados, habilitados ou desabilitados durante a inicialização do aplicativo.

Por exemplo, para dar uma olhada nos add-ons que foram desabilitados durante a inicialização:

Components.utils.import("resource://gre/modules/AddonManager.jsm");

let addonIDs = AddonManager.getStartupChanges(AddonManager.STARTUP_CHANGE_DISABLED);
if (addonIDs.length > 0) {
  // addonIDs agora é um array das IDs dos  add-on que foram desabilitados
alert("Nota: " + addonIDs.length + " add-ons foram desabilitados.");
}

Veja também

{{ ListSubpages() }}