Privacy/Reviews/OSIdleAPI
Document Overview
Feature/Product: | WebAPI - OS Idle API |
Projected Feature Freeze Date: | (tbd) |
Product Champions: | Bonnie Surender |
Privacy Champions: | (the privacy Friend you're working with) |
Security Contact: | Curtis Koenig |
Document State: | [ON TRACK] needs more info |
Timeline:
Architectural Overview: | In progress |
Recommendation Meeting: | n/a |
Review Complete ETA: | tbd |
Architecture
In this section, the product's architecture is described. Any individual components or actors are identified, their "knowledge" or what data they store is identified, and data flow between components and external entities is described.
The main objective of this feature/product is: to inform general web content within tabs and windows of the user's idle and active state.
Design Documents: https://bugzilla.mozilla.org/show_bug.cgi?id=715041#c21
Components
Describe any major components in the system and how they interact. Also include any third-party APIs (those Mozilla does not control) and what type of data is sent or received via those APIs.
- User
- Web browser/Firefox
- Websites
- Websites loaded onto the browser tab within the browswer window or the window itself.
User
The user interacts with the web browser and the web page/ web site.
Stored Data:
What | Where |
---|---|
None | None |
Communication with Web browser
Direction | Message | Data | Notes |
---|---|---|---|
In: | Notifications, Alerts, Other forms of notifying the user. | ||
Out: | Mouse, Keyboard, Touch events. | Data from the element that the user selects as via the mouse, keyboard or touch events. |
Web broswer/ Firefox Component
The web browser that renders the web page/ web site.
Stored Data:
There is no stored data.
What | Where |
---|---|
None | None |
Communication with User
Direction | Message | Data | Notes |
---|---|---|---|
In: | Mouse, Keyboard, Touch events, Menu Selection, etc. | Data from the element that the user selects as via the mouse, keyboard or touch events. | |
Out: | Notifications, Alerts, etc. | Information contained in the alerts, notifications and the web page. |
Websites
- Websites loaded onto a web browser.
- Prevent the web page from knowing the real timing of when the user goes idle. A fuzz factor/time has been added to the 'idle' and 'active' notifications to mitigate this risk.
- When the user stops using the device, i.e. becomes 'idle' the web page is notified after the requested idle time registered with the Idle API, has elapsed plus a random fuzz time.
- When the user starts using the device again, i.e. becomes 'active' the web page is notified after a fuzz amount of time.
- The user 'idle' and 'active' status is platform specific.
- On platforms that do NOT support obtaining system idle time, if the user stops using the web browser but continues to use another application currently executing on the device then the web page is specifically notified that the user is idle despite the fact that the user is using another application. E.g. Linux, Android.
- The web page is notified immediately that the user is 'active' only when the user specifically interacts with the web page.
- On platforms that do support obtaining system idle time such as Windows, the web page is notified of user idle status only when the user is completely away from the device.
- The web page is notified that the user is 'active' with a fuzz time added when the user interacts with any application executing on the device. The user is not directly interacting with the web page.
Stored Data:
There is no stored data.
What | Where |
---|---|
None | None |
Communication with Idle API
Direction | Message | Data | Notes |
---|---|---|---|
In: | Register with the Idle API for user 'idle' and user 'active' status. | Time in seconds after which to recieve an idle notification. Callback function when the user is idle for the requested time. Callback function when the user is active. | Web pages can use the idle state knowledge for malicious purposes. A fuzz time has been added to both the idle and active nofications to prevent this so this. |
Out: | Idle callback function. Active callback function. | Data, knowledge that the user is currently idle or active. | A fuzz time has been added to each notification to prevent web pages from using the user state knowledge in a malicious manner. |
User Data Risk Minimization
In this section, the privacy champion will identify areas of user data risk and recommendations for minimizing the risk.
Alignment with Privacy Operating Principles
In this section, the privacy champion will identify how the feature lines up with Mozilla's privacy operating principles.
See Also: Privacy/Roadmap_2011#Operating_Principles:
Principle: Transparency / No Surprises
(How the feature addresses this)
Recommendations: (what can be improved)
Principle: Real Choice
Recommendations:
Principle: Sensible Defaults
Recommendations:
Principle: Limited Data
Recommendations:
Follow-up Tasks and tracking
What | Who | Bug | Details |
---|---|---|---|
[NEW] Initial Overview Discussion | Bonnie Surender, Jonas Sicking | Meeting time TBD |