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.
For more information, read the Code Signing tutorial.
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
.
For more information, read the Context Isolation tutorial.
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. For details on submitting your app to the MAS, see the Mac App Store Submission Guide.
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.
For more information, read the Native Node Modules tutorial.
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.
For more information, read the Offscreen Rendering tutorial.
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
processus (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.
For more information, read the Process Sandboxing tutorial.
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. See the autoUpdater API for info about getting started with 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
Ce processus est un enfant du processus principal permettant d'exécuter tout service non fiable ne pouvant pas être exécuté dans le processus principal. Chromium utilise ce processus pour effectuer des E/S réseau, du traitement audio/vidéo, des entrées d'appareil, 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 dans le cadre de Chromium et pointe ensuite Node vers ce V8 lors de 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é.