Désambiguïsation
Il existe deux concepts distincts dans Chrome, qui utilisent tous deux le nom de mode kiosque .
- Lorsque Chrome est utilisé comme navigateur web traditionnel sur un système d'exploitation de bureau (c'est-à-dire Windows, Mac OS X, Linux), l'argument de ligne de commande
--kiosk
peut être passé, ce qui fait que le navigateur web fonctionne dans ce que l'on appelle le mode kiosque .
- Une application Chrome peut se déclarer comme étant une Application Kiosque et un appareil ChromeOS peut être configuré pour exécuter cette application en mode kiosque .
Ces deux concepts n'ont rien à voir l'un avec l'autre !
Pour éviter toute confusion, je les désignerai respectivement par :
-
mode kiosque de bureau であり、また
-
Mode kiosque ChromeOS .
Cette question demandait une description technique de mode kiosque de bureau .
Mode kiosque de ChromeOS
N'oubliez pas que la stratégie de Google consiste à faire de Chrome un mécanisme de diffusion d'applications.
Il s'agit d'une stratégie beaucoup plus profonde que le simple fait de "créer un meilleur navigateur web", et elle inspire de nombreuses décisions en matière de conception de Chrome.
Par exemple, contrairement à d'autres navigateurs, Chrome n'affiche pas les contrôles du navigateur (avant/arrière, barre d'adresse, etc.) lorsqu'il est utilisé en plein écran. Les demandes d'ajout de ces contrôles sont les suivantes rejetée car elles seraient en contradiction avec l'objectif d'avoir des applications web riches fournissant leur propre métaphore de navigation.
Mode kiosque ChromeOS est une fonctionnalité officiellement prise en charge et s'inscrit dans la stratégie générale de Google dans ce domaine.
Vous pouvez trouver des informations techniques à ce sujet sur le web ; la fonctionnalité a une étiquette dans le gestionnaire de problèmes ; les gens semblent réussir à construire des logiciels avec elle.
D'un point de vue critique : on peut raisonner à ce sujet et on s'attend à ce qu'il ne se brise pas soudainement ou qu'il ne disparaisse pas dans la prochaine version.
Mode kiosque de bureau
Malgré les apparences, il s'agit pas une fonctionnalité officiellement prise en charge.
La raison pour laquelle aucune information ne peut être trouvée en ligne est que aucune information de ce type n'existe .
Cette fonctionnalité a été acceptée comme correctif à la fin de l'année 2009 ( voir #23145 ), afin d'imiter une fonction existante dans Internet Explorer.
J'ai parcouru le code source et j'ai découvert qu'il fait actuellement (au moins) ces choses :
- forcer le plein écran (et supprimer la "bulle" de notification)
- désactiver les outils de développement
- désactiver le menu contextuel
- supprimer les demandes d'autorisations supplémentaires (par exemple, la localisation)
Cependant, il est également :
- ne supprime pas la navigation (avant/arrière) par raccourci clavier
- ne supprime pas les actions sur le presse-papiers via un raccourci clavier
- ne supprime pas l'impression
- ne supprime pas le zoom
- usw.
Il y a essentiellement pas de définition de la façon dont mode kiosque de bureau (c'est-à-dire qu'il n'y a pas eu d'analyse formelle des besoins), il s'agit simplement d'un ensemble de bidouillages de l'interface utilisateur qui traînent dans la base de code et qui n'ont apparemment pas fait l'objet d'une appropriation.
La seule couverture de test (qui ne s'exécute que sous Windows) est la suivante :
IN_PROC_BROWSER_TEST_F(KioskModeTest, MAYBE_EnableKioskModeTest) {
// Check if browser is in fullscreen mode.
ASSERT_TRUE(browser()->window()->IsFullscreen());
ASSERT_FALSE(browser()->window()->IsFullscreenBubbleVisible());
}
Il n'est donc pas surprenant qu'il existe de nombreuses régressions (par ex. #470265 , #552778 ) entre les versions.
En l'absence d'exigences et de couverture de test, les choses peuvent mal tourner à n'importe quel endroit de la frontière entre le navigateur et le système d'exploitation, et cette frontière est énorme.
Les méthodes de saisie (claviers à l'écran, etc.) sont particulièrement intéressantes pour les kiosques, mais il y a des régressions (p. ex. #491516 ) entre les versions.
L'impression est un domaine particulièrement difficile : il existe des arguments de ligne de commande supplémentaires (par exemple --kiosk-printing
, --disable-print-preview
), ce qui multiplie la complexité, et le système de suivi des bogues est truffé de régressions dans ce domaine.
Il n'y a pas de tentative d'intégration avec l'API kiosque de Mac OS X, qui empêcherait l'accès au dock, etc.
Il est intéressant de noter qu'il n'est pas possible de garantir que l'on se trouve même en mode kiosque de bureau car l'argument de la ligne de commande peut échouer silencieusement ( #566496 ).
L'aspect le plus troublant est que le code n'a tout simplement pas de propriétaire. En regardant les commentaires de l'issue tracker, la plupart des développeurs semblent ignorer que mode kiosque de bureau existe même ! Il est souvent confondu avec Mode kiosque ChromeOS et des erreurs d'étiquetage des insectes. Il est décrit de diverses manières comme "mal supporté", et il y a même une suggestion ( #470265 ) qu'il devrait tout simplement être supprimé. Le seul développeur de Chromium qui exprime une vague affection pour cette fonctionnalité est pkasting@chromium.org .
Je n'ai pas encore commencé à examiner les domaines les plus intéressants, par exemple :
- comment interagit-il avec Safe Browsing ?
- Comment interagit-il avec les extensions Chrome ?
- que se passe-t-il si l'utilisateur visite une page présentant un problème de certificat ?
- comment cela affecte-t-il le mécanisme de mise à jour du logiciel ?
Conclusion
Faire pas utiliser le --kiosk
drapeau ( mode kiosque de bureau ) dans votre système.
- vous ne pouvez pas raisonner sur la sécurité d'un tel système
- les mises à jour de Chrome sont susceptibles de casser votre système
Si vous souhaitez utiliser l'écosystème Chrome pour construire un système de kiosque, ChromeOS semble être un meilleur choix.