WebAPI/NetworkAPI

From MozillaWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Device API specification

The DAP WG (W3C) has a specification sharing this proposal goal [1]. Our proposal might or might not look like it for the moment. Suggestions and comments will be submitted to the Device Status Task Force [2].

[1] http://dev.w3.org/2009/dap/netinfo/
[2] http://lists.w3.org/Archives/Public/public-device-status/

Status

The proposed specification doesn't have a working implementation yet. The implementation will be done in http://bugzil.la/677166.

Demo

TBD

Proposed API

 partial interface Navigator {
   readonly attribute Connection connection;
 };
   
 interface Connection
 {
   // Estimated bandwidth (in MB/s) of the current connection.
   readonly attribute double  bandwidth;
 
   // Return whether the current connection is metered (like quota limitation, pay per use, etc.).
   readonly attribute boolean metered;
 
   // A 'change' event is fired when one of the previous attributes is changed.
            attribute Function onchange;
 }

Notes

  • .bandwidth should be an estimated value of the download speed. That could be based on pure empirical observations (like 3G is usually around 300kB/s) or very precise value. However, this is an implementation detail and the consumer of this API shouldn't care about how the estimation is made.
  • .metered reflects whether the current connection bandwidth is metered in the sense of there is a pay-per-use policy or a periodic quota. This is typical for 2G and 3G connections. Firefox will implement this by asking the user.
  • There is no .type because we believe that might be abused: it is error-prone and not future-proof. It could be added later if there is a strong need for it.

Considered changes