Le framework de remplissage automatique d'Android O résoudra enfin un problème de décalage de longue date avec les gestionnaires de mots de passe

Le nouveau framework de remplissage automatique dans Android O résoudra un problème de décalage de longue date associé aux services d'accessibilité des gestionnaires de mots de passe.

Cela fait déjà un mois que Google a publié le premier aperçu du développeur Android O (le temps passe vite !), et comme pour toute nouvelle version d'Android, il y a beaucoup de choses à approfondir. Nous avons publié plein d'articles déjà parlé d'Android O, mais il y a une fonctionnalité qui, à mon avis, n'a pas vraiment reçu l'attention qu'elle mérite: le Cadre de remplissage automatique.

Remplissage automatique dans Android O

Les gestionnaires de mots de passe sont à la pelle de nos jours (même si nous sommes partisan du KeePass open source), mais ce n'est qu'avec Android O que Google prend réellement officiellement en charge les gestionnaires de mots de passe. Avec Android O, les applications tierces peuvent remplir le rôle d'un service de remplissage automatique, qui communique avec les applications via le nouveau cadre de remplissage automatique. Applications qui utilisent la norme

Voir les éléments fonctionneront immédiatement avec le framework de remplissage automatique, bien que les développeurs puissent prendre des mesures supplémentaires pour optimiser pour le remplissage automatique pour garantir que toutes les vues personnalisées de l'application peuvent être remplies automatiquement.

Lorsqu'une vue remplissable automatiquement devient active, Autofill Framework appelle une demande de remplissage automatique. Le service de saisie automatique répond en renvoyant certains ensembles de données de saisie automatique (tels que le nom d'utilisateur, le mot de passe, l'adresse, les numéros de carte de crédit, etc.) que l'utilisateur peut ensuite sélectionner. Le service de saisie automatique est spécifié par l'utilisateur dans Paramètres --> Applications et notifications --> Applications par défaut --> Application de saisie automatique.

Application de remplissage automatique dans Android O. Crédits: Dernier passage.

L'explication du nouveau framework de remplissage automatique ci-dessus n'est qu'un bref résumé de ce qui se passe du côté de l'application demandeuse et du service de remplissage automatique. Ce qui est le plus important pour votre compréhension ici, ce ne sont pas les détails exacts du fonctionnement de la saisie automatique dans Android O, mais le fait que le les applications de gestion de mots de passe elles-mêmes ne gèrent plus la détection du moment où une vue peut être remplie automatiquement.


Lecture recommandée: AgileBits montre à quoi ressemblera le framework de remplissage automatique d'Android O


Remplissage automatique avant Android O

Comparez cela au fonctionnement de la saisie automatique avant Android O. Avant que les gestionnaires de mots de passe ne disposent d'une méthode officielle pour détecter quand une vue pouvait être remplie automatiquement, chaque l'application a dû implémenter un service d'accessibilité pour analyser la vue actuelle afin de trouver des éléments à remplir automatiquement des champs.

L'utilisation d'un service d'accessibilité peut toutefois entraîner un retard considérable sous certaines conditions. Le décalage associé au service d'accessibilité de votre gestionnaire de mots de passe typique est si évident que des services populaires tels que LastPass ont même pages d'assistance au sujet de la question. Ces pages d'assistance vous indiquent généralement que votre seul recours pour faire face à un décalage excessif causé par leur Le service d'accessibilité consiste soit à désactiver le service d'accessibilité, soit à utiliser sa propre entrée personnalisée. méthode. Quoi qu’il en soit, vous perdez toute sorte de capacité de remplissage automatique.

Mais pourquoi exactement le service d’accessibilité de LastPass, ou le service d’accessibilité de tout autre gestionnaire de mots de passe, semble-t-il provoquer autant de retard? La raison en est que ces gestionnaires de mots de passe doivent utiliser les services d'accessibilité pour détecter les champs de saisie. Un service d'accessibilité les attributs sont définis dans un Fichier de ressources XML dans l'APK, afin que nous puissions voir comment fonctionne le Service en décompilant le fichier APK.

Vous trouverez ci-dessous le fichier de ressources issu de la décompilation de l'APK LastPass :


"@string/accessibility_service_description"
android: accessibilityEventTypes="typeViewFocused|typeWindowContentChanged"
android: accessibilityFeedbackType="feedbackGeneric"
android: notificationTimeout="200"
android: accessibilityFlags="flagReportViewIds"
android: canRetrieveWindowContent="true"
android: canRequestEnhancedWebAccessibility="true"
xmlns: andro />

À partir de là, nous pouvons glaner les informations suivantes: Le service d'accessibilité de LastPass demande la surveillance de deux types d'événements: TYPE_VIEW_FOCUSED et TYPE_WINDOW_CONTENT_CHANGED. Il le fait parce qu'il a besoin de savoir quand le contenu d'une application/page Web change ou devient actif, puis il récupère le contenu actuel de la fenêtre pour rechercher les champs de saisie de mot de passe. Mais comme le service effectue constamment cette opération sur deux événements d'accessibilité qui se déclenchent extrêmement fréquemment, cela entraîne un décalage. Pour une discussion plus approfondie sur la manière dont les services d'accessibilité peuvent provoquer des décalages, je vous renvoie à mon article précédent sur le sujet.


Lecture recommandée: "Travailler comme prévu" - Une exploration du décalage d'accessibilité d'Android


Android O fait d'une pierre deux coups

Avant Android O, les développeurs de gestionnaires de mots de passe ne pouvaient pas faire grand-chose pour atténuer ce décalage. En effet, les gestionnaires de mots de passe n'avaient aucun moyen de savoir quand un champ de saisie automatique était affiché à l'écran sans permettre à un service d'accessibilité de les surveiller en permanence. Mais grâce au nouveau framework de remplissage automatique d'Android O, ces gestionnaires de mots de passe peuvent désormais supprimer leurs services d'accessibilité. Au lieu de cela, les applications qui ont elles-mêmes besoin de saisir des données demanderont à Autofill Framework d'appeler le service de saisie automatique qui enverra ensuite les données. Grâce à ce nouveau cadre, non seulement la saisie du mot de passe deviendra beaucoup plus facile pour les utilisateurs puisqu'ils n'auront plus besoin de s'appuyer sur un méthode de saisie supplémentaire, mais le décalage associé à l'activation des services d'accessibilité des gestionnaires de mots de passe sera une chose du passé.

Je sais que pour certains d'entre vous, ce fait n'est peut-être pas révolutionnaire, mais j'ai pensé que, étant donné que la discussion autour du service d'accessibilité était si muette, ce sujet méritait peut-être d'être relancé. Juste quelques pistes de réflexion ce week-end !


Que pensez-vous du nouveau framework de remplissage automatique d'Android O? Faites-le nous savoir dans les commentaires ci-dessous !