Conceptos de extensión y arquitectura

En este artículo se presentan conceptos sobre la creación de una extensión de Microsoft Edge. Siga estos pasos para comprender cómo funcionan los exploradores de varias pestañas.

Una extensión de Microsoft Edge es una aplicación pequeña en la que los usuarios pueden participar que agrega o modifica características de Microsoft Edge para proporcionar una experiencia o función especializada que sea importante para un público de destino. Para obtener una introducción, consulte Introducción a las extensiones de Microsoft Edge.

Descripción del funcionamiento de los exploradores

En la lista siguiente se describe información útil para comprender antes de compilar la extensión.

Las pestañas del explorador son subprocesos aislados

Cada pestaña del explorador está aislada de cada otra pestaña. Cada pestaña se ejecuta en un subproceso independiente que está aislado de otras pestañas y subprocesos del explorador.

Un subproceso por pestaña del explorador

Cada pestaña controla una solicitud GET

Cada pestaña controla una solicitud GET. Cada pestaña usa una dirección URL para obtener un único flujo de datos, que normalmente es un documento HTML. Esa única secuencia o página, incluye instrucciones como JavaScript que incluyen etiquetas, referencias de imagen, referencias CSS, etc. Todos los recursos se descargan en esa página de una pestaña y, a continuación, la página se representa en la pestaña.

La comunicación se produce entre cada pestaña y un servidor remoto

La comunicación se produce entre cada pestaña y un servidor remoto. Cada pestaña se ejecuta en un entorno aislado. Cada pestaña sigue conectada a Internet, pero cada una está aislada de otras pestañas. Una pestaña puede ejecutar JavaScript para comunicarse con un servidor. El servidor es el servidor de origen de la primera solicitud GET que se escribió en la barra de direcciones URL de la pestaña.

Modelo de comunicación

El modelo de extensión usa un modelo de comunicación diferente. De forma similar a una página de pestaña, una extensión se ejecuta en un subproceso individual que está aislado de otros subprocesos de página de tabulación. Una pestaña envía solicitudes GET únicas a servidores remotos y, a continuación, representa la página. Sin embargo, una extensión funciona de forma similar a un servidor remoto. La instalación de una extensión en un explorador crea un servidor web independiente en el explorador. La extensión está aislada de todas las páginas de tabulación.

Las extensiones usan un modelo de comunicación diferente

Arquitectura de extensión

En la lista siguiente se describe información útil en relación con la arquitectura de una extensión.

Agrupación de servidores web de extensión

Una extensión es un conjunto de recursos web. Los recursos web son similares a otros recursos que usted (el desarrollador web) publica en los servidores web. Los recursos web se agrupan en un archivo ZIP al compilar una extensión.

El archivo zip incluye archivos HTML, CSS, JavaScript y de imagen. Se requiere un archivo más en la raíz del archivo ZIP. El otro archivo es el archivo de manifiesto denominado manifest.json. El archivo de manifiesto es el plano técnico de la extensión e incluye la versión de la extensión, el título, los permisos necesarios para que se ejecute la extensión, etc.

Inicio del servidor de extensiones

Los servidores web contienen la agrupación web. Un explorador navega a las direcciones URL del servidor y descarga el archivo para representarlo en el explorador. Un explorador navega mediante certificados, archivos de configuración, etc. Si se especifica un index.html archivo, el archivo se almacena en una ubicación especial en el servidor web.

Cuando se usa una extensión, la página de pestaña del explorador llega a la agrupación web de la extensión mediante el tiempo de ejecución de la extensión. El tiempo de ejecución de la extensión sirve los archivos de la dirección URL extension://{some-long-unique-identifier}/index.html, donde {some-long-unique-identifier} es un identificador único asignado a la extensión durante la instalación. Cada extensión usa un identificador único diferente. Cada identificador apunta al lote web que se instala en el explorador.

Comunicación con pestañas y barra de herramientas del explorador

Una extensión puede comunicarse con las pestañas y la barra de herramientas del explorador. Una extensión puede interactuar con la barra de herramientas del explorador. Cada extensión administra las páginas de tabulación en ejecución en subprocesos independientes y la manipulación dom en cada página de pestaña está aislada. Una extensión usa la API de extensiones para comunicarse entre las páginas de extensión y pestaña. La API de extensiones proporciona funcionalidades adicionales que incluyen administración de notificaciones, administración de almacenamiento, etc.

Al igual que los servidores web, una extensión espera notificaciones cuando el explorador está abierto. Las páginas de extensión y tabulación se ejecutan en subprocesos que están aislados entre sí. Para permitir que una extensión funcione con cualquier página de pestaña, use la API de extensiones y establezca los permisos en el archivo de manifiesto.

Permisos de participación en el momento de la instalación

Una extensión proporciona permisos de participación en el momento de la instalación. Los permisos de extensión se especifican en el manifest.json archivo. Cuando un usuario instala una extensión, se muestra información sobre los permisos que requiere la extensión. En función del tipo de permiso necesario, la extensión puede extraer y usar información del explorador.

Pasos siguientes

Para obtener información sobre cómo empezar a trabajar con la extensión, consulte El tutorial Sobre la creación de una extensión, parte 1.