Complementos
============

Modifique e amplie os aplicativos da Mozilla
**Complementos** acrescentam novas funcionalidades para os aplicativos baseados no Gecko tais como Firefox, SeaMonkey e Thunderbird. Há dois tipos de complementos principais Extensões adicionam novas características para o aplicativo, enquanto Temas modificam a interface do aplicativo do usuário.

Para ambos, extensões e temas, a Mozilla opera o repositório em addons.mozilla.org, também conhecido como AMO. Quando você Envia complementos para o AMO eles são revisados e depois de passados na revisão, são disponibilizados aos usuários. Você não tem que enviar complementos para AMO, mas se enviar, os usuários terão mais confiança no fato de que eles foram revisados, e você pode se beneficiar da visibilidade AMO como uma fonte confiável para complementos úteis.

O termo "complemento"(Add-ons) inclui plugins, extensões, temas, e plug-ins de mecanismos de busca (tal como google, bing, etc.).

O Gerenciador de complementos pode afetar o comportamento do aplicativo que o hospeda. Nós desenvolvemos orientações de complementos para ajudar a garantir que eles proveriam uma boa experiência para os usuários. Estas orientações se aplicam em todos tipos de complementos, mesmo se eles são hospedados em addons.mozilla.org ou não.

O Gerenciador de complementos dá acesso aos complementos a fim de determinar o que está disponível, instalar, remover, desativar e atualizar.

Extensões
---------

Extensões adicionam novas funcionalidades para aplicativos da Mozilla como Firefox e Thunderbird. Eles podem adicionar novos recursos ao navegador, como um jeito diferente de gerenciar as abas, e eles podem modificar o conteúdo da web para aperfeiçoar a usabilidade ou segurança sites específicos.

Há três tipos de técnicas diferentes que você pode utilizar para construir uma extensão: Add-on baseado em extensões SDK, extensões *restartless* inicializadas manualmente e extensões overlay.

* Desenvolva extensões que não requer a reinicialização do navegador utilizando um conjunto JavaScript APIs de alto nível.
* Extensões *Restartless*
 Desenvolva extensões que não requer a reinicialização do navegador.
* Extensões Overlay
 Extensões que requerem a reinicialização do navegador para instalar, geralmente usando overlays XUL.

Se você puder, é aconselhável utilizar o Add-on SDK, que usa o mecanismo de extensão restartless mas simplifica determinadas tarefas e limpa depois de si mesmo. Se o Add-on SDK não é suficiente para as suas necessidades, implemente uma extensão restartless manual no lugar.

Para obter mais informações sobre como escolher qual a técnica de usar, leia esta comparação.

### Práticas Recomendadas

Não importa como você desenvolve uma extensão, existem algumas orientações que você pode seguir para ajudar a garantir que sua extensão fornece uma experiência tão boa para o usuário o quão possível.

Desempenho

Assegurando que sua extensão é rápida, responsiva e eficiente para a memória.

Segurança

Assegurando que sua extensão não exponha o usuário para websites maliciosos.

Etiqueta

Assegurando que sua extensão funcione bem com outras extensões.

### Aplicativo específico

A maioria das documentações assume que você está desenvolvendo para o Firefox Desktop. Se você está desenvolvendo para algum outro aplicativo baseado no Gecko, há diferenças importantes que você precisa saber sobre.

Thunderbird

Desenvolvendo extensões para o Thunderbird mail client.

Firefox para Android

Desenvolvendo extensões para Firefox para Android.

SeaMonkey

Desenvolvendo extensões para SeaMonkey suíte de software.

Temas
-----

Os temas são add-ons que personalizam a IU do aplicativo. Existem dois tipos de temas: temas leves e temas completos.

Temas Leves são muito mais simples de implementar do que temas completos, mas fornece a personalização muito limitada.

Com Temas Completos você pode fazer modificações mais profundas na IU. A documentação para temas completos é fora da data, mas está ligada a aqui como uma possível base para a documentação atualizada.

Outros tipos de complementos
----------------------------

Plugins de Search Engine são um tipo simples e muito específico de add-on: eles adicionam novos mecanismos de busca para barra de pesquisa do navegador.

Plugins (en-US) ajuda a aplicação a entender o conteúdo web que não é suportado nativamente. Plugins NPAPI são uma tecnologia antiga e os novos sites não devem usá-las. Em geral, os plugins não estão disponíveis na maioria dos sistemas móveis modernos, e os sites devem evitar usar plugins.