Compartilhar via


Conceitos e arquitetura da extensão

Este artigo apresenta conceitos sobre a criação de uma extensão do Microsoft Edge. Acompanhe para compreender como funcionam os browsers multi-separadores.

Uma extensão do Microsoft Edge é uma pequena aplicação na qual os utilizadores podem optar por adicionar ou modificar funcionalidades do Microsoft Edge para fornecer uma experiência ou função especializada que é importante para um público-alvo. Para obter uma introdução, consulte Descrição geral das extensões do Microsoft Edge.

Compreender como funcionam os browsers

A lista seguinte descreve informações úteis a compreender antes de criar a extensão.

Os separadores do browser são threads isolados

Cada separador do browser é isolado de todos os outros separadores. Cada separador é executado num thread separado que está isolado de outros separadores e threads do browser.

Um thread por separador do browser

Cada separador processa um pedido GET

Cada separador processa um pedido GET. Cada separador utiliza um URL para obter um único fluxo de dados, que normalmente é um documento HTML. Esse fluxo ou página individual inclui instruções como JavaScript: etiquetas, referências de imagens, referências CSS e muito mais. Todos os recursos são transferidos para essa página de separador e, em seguida, a página é composta no separador.

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

A comunicação ocorre entre cada separador e um servidor remoto. Cada separador é executado num ambiente isolado. Cada separador ainda está ligado à Internet, mas cada um está isolado de outros separadores. Um separador pode executar JavaScript para comunicar com um servidor. O servidor é o servidor de origem para o primeiro pedido GET que foi introduzido na barra de URL do separador.

Modelo de comunicação

O modelo de extensão utiliza um modelo de comunicação diferente. Semelhante a uma página de separador, uma extensão é executada num thread individual isolado de outros threads de página de separador. Um separador envia pedidos GET únicos para servidores remotos e, em seguida, compõe a página. No entanto, uma extensão funciona de forma semelhante a um servidor remoto. Instalar uma extensão num browser cria um servidor Web autónomo no browser. A extensão está isolada de todas as páginas de separador.

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

Arquitetura da extensão

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

Pacote de servidor Web de extensão

Uma extensão é um conjunto de recursos Web. Os recursos Web são semelhantes a outros recursos que o utilizador (o programador Web) publica nos servidores Web. Pode agrupar os recursos Web num ficheiro zip ao criar uma extensão.

O ficheiro zip inclui FICHEIROS HTML, CSS, JavaScript e ficheiros de imagem. É necessário mais um ficheiro na raiz do ficheiro zip. O outro ficheiro é o ficheiro de manifesto com o nome manifest.json. O ficheiro de manifesto é o esquema da sua extensão e inclui a versão da extensão, o título, as permissões necessárias para que a extensão seja executada, etc.

Iniciar o servidor de extensões

Os servidores Web contêm o seu pacote Web. Um browser navega para URLs no servidor e transfere o ficheiro para compor no browser. Um browser navega através de certificados, ficheiros de configuração, etc. Se for especificado um index.html ficheiro, o ficheiro é armazenado numa localização especial no servidor Web.

Quando utiliza uma extensão, a página de separador do browser chega ao pacote Web da sua extensão através do runtime de extensão. O runtime da extensão serve os ficheiros do URL extension://{some-long-unique-identifier}/index.html, em que {some-long-unique-identifier} é um identificador exclusivo atribuído à extensão durante a instalação. Cada extensão utiliza um identificador exclusivo diferente. Cada identificador aponta para o pacote Web que está instalado no browser.

Comunicação com separadores e barra de ferramentas do browser

Uma extensão pode comunicar com separadores e a barra de ferramentas do browser. Uma extensão pode interagir com a barra de ferramentas do seu browser. Cada extensão gere a execução de páginas de separador em threads separados e a manipulação do DOM em cada página de separador é isolada. Uma extensão utiliza a API de extensões para comunicar entre a extensão e as páginas de separador. A API de extensões fornece capacidades adicionais que incluem gestão de notificações, gestão de armazenamento, etc.

Tal como os servidores Web, uma extensão aguarda notificações quando o browser está aberto. Uma extensão e páginas de separador são executadas em threads isolados uns dos outros. Para permitir que uma extensão funcione com qualquer página de separador, utilize a API de extensões e defina as permissões no ficheiro de manifesto.

Permissões de opt-in no momento da instalação

Uma extensão fornece permissões de opt-in no momento da instalação. Especifique as permissões de extensão no manifest.json ficheiro. Quando um utilizador instala uma extensão, são apresentadas informações sobre as permissões necessárias para a extensão. Com base no tipo de permissão necessária, a extensão pode extrair e utilizar informações do browser.

Próximas etapas

Para obter informações sobre como começar a utilizar a extensão, consulte Tutorial parte 1: Apresentar uma imagem num pop-up.