Extensões são uma forma de Installable Bundle (Pacotes Instaláveis) os quais podem ser baixados e instalados por um usuário, ou proporcionado por um pré-pacote com a aplicação ou por um programa externo. Extensões usam uma directory structure (estrutura de diretórios) que podem proporcionar chrome, componentes e outros arquivos para extender a funcionalidade de um programa XUL.
Toda extensão deve proporcionar um arquivo install.rdf que contém metadados sobre a extensão, como IDs únicos, versão, autor e informações sobre compatibilidade.
Depois dos arquivos da extensão e o install.rdf estarem preparados, existem vários caminhos para preparar uma extensão para instalação: comprima o diretório da extensão dentro de um arquivo XPI (XPInstall), desempacote a extensão diretamente dentro da aplicação do usuário ou diretório do perfil, ou registre a extensão no registro do Windows.
Fazendo uma Extensão XPI
Um arquivo XPI (XPInstall) é simplesmente um arquivo ZIP contendo os arquivos da extensão, com o arquivo install.rdf no raiz do ZIP. Usuários podem baixar e instalar os arquivos XPI de um website ou de uma pasta local, abrindo-o ou arrastando-o para uma janela de Gerenciamento de Extensões.
O tipo MIME reconhecido pelo Firefox pelos arquivos XPI é application/x-xpinstall. A maioria dos servidores de HTTP não está configurada por padrão para retornar este tipo MIME para a extensão .xpi, você provavelmente precisará configurar seu servidor HTTP. No Servidor Apache HTTP, isto pode ser feito adicionando as seguintes diretrizes ao arquivo de configuração ou ao .htaccess:
AddType application/x-xpinstall .xpi
Instalar Arquivos de Extensão Diretamente
Se você sabe a localização da aplicativos (se você estiver instalando uma extensão como parte de um instalador de aplicativos, por exemplo), você pode instalar os arquivos da extensão diretamente em <appdir>/extensions/<extensionID>. A extensão será encontrada automaticamente pelo Gerenciador de Extensões da próxima vez que o aplicativo for iniciado.
Quando usando este método você deve verificar se as permissões do arquivo de sistema para os diretórios e arquivos da extensão estejam postas adequadamente. Contrariamente, o Gerenciador de Extensões pode não funcionar adequadamente com a extensão ou ela pode não funcionar adequadamente.
Registrar um Local de Extensão Usando o Registro do Windows
Instaladores externos (como o Java runtime)podem desejar instalar pontos de integração da aplicação como extensão mesmo se o aplicativo ainda não está instalado. Isto pode ser efetuado no Windows usando o registro (Adding Extensions using the Windows Registry).
Extensões Multi-Item XPI
Em alguns casos um simples arquivo XPI podem desejar instalar múltiplas extensões/temas. Um tipo especial de extensão XPI chamado de Multiple Item Package que explica como criar este tipo de pacote. (Firefox 1.5/XULRunner 1.8 é requerido.)
Referências Oficiais para Toolkit API
Official References. Do not add to this list without contacting Benjamin Smedberg. Note that this page is included from the pages listed below. So: Don't Add Breadcrumbs!
- Structure of an Installable Bundle: describes the common structure of installable bundles, including extensions, themes, and XULRunner applications
- Extension Packaging: specific information about how to package extensions
- Theme Packaging: specific information about how to package themes
- Multiple-item Extension Packaging: specific information about multiple-item extension XPIs
- XUL Application Packaging: specific information about how to package XULRunner applications
- Chrome Registration