WebAPI/NetworkAPI

From MozillaWiki
Jump to: navigation, search

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