Contact emailsay...@chromium.org, rei...@chromium.org
The Idle Detection API notifies developers when a user is idle, indicating such things as lack of interaction with the keyboard, mouse, screen, activation of a screensaver, locking of the screen, or moving to a different screen. A developer-defined threshold triggers the notification.
TAG review statusIssues addressed
Interoperability and Compatibility
The IdleDetector interface complements existing indicators of user activity such as mouse and keyboard events, and the page visibility state. Sites using an IdleDetector should function correctly in browsers which do not implement it (as they do today) but with all the known problems documented in the motivations for introducing this API.Gecko
: No signal (https://github.com/mozilla/standards-positions/issues/453
: Negative (https://lists.webkit.org/pipermail/webkit-dev/2020-October/031565.html
: Positive (https://discourse.wicg.io/t/idle-detection-api/2959
This API uses asynchronous events and Promise-returning functions to allow Chrome to maintain good performance and future-proof the design.
https://github.com/dropbox/idle.ts provides a polyfill for a version of this API which only uses input events that are available to the page. The benefit of this API comes from the (limited) information it provides about user input events that are not available to the page. It is possible that this polyfill could be updated to use this API to provide a more complete picture of user presence and activity.
Developer outreach has already begun, including a post about the feature on web.dev.
The security and privacy risks are discussed in the explainer and draft specification.
Goals for experimentation
The goal of this experiment is to validate that the API provides an improved user experience. Interested developers have been able to build prototypes while this feature has been available behind a flag. The purpose of the trial is to determine whether using this API provides a measurably better user experience.
The experiment will be extended for 3 additional milestones, continuing through the stable release of Chrome 91 and ending a week before the stable release of Chrome 94.
Reason this experiment is being extended
Our web developer partner was unable to launch an experiment using this API immediately after the release of Chrome 88 to stable channel. That experiment is now running and requires the API to be available for a few more milestones in order to produce useful data.
Ongoing technical constraints
An option to override the Idle Detection state for testing purposes is available through Chrome DevTools in the Sensors panel.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?No, this feature is supported on all platforms other than Android WebView. Adding support for this final platform requires plumbing a new permission type through the WebView API.
Link to entry on the Chrome Platform Statushttps://www.chromestatus.com/feature/4590256452009984
Links to previous Intent discussionsIntent to prototype: https://groups.google.com/a/chromium.org/d/msg/blink-dev/OuwzBmH02M4/5ChXdXZQBwAJIntent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/9OwINXHzbUE/m/LOcbtEjAAAAJIntent to Continue Experimenting: https://groups.google.com/a/chromium.org/g/blink-dev/c/tkdwZYCI4EE/m/L6-Gw2-kCAAJ