Conceitos e arquitetura de extensão

Este artigo apresenta os conceitos do desenvolvedor sobre como criar uma extensão do Microsoft Edge. Como desenvolvedor de extensão, você pode acompanhar para entender como funcionam os navegadores com várias guias.

Uma extensão do Microsoft Edge é um aplicativo pequeno que os usuários podem optar por adicionar ou modificar recursos do Microsoft Edge para fornecer uma experiência ou função especializada que seja importante para um público-alvo. Para obter uma introdução, consulte Visão geral das extensões do Microsoft Edge.

Os usuários procuram e instalam extensões para Microsoft Edge de complementos do Microsoft Edge.

Conteúdo detalhado:

Entenda como os navegadores funcionam

A lista a seguir descreve informações úteis que você deve entender antes de criar sua extensão.

As guias do navegador são threads isolados

Cada guia do navegador é isolada de todas as outras guias. Cada guia é executada em um thread separado isolado de outras guias e threads do navegador.

Um tópico por guia do navegador

Cada guia lida com uma solicitação GET

Cada guia lida com uma solicitação GET. Cada guia usa uma URL para obter um único fluxo de dados, que normalmente é um documento HTML. Esse único fluxo ou página inclui instruções como JavaScript, incluindo tags, referências de imagem, referências CSS e muito mais. Todos os recursos são baixados para essa página de guia e, em seguida, a página é renderizada na guia.

A comunicação ocorre entre cada guia e um servidor remoto

A comunicação ocorre entre cada guia e um servidor remoto. Cada guia é executada em um ambiente isolado. Cada guia ainda está conectada à Internet, mas cada uma está isolada das outras guias. Uma guia pode executar JavaScript para se comunicar com um servidor. O servidor é o servidor de origem da primeira solicitação GET inserida na barra de URL da guia.

Modelo de comunicação

O modelo de extensão usa um modelo de comunicação diferente. Semelhante a uma página de guia, uma extensão é executada em um thread individual isolado de outros threads da página de guia. Uma guia envia solicitações GET únicas para servidores remotos e, em seguida, renderiza a página. No entanto, uma extensão funciona de forma semelhante a um servidor remoto. A instalação de uma extensão em um navegador cria um servidor Web autônomo no navegador. A extensão é isolada de todas as páginas da guia.

As extensões usam um modelo de comunicação diferente

Arquitetura de extensão

A lista a seguir descreve informações úteis relacionadas à arquitetura de uma extensão.

Pacote de servidor Web de extensão

Uma extensão é um pacote de recursos da Web. Os recursos da Web são semelhantes a outros recursos que você (o desenvolvedor da Web) publica em servidores da Web. Você agrupa os recursos da Web em um arquivo zip ao criar uma extensão.

O arquivo zip inclui HTML, CSS, JavaScript e arquivos de imagem. Mais um arquivo é necessário na raiz do arquivo zip. O outro arquivo é o arquivo de manifesto chamado manifest.json. O arquivo de manifesto é o blueprint da sua extensão e inclui a versão da sua extensão, o título, as permissões necessárias para que a extensão seja executada e assim por diante.

Iniciando o servidor de extensão

Os servidores Web contêm seu pacote da Web. Um navegador navega para URLs no servidor e baixa o arquivo para renderizar no navegador. Um navegador navega usando certificados, arquivos de configuração e assim por diante. Se um index.html arquivo for especificado, ele será armazenado em um local especial no servidor Web.

Quando você usa uma extensão, a página da guia do seu navegador acessa o pacote da Web da sua extensão usando o runtime da extensão. O runtime da extensão serve os arquivos da URL extension://{some-long-unique-identifier}/index.html, onde {some-long-unique-identifier} é um identificador exclusivo atribuído à extensão durante a instalação. Cada extensão usa um identificador exclusivo diferente. Cada identificador aponta para o pacote da Web que está instalado em seu navegador.

Comunicação com guias e barra de ferramentas do navegador

Uma extensão pode se comunicar com guias e a barra de ferramentas do navegador. Uma extensão pode interagir com a barra de ferramentas do seu navegador. Cada extensão gerencia a execução de páginas de guia em threads separados e a manipulação de DOM em cada página de guia é isolada. Uma extensão usa a API de extensões para se comunicar entre as páginas de extensão e guia. A API de extensões fornece recursos extras que incluem gerenciamento de notificações, gerenciamento de armazenamento e assim por diante.

Assim como os servidores Web, uma extensão aguarda notificações quando o navegador é aberto. As páginas de extensão e guia são executadas em threads isolados uns dos outros. Para permitir que uma extensão funcione com qualquer página de guia, use a API de extensões e defina as permissões no arquivo de manifesto.

Permissões de aceitação no momento da instalação

Uma extensão fornece permissões de aceitação no momento da instalação. Você especifica as permissões de extensão no manifest.json arquivo. Quando um usuário instala uma extensão, são exibidas informações sobre as permissões que a extensão requer. Com base no tipo de permissão necessária, a extensão pode extrair e usar informações do navegador.

Confira também