SystemInfo

Who is the primary contact for this API?

Intel OTC team

hongbo.min@intel.com, ningxin.hu@intel.comjames.p.ketrenos@intel.com


Overview

This API provides extension with a set of interfaces to get hardware devices information, such as CPU usage, battery status, disk storage and network state etc.

Use cases

Chrome extension (including hosted apps) can determine some speci

fic actions according to the device status. The followings are some typical usage scenarios but not limited to these:

1) A chrome extension can present device information to user and set up asynchronous notification changes, like low battery or disk storage etc.

2) A chrome extension running background checks the current battery changes regularly. If the battery is left 15%, it will prompt user to charge before executing it.

3) A chrome extension wants to download some network resources only in WIFI environment, not in 3G for saving money. It needs to check whether the wifi network is on.


Do you know anyone else, internal or external, that is also interested in this API?

According to our investigation, the industry has also some requirements for SystemInfo API:

  • W3C working group had ever a draft of SystemInfo API athttp://dev.w3.org/2009/dap/system-info/ , but it is currently not pursing the approach outlined in that draft. The working group suggests not to reference it or use it as the basic of implementation.
  • Tizen Web API has an implementation of SystemInfo API but it is mainly for mobile platform and not suitable for chrome. For example, it has no memory storage type and wired network support. This API definition fills up the gap exactly. Referencehttps://developer.tizen.org/help/topic/org.tizen.help.web.api.device/tizen/systeminfo.html for Tizen SystemInfo API spec.
  • A new working group is working on defining system level APIs for web application that integrates with a host operating system. The SystemInfo API is indeed covered by device capabilities API, but currently only Tizen SystemInfo API is an example. Reference http://darobin.github.com/system-level-apis-charter/

Could this API be part of the web platform?

Maybe.

Do you expect this API to be fairly stable? 

This API is new for Chrome and won't break any extension when updating Chrome. 

The API exposed for SystemInfo are less likely to change because the system properties(Power, CPU, Storage and Network) are general for every devices nowadays.

 

How might it be extended or changed in the future?

If a new system property is required to add, correspondingly a new API function should be added into chrome. 


List every UI surface belonging to or potentially affected by your API:

None.


How could this API be abused?All system properties queried from this API is read-only, it says, this API doesn't change system property at all. The only thing that an extension writer is the asynchronous notification.

The notification callback may consume lots of resources if the option for listening a system property changes is not set properly.

 

A potential issue in this API is related to the privacy. It provides information that may be sufficient for an application to create a unique fingerprint for a specific device. Additionally, it allows an application to monitor and track specific properties related to the wireless network configuration.  

 

Could a consumer of your API cause any permanent change to the user’s system using your API that would not be reversed when that consumer is removed from the system?

No.

How would you implement your desired features if this API didn't exist?

Currently, no other alternative can be used to implement this API.

Draft API spec

Comments