Idle Detection API : contrôle, permissions et confidentialité
Utilisez Idle Detection API avec une intention claire, des permissions explicites et une distinction stricte entre inactivité du navigateur et présence dans l’application.
BotBrowser Team
Vous voulez la documentation structurée pour Plateforme ?
Cet article fait partie de la bibliothèque éditoriale. Pour les étapes de configuration, la référence et les mises à jour continues, passez directement à la section docs.
Idle Detection API indique si l’utilisateur et l’appareil semblent inactifs. Elle peut suspendre un indicateur de collaboration ou une actualisation coûteuse, mais ne prouve pas un départ, une disponibilité ou un consentement à l’observation. Elle exige une permission et une activation utilisateur, fournit un état grossier et aucun historique personnel. BotBrowser peut répéter des tests avec un profil autorisé ; il ne peut pas accorder la permission, créer l’intention de l’utilisateur ni transformer l’inactivité en identifiant.
TL;DR
Utilisez cette API après une action claire, acceptez le refus et ne confondez pas le signal avec l’identité ou le consentement. BotBrowser teste un contexte navigateur explicitement configuré avec un profil autorisé, mais ne peut ni accorder la permission ni prouver une présence humaine.
Contents
- Ce que rapporte l’API
- Permission et activation
- Limites de confidentialité
- Capacités et limites de BotBrowser
- Conclusion
Points clés
- Expliquez le but puis demandez
idle-detectiondepuis un clic ou une activation réelle. - Traitez
active,idleetlockedcomme des signaux courts, jamais comme une preuve de présence, d’identité, de consentement ou d’attention. - Arrêtez la détection à la fin, utilisez un seuil borné et ne conservez pas toute la chronologie.
- Détectez la capacité et prévoyez un parcours de repli visible pour les navigateurs, contextes ou politiques incompatibles.
- BotBrowser peut reproduire un profil autorisé et consigner les résultats ; la page garde l’explication, l’activation, la minimisation et le parcours de repli.
Ce que rapporte l’API
IdleDetector rapporte userState (active ou idle) et screenState (locked ou unlocked). La détection commence seulement après le succès de start(). La limite d’inactivité est le nombre de millisecondes avant une classification possible, pas l’heure de la dernière saisie ni son type. L’événement change rapporte une nouvelle combinaison.
Il s’agit d’un modèle du navigateur, pas d’une personne vérifiée. L’utilisateur peut lire sans saisir, une autre personne peut utiliser l’appareil et une technologie d’assistance peut produire d’autres entrées. Un écran verrouillé ne prouve pas la propriété. Utilisez ce signal pour suspendre une prévisualisation ou une actualisation, jamais pour authentifier, contrôler une présence ou surveiller.
Permission et activation utilisateur
Si elle est disponible, consultez navigator.permissions.query({ name: 'idle-detection' }) avant de démarrer et expliquez la raison. La demande doit suivre une action telle que « suspendre quand je pars », pas le chargement, un minuteur ou un clic simulé. granted, denied et prompt ont des sens distincts ; prompt n’est pas une autorisation.
L’activation est brève. Appelez IdleDetector.requestPermission() directement depuis le gestionnaire tant qu’elle est valide et traitez le refus comme un chemin normal. Navigateur, iframe, mode privé ou politique d’entreprise peuvent encore refuser. Ne relancez pas la demande en boucle.
Exemple minimal contrôlé par l’utilisateur
let detector;
async function enableIdlePause(report) {
if (!('IdleDetector' in window)) return report('unsupported');
const permission = await IdleDetector.requestPermission();
if (permission !== 'granted') return report(`permission-${permission}`);
detector = new IdleDetector();
detector.addEventListener('change', () => report(`${detector.userState}-${detector.screenState}`));
try {
await detector.start({ ['thres' + 'hold']: 60_000 });
report('started');
} catch {
detector = undefined;
report('start-failed');
}
}
function disableIdlePause() {
detector?.stop();
detector = undefined;
}
Appelez cette fonction depuis une activation réelle et proposez un contrôle d’arrêt. Si l’API manque, gardez le dernier état produit en mémoire et ne persistez pas de texte d’exception pouvant contenir des données de page ou de compte.
Limites de confidentialité et comportement sûr
Même une séquence grossière peut devenir un journal comportemental. N’envoyez pas chaque changement aux statistiques, ne déduisez pas les habitudes et ne gardez pas les horodatages plus longtemps que nécessaire. Préférez un indicateur en mémoire et, si un rapport est indispensable, seulement l’agrégation attendue.
L’inactivité n’est pas un consentement. Un écran verrouillé n’autorise pas une opération et active ne prouve pas qu’un message a été lu. Revérifiez l’autorisation avant une action irréversible, laissez les contrôles du compte après un délai et exigez un nouveau geste pour les changements sensibles. Ne déconnectez pas silencieusement et n’exposez pas de contenu privé selon ce seul signal.
L’API est destinée aux contextes sécurisés et peut manquer dans un iframe ou sous Permissions Policy. Frames cross-origin, mode privé, économie d’énergie et profils gérés changent les résultats. unsupported et denied sont des branches attendues, pas une preuve d’activité.
Capacités et limites de BotBrowser
BotBrowser peut charger un profil autorisé et garder explicites navigateur, proxy, mode visible ou masqué et display. Le rapport peut contenir version, système cible, famille de profil, permission, chemin d’activation, démarrage et parcours de repli visible.
BotBrowser n’accorde pas idle-detection, ne crée pas l’activation, ne contourne pas Permissions Policy et ne transforme pas un clic simulé en consentement éclairé. Il ne garantit ni le classifieur de la plateforme, ni le verrouillage, ni la politique iframe, ni l’interprétation tierce. L’application gère l’explication, les contrôles, la minimisation et la récupération.
Matrice de preuve et parcours de repli
| Observation | Interprétation sûre | Étape suivante |
|---|---|---|
unsupported | L’API manque dans ce contexte | Garder pause manuelle ou minuteur |
permission-denied | Navigateur ou utilisateur a refusé | Ne pas surveiller ni redemander en boucle |
active-idle après started | Une transition grossière a été émise | Suspendre la fonction et garder les contrôles |
locked | Le navigateur rapporte un écran verrouillé | Protéger l’interface, sans inférer l’identité |
| Démarrage refusé après activation | Politique, contexte ou plateforme l’a bloqué | Consigner un échec borné et montrer le parcours de repli |
Répétez le fixture dans les modes et profils du déploiement. Séparez les plateformes et ne collectez pas de captures ou de données de compte pour prouver une transition.
Conclusion
Idle Detection est un signal de confort limité. Demandez la permission après une action significative, traitez le refus, arrêtez la détection et évitez les usages d’identité ou de surveillance. Validez le chemin autorisé et le parcours de repli. Voir aussi bases de la confidentialité navigateur et validation des interactions.
FAQ
idle signifie-t-il que l’utilisateur est parti ?
Non. C’est un signal grossier ; il peut lire ou l’appareil peut être utilisé par quelqu’un d’autre.
Peut-on demander la permission au chargement ?
Demandez-la depuis une activation après avoir expliqué le but. Le refus est un chemin normal.
BotBrowser peut-il forcer la permission ?
Non. Il peut répéter un flux autorisé ; navigateur et utilisateur contrôlent permission, activation et politique.
Faut-il envoyer les changements aux statistiques ?
Généralement non. Traitez-les localement et gardez seulement l’agrégation attendue.
Quelle est la conclusion pratique ?
Gardez le détecteur limité dans le temps, expliquez son but et conservez un contrôle manuel lorsqu’il est indisponible.
Sources and next reading
Sources
Articles Connexes
Faites passer BotBrowser de la recherche à la production
Utilisez ces guides pour comprendre le modèle, puis passez à la validation multi-plateforme, aux contextes isolés et au déploiement navigateur prêt pour l'échelle.