4 votes

Où puis-je trouver une description technique du "mode kiosque" de Chromium ?

J'essaie d'évaluer si le "mode kiosque" de Chromium, activé via un argument de ligne de commande, est adapté à mes besoins.

Où puis-je trouver une description technique précise de l'effet de la --kiosk argument ?

L'un ou l'autre de ces éléments serait utile :

  • un lien vers un morceau de code commenté dans l'arborescence des sources de Chromium
  • un lien vers une page wiki officielle ou un article de blog officiel
  • un lien vers un problème dans le gestionnaire de problèmes de Chromium

Remerciements

4voto

wool.in.silver Points 241

Désambiguïsation

Il existe deux concepts distincts dans Chrome, qui utilisent tous deux le nom de mode kiosque .

  1. 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 .
  2. 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 :

  1. mode kiosque de bureau であり、また
  2. 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.

1voto

root Points 3412

Le code source de Chromium est, " indexées et disponibles sur le web "pour cette même raison.

Utilisation Recherche de code Vous pouvez rechercher kiosk contre la l'ensemble du projet .

Un extrait de l'une des premières recherches que j'ai utilisé et qui pourrait vous intéresser,

  // In kiosk mode, we want to always be fullscreen, so switch to that now.
  if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode) ||
      base::CommandLine::ForCurrentProcess()->HasSwitch(
          switches::kStartFullscreen)) {
    // It's possible for there to be no browser window, e.g. if someone
    // specified a non-sensical combination of options
    // ("--kiosk --no_startup_window"); do nothing in that case.
    Browser* browser = BrowserList::GetInstance()->GetLastActive();
    if (browser)
      chrome::ToggleFullscreenMode(browser);
  }

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X