Aller au contenu principal

Glossaire

Cette page définit certaines terminologies couramment utilisées dans le développement d'Electron.

ASAR

ASAR signifie Atom Shell Archive Format. Une archive asar est un simple format d'archive du genre de tar, qui concatène des fichiers en un seul fichier. Electron peut lire les fichiers sans avoir à décompresser l'archive.

Le format ASAR a été créé principalement pour améliorer les performances sous Windows lorsque il y a de grandes quantités de petits fichiers ( par ex. lors du chargement de l'arborescence des dépendances JavaScript de votre application depuis node_modules).

signature de code

La signature de code est un processus où un développeur d'applications signe numériquement son code pour assurer qu'il n'a pas été altéré après l'empaquetage. Windows et macOS implémentent leur propre version de signature de code. En tant que développeur d'applications de bureau, il est important que vous signiez votre code si vous prévoyez de le distribuer au grand public.

Pour plus d'informations, lisez le tutoriel Signature de code.

isolation du contexte

L’isolation du contexte est une mesure de sécurité d'Electron qui garantit que votre script de préchargement(preload) ne peut pas permettre que le site web contenu dans le WebContent accède aux API d’Électron ou de Node.js. Avec l'isolement du contexte activé, le seul moyen d'exposer les API de votre script de préchargement est de passer par l'API contextBridge.

Pour plus d'informations, lisez le tutoriel Isolation du contexte.

Voir aussi: script preload, processus de rendu

CRT

La bibliothèque de Runtime C (CRT) est la partie de la bibliothèque Standard C++ intégrant la bibliothèque standard ISO C99. Les bibliothèques Visual C++ qui implémentent le CRT supportent le développement de code natif, de code mixte natif et managé ainsi que le code managé pur pour le développement .NET.

DMG

Une Image disque Apple est un format de package utilisé par macOS. Les fichiers DMG sont couramment utilisés pour distribuer un « installateur » d'une application.

IME

Éditeur de méthode d'entrée (Input Method Editor). Un programme qui permet aux utilisateurs d'entrer des caractères et des symboles n'existant pas sur leur clavier. Par exemple, cela permet aux utilisateurs de clavier Latin d'entrer des caractères chinois, japonais, coréen et hindi.

IDL

Langue de description de l'interface. Décrit les signatures des fonctions et des types de données dans un format qui peut être utilisé pour générer des interfaces en Java, C++, JavaScript, etc.

IPC

IPC signifie communication inter-processus. Electron utilise les IPC pour envoyer des messages sérialisés en JSON entre le processus principal et les processus de rendu.

voir aussi : processus principal, processus de rendu

processus principal (main process)

Le processus principal, généralement un fichier nommé main.js, est le point d'entrée de chaque application Electron. Il contrôle la vie de l'application, de l'ouverture à la fermeture. Il gère également les éléments natifs tels que le Menu, Menu Bar, Dock, Tray, etc. Le processus principal est responsable de la création de chaque nouveau processus de rendu dans l'application. L'API complète de Node est intégrée.

Chaque fichier de processus principal d'une application est spécifié dans la propriété main du package.json. C'est ainsi que la commande electron . sait quel fichier exécuter au démarrage.

Dans Chromium, ce processus est nommé « processus du navigateur ». Il a été renommé dans Electron afin d'éviter toute confusion avec les processus de rendu.

Voir aussi : processus, processus de rendu

MAS

Acronyme de Mac App Store d’Apple. Pour plus de détails sur la soumission de votre application au MAS, consultez le Guide de soumission du Mac App Store.

Mojo

Un système IPC pour la communication intra - ou inter-processus, et c’est important car Chrome a tendance à diviser ses tâches dans des processus distincts ou non, en fonction des contraintes de mémoire etc.

Voir https://chromium.googlesource.com/chromium/src/+/main/mojo/README.md

Voir aussi: IPC

MSI

Sous Windows, les paquets MSI sont utilisés par le service Windows Installer (également connu sous le nom d'installateur Microsoft) pour installer et configurer des applications .

Plus d'informations peuvent être trouvées dans la documentation de Microsoft.

modules natifs

Les modules natifs (également appelés addons dans Node.js) sont des modules écrits en C ou C++ qui peuvent être chargés dans Node.js ou Electron à l'aide de la fonction require() et sont utilisés comme si ils étaient des modules ordinaires de Node.js. Ils sont utilisés principalement pour fournir une interface entre JavaScript s’exécutant dans les librairies Node.js et C/C++.

Les modules natifs de Node sont pris en charge par Electron, mais étant donné qu'Electron est très susceptible d'utiliser une version différente de V8 du binaire Node installée sur votre système. Vous devez spécifier manuellement l'emplacement des en-têtes d'Electron, lors de la compilation de modules natifs.

Pour plus d'informations, lisez le tutoriel [Native Node Modules].

notarisation

La notarisation est un processus spécifique à macOS par lequel un développeur peut envoyer une application au code signée vers les serveurs d'Apple afin qu'un service automatisé vérifie la présence de composants malveillants.

Voir aussi: signature de code

OSR

OSR (rendu hors écran) peut être utilisé pour charger une page lourde en arrière-plan avant de l’afficher (ce sera beaucoup plus rapide). Cela permet d'effectuer le rendu de la page sans l’afficher à l’écran.

Pour plus d'informations, lisez le tutoriel Offscreen Rendering[osr].

scripts de preload

Les scripts de préchargement contiennent du code qui s'exécute dans un processus de rendu avant que son contenu web ne commence à être chargé. Ces scripts s'exécutent dans le contexte du moteur de rendu, mais se voient accorder plus de privilèges en ayant accès aux API Node.js.

Voir aussi :du processus du moteur de rendu , isolation du contexte

process

Un processus est une instance d'un programme d'ordinateur en execution. Les apps Electron qui utilisent le processus main et un ou plusieurs processus renderer font tourner plusieurs programmes en même temps.

Dans Node.js et Electron, chaque processus en exécution possède un objet process. Cet objet global donne des informations et permet de contrôler le processus en cours. En tant que variable globale, cet objet est disponible dans l'application sans utiliser require().

Voir aussi : processus principal, processus de rendu

processus de rendu (renderer process)

Le processus de rendu est une fenêtre de navigateur dans votre application. Contrairement au processus principal, il peut y en avoir plusieurs et chacun est exécuté dans un processus distinct. Ils peuvent également être cachés.

Voir aussi : processus, processus principal

sandbox

Le bac à sable est une fonctionnalité de sécurité héritée de Chromium qui limite vos processus de rendu à un ensemble limité d'autorisations.

Pour plus d'informations, lisez le tutoriel Sandboxing de processus.

Voir aussi: processus

Squirrel

Squirrel est un framework open-source qui permet aux applications Electron de se mettre à jour automatiquement au fur et à mesure que de nouvelles versions sont publiées. Voir l'API autoUpdater pour plus d'informations sur comment démarrer avec Squirrel.

userland

Ce terme provient de la communauté Unix, où « userland » ou « userspace » fait référence aux programmes qui s’exécutent en dehors du noyau de système d’exploitation. Plus récemment, le terme a été popularisé dans Node et la communauté npm afin d’établir une distinction entre les fonctionnalités disponibles dans « Node core » par rapport aux paquets beaucoup plus nombreux publiés dans npm par la communauté « d'utilisateurs ».

Comme Node, Electron se concentre sur le fait d'avoir un petit ensemble d'APIs qui fournissent toutes les primitives nécessaires pour développer des applications de bureau multiplateformes. Cette philosophie de conception permet à Electron de rester un outil flexible sans être trop normatif sur la manière dont il devrait être utilisé. Userland permet aux utilisateurs de créer et partager des outils qui fournissent des fonctionnalités supplémentaires en plus de ce qui est disponible dans le "core".

utility process

The utility process is a child of the main process that allows running any untrusted services that cannot be run in the main process. Chromium uses this process to perform network I/O, audio/video processing, device inputs etc. In Electron, you can create this process using UtilityProcess API.

Voir aussi : processus, processus principal

V8

V8 est le moteur JavaScript open source de Google. Il est écrit en C++ et est utilisé dans Google Chrome. V8 peut s’exécuter de manière autonome ou peut être incorporé dans n’importe quelle application C++.

Electron compile V8 de Chromium et fait pointer Node à ce V8 pendant la compilation.

Les numéros de version de V8 correspondent toujours à ceux de Google Chrome. Chrome 59 inclut V8 5.9, Chrome 58 inclut V8 5.8, etc.

webview

Les balises webview sont utilisées pour incorporer du contenu « hébergé» (comme des pages Web externes) dans votre application Electron. Elles sont similaires aux iframe, mais diffèrent car chaque webview s’exécute dans un processus distinct. Il n’a pas les mêmes autorisations que votre page web et toutes les interactions entre votre application et le contenu incorporé seront asynchrones. Cela protège votre application du contenu incorporé.