Architecture des applications Chrome

Les applications Chrome s'intègrent étroitement au système d'exploitation des utilisateurs. Ils sont conçus pour être exécutés en dehors d'un onglet de navigateur, pour fonctionner de manière robuste en cas de connexion hors connexion ou de mauvaise connectivité, et pour offrir des fonctionnalités bien plus puissantes que celles disponibles dans un environnement de navigation Web classique. Le conteneur d'applications, la programmation et les modèles de sécurité sont compatibles avec ces exigences concernant les applications Chrome.

Modèle de conteneur d'application

Le conteneur d'applications décrit l'apparence visuelle et le comportement de chargement des applications Chrome. Les applications Chrome diffèrent des applications Web traditionnelles, car leur conteneur n'affiche aucune commande d'interface utilisateur de page Web classique. Il contient simplement une zone rectangulaire vide. Cela permet à une application de se fondre dans les applications "natives" du système, et cela empêche l'utilisateur de "s'exprimer" avec la logique de l'application en modifiant manuellement l'URL.

Les applications Chrome se chargent différemment des applications Web. Les deux chargent le même type de contenu: des documents HTML avec CSS et JavaScript. Toutefois, une application Chrome est chargée dans le conteneur de l'application, et non dans l'onglet du navigateur. Le conteneur de l'application doit également charger le document principal de l'application Chrome à partir d'une source locale. Toutes les applications Chrome sont alors au moins fonctionnelles en mode hors connexion et permettent d'appliquer des mesures de sécurité plus strictes.

Fonctionnement du modèle de conteneur d'applications

Modèle de programmation

Le modèle de programmation décrit le cycle de vie et le comportement des fenêtres des applications Chrome. Comme pour les applications natives, l'objectif de ce modèle de programmation est d'offrir aux utilisateurs et à leurs systèmes un contrôle total sur le cycle de vie de l'application. Le cycle de vie de l'application Chrome doit être indépendant du comportement de la fenêtre du navigateur ou d'une connexion réseau.

La "page d'événements" permet de gérer le cycle de vie de l'application Chrome en répondant aux gestes des utilisateurs et aux événements système. Cette page est invisible, n'existe qu'en arrière-plan et peut être fermée automatiquement par l'environnement d'exécution du système. Il contrôle l'ouverture et la fermeture des fenêtres, ainsi que le démarrage ou la fermeture de l'application. Il ne peut y avoir qu'une seule "page d'événement" par application Chrome.

Aperçu du cycle de vie d'une application

Pour obtenir des instructions détaillées sur l'utilisation du modèle de programmation, consultez Gérer le cycle de vie des applications. Voici un bref récapitulatif du cycle de vie des applications Chrome pour vous aider à démarrer:

ÉtapeRésumé
InstallationL'utilisateur choisit d'installer l'application et accepte explicitement les autorisations.
DémarrageLa page de l'événement est chargée, l'événement "launch" se déclenche et les pages de l'application s'ouvrent dans des fenêtres. Vous créez les fenêtres requises par votre application, leur apparence et la manière dont elles communiquent avec la page de l'événement et avec d'autres fenêtres.
Résiliation.L'utilisateur peut arrêter une application à tout moment, et rétablir rapidement son état précédent. Le stockage des données en stockage est une protection contre la perte de données.
Mettre à jourLes applications peuvent être mises à jour à tout moment. Toutefois, le code exécuté par une application Chrome ne peut pas être modifié pendant un cycle de démarrage ou d'arrêt.
DésinstallationL'utilisateur peut désinstaller activement des applications. Une fois désinstallé, il ne laisse aucun code en cours d'exécution ni aucune donnée privée.

Modèle de sécurité

Le modèle de sécurité des applications Chrome protège les utilisateurs en veillant à ce que leurs informations soient gérées de manière sécurisée. La section Se conformer à CSP comprend des informations détaillées sur la façon de respecter les règles relatives à la sécurité du contenu. Cette règle bloque les scripts dangereux, qui réduisent les bugs liés aux scripts intersites et protègent les utilisateurs contre les attaques MITM ("man in the middle").

Le chargement local de la page principale de l'application Chrome permet d'appliquer une sécurité plus stricte que sur le Web. Comme les extensions Chrome, les utilisateurs doivent explicitement accepter de faire confiance à l'application Chrome lors de l'installation. Ils doivent autoriser l'application à accéder à leurs données et à les utiliser. Chaque API utilisée par votre application a sa propre autorisation. Le modèle de sécurité des applications Chrome permet également de configurer la séparation des droits par fenêtre. Cela vous permet de réduire au minimum le code de votre application ayant accès à des API dangereuses, tout en continuant à les utiliser.

Les applications Chrome réutilisent l'isolation de processus des extensions Chrome, et vont encore plus loin en isolant l'espace de stockage et le contenu externe. Chaque application dispose de son propre espace de stockage privé et ne peut pas accéder au stockage d'une autre application ni aux données à caractère personnel (telles que les cookies) des sites Web que vous utilisez dans votre navigateur. Tous les processus externes sont isolés de l'application. Étant donné que les iFrames s'exécutent dans le même processus que la page environnante, ils ne peuvent être utilisés que pour charger d'autres pages de l'application. Vous pouvez utiliser la balise object pour intégrer du contenu externe. Ce contenu s'exécute dans un processus distinct de l'application.