Cet article explique les fonctionnements internes du démarrage et de la gestion des applications dans Firefox OS. Ces informations seront utiles aux développeurs de la plate-forme Firefox OS, aussi bien qu'aux équipes portant le système d'exploitation sur un nouveau matériel. Ce n'est pas indispensable si vous êtes un développeur d'applications, mais cela pourrait quand même vous intéresser.
Processus de démarrage d'une application
Quand l'utilisateur sélectionne une application qu'il aimerait lancer, ou qu'une application doit être lancée d'une autre manière, l'application écran d'accueil commence par récupérer une référence d'application depuis l'API App
, puis appelle la méthode App.launch()
pour lancer l'application.
Gecko reçoit cette requête et envoie le mozChromeEvent
à l'application System avec les détails de l'application. L'application System traite cet événement en insérant un nouvel <iframe>
dans son arborescence DOM et en chargeant l'application dans le nouvel <iframe>
. Ce conteneur sera l'hébergeur de l'application jusqu'à ce qu'elle se termine.
Chaque application a besoin d'un manifeste qui la décrit et possède une hiérarchie de fichiers spécifique au sein de son package. Pour plus de détails, voir l'article Manifeste d'application.
Communication avec Gecko
La communication entre Gecko et l'application System Gaia est faite via mozChromeEvent
et mozContentEvent
. Les événements mozChromeEvent
sont diffusés depuis Chrome jusqu'au contenu et les événements mozContentEvent
sont diffusés depuis le contenu jusqu'à Chrome. Cette communication est utilisée pour contrôler la création et la fermeture de l'interface de confiance et pour injecter les fonctions requises pour les notifications et autres tâches, incluant l'ordre pour l'application System, de démarrer une application.
Note: Vous trouverez plus d'informations sur le fonctionnement de ces événements en lisant notre documentation de l'application System. Vous pouvez aussi en découvrir beaucoup plus en regardant le code de b2g/chrome/content/shell.js
.