Concepts et architecture d’extension

Cet article présente les concepts relatifs à la création d’une extension Microsoft Edge. Suivez la procédure pour comprendre le fonctionnement des navigateurs multi-onglets.

Une extension Microsoft Edge est une petite application que les utilisateurs peuvent accepter et qui ajoute ou modifie des fonctionnalités de Microsoft Edge pour fournir une expérience ou une fonction spécialisée qui est importante pour un public cible. Pour une introduction, consultez Vue d’ensemble des extensions Microsoft Edge.

Comprendre le fonctionnement des navigateurs

La liste suivante présente des informations utiles à comprendre avant de créer votre extension.

Les onglets du navigateur sont des threads isolés

Chaque onglet du navigateur est isolé de tous les autres onglets. Chaque onglet s’exécute dans un thread distinct isolé des autres onglets et threads du navigateur.

Un thread par onglet de navigateur

Chaque onglet gère une requête GET

Chaque onglet gère une requête GET. Chaque onglet utilise une URL pour obtenir un flux de données unique, qui est normalement un document HTML. Ce flux ou cette page unique inclut des instructions telles que JavaScript incluant des balises, des références d’image, des références CSS, etc. Toutes les ressources sont téléchargées sur cette page d’onglet, puis la page est affichée dans l’onglet .

La communication se produit entre chaque onglet et un serveur distant

La communication se produit entre chaque onglet et un serveur distant. Chaque onglet s’exécute dans un environnement isolé. Chaque onglet est toujours connecté à Internet, mais chacun est isolé des autres onglets. Un onglet peut exécuter JavaScript pour communiquer avec un serveur. Le serveur est le serveur d’origine de la première requête GET qui a été entrée dans la barre d’URL de l’onglet.

Modèle de communication

Le modèle d’extension utilise un modèle de communication différent. À l’instar d’une page d’onglet, une extension s’exécute dans un thread individuel isolé des autres threads de page d’onglet. Un onglet envoie des requêtes GET uniques aux serveurs distants, puis affiche la page. Toutefois, une extension fonctionne comme un serveur distant. L’installation d’une extension dans un navigateur crée un serveur web autonome dans le navigateur. L’extension est isolée de toutes les pages d’onglet.

Les extensions utilisent un modèle de communication différent

Architecture d’extension

La liste suivante présente des informations utiles en ce qui concerne l’architecture d’une extension.

Offre groupée de serveurs web d’extension

Une extension est un ensemble de ressources web. Les ressources web sont similaires aux autres ressources que vous (le développeur web) publiez sur des serveurs web. Vous regroupez les ressources web dans un fichier zip lors de la création d’une extension.

Le fichier zip inclut des fichiers HTML, CSS, JavaScript et image. Un autre fichier est requis à la racine du fichier zip. L’autre fichier est le fichier manifeste nommé manifest.json. Le fichier manifeste est le blueprint de votre extension et inclut la version de votre extension, le titre, les autorisations nécessaires à l’exécution de l’extension, etc.

Lancement du serveur d’extensions

Les serveurs web contiennent votre offre groupée web. Un navigateur accède aux URL sur le serveur et télécharge le fichier à afficher dans le navigateur. Un navigateur navigue à l’aide de certificats, de fichiers de configuration, etc. Si un index.html fichier est spécifié, le fichier est stocké à un emplacement spécial sur le serveur web.

Lorsque vous utilisez une extension, la page d’onglets de votre navigateur accède au groupe web de votre extension à l’aide du runtime d’extension. Le runtime d’extension sert les fichiers à partir de l’URL extension://{some-long-unique-identifier}/index.html, où {some-long-unique-identifier} est un identificateur unique affecté à l’extension pendant l’installation. Chaque extension utilise un identificateur unique différent. Chaque identificateur pointe vers l’offre groupée web installée dans votre navigateur.

Communication avec les onglets et la barre d’outils du navigateur

Une extension peut communiquer avec les onglets et la barre d’outils du navigateur. Une extension peut interagir avec la barre d’outils de votre navigateur. Chaque extension gère les pages d’onglet en cours d’exécution dans des threads distincts, et la manipulation DOM sur chaque page d’onglet est isolée. Une extension utilise l’API d’extensions pour communiquer entre les pages d’extension et d’onglet. L’API d’extensions fournit des fonctionnalités supplémentaires qui incluent la gestion des notifications, la gestion du stockage, etc.

Tout comme les serveurs web, une extension attend les notifications lorsque le navigateur est ouvert. Les pages d’extension et d’onglet s’exécutent dans des threads isolés les uns des autres. Pour permettre à une extension de fonctionner avec n’importe quelle page d’onglet, utilisez l’API extensions et définissez les autorisations dans le fichier manifeste.

Autorisations d’inscription au moment de l’installation

Une extension fournit des autorisations d’inscription au moment de l’installation. Vous spécifiez les autorisations d’extension dans le manifest.json fichier. Lorsqu’un utilisateur installe une extension, des informations sur les autorisations requises par l’extension s’affichent. En fonction du type d’autorisation requis, l’extension peut extraire et utiliser des informations à partir du navigateur.

Étapes suivantes

Pour plus d’informations sur la prise en main de votre extension, consultez La première partie du didacticiel sur la création d’une extension.