Privacy/Reviews/OSIdleAPI: Difference between revisions

Jump to navigation Jump to search
Line 37: Line 37:
== Components  ==
== 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.
This feature is a new API in Firefox that web sites may interact withThe API shares information about users' interactions through a set of callbacks registered by websites.


* User
* Web browser/Firefox
* Web browser/Firefox
* Websites
* Websites
** Websites loaded onto the browser tab within the browswer window or the window itself.
** Websites loaded onto the browser tab within the browswer window or the window itself.


=== User ===
Users are a component here (they communicate with the browser) but interactions between browser and user are not changed by this feature.


The user interacts with the web browser and the web page/ web site.
=== Firefox  ===


'''Stored Data:'''  
* 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.
 
How it works: 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.
{| class="wikitable"
|-
! What
! Where
|-
| None
| None
|}


'''Communication with Web browser'''  
''TODO: Document what the "fuzz amount" is (500ms?) for both 'active' notifications as well as 'idle' notifications.  Are they the same, or are they different?''


{| class="wikitable"
|-
! 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.
{| class="wikitable"
|-
! What
! Where
|-
| None
| None
|}
'''Communication with User'''
{| class="wikitable"
|-
! 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.
* 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.  
** 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.  
Line 142: Line 72:
|}
|}


'''Communication with Idle API'''  
'''Communication with websites via Idle API'''  


{| class="wikitable"
{| class="wikitable"
Line 162: Line 92:
|}
|}


''TODO: what is the actual API (messages and parameters)?  We want to see the function signature and the types of data (or sample data) passed in.  Example: see [[Privacy/Reviews/BrowserID.org#Implementation_Server]]''




canmove, Confirmed users
1,537

edits

Navigation menu