Feedback on "The Network Information API"

Hi,

Just came across this spec; looks interesting. I'm not sure of its status, so please be gentle :)

* The 'bandwidth' attribute has a potential value of 'offline'. What does this mean, technically? I fear that different implementations will have different interpretations of this, reducing its value. E.g., one implementation might decide that offline is "the last four TCP connection attempts failed" while another might be "the user selected the 'offline' button." Yet another might be "when I don't have a route to the Internet" or "when the primary interface is down." Likewise, how does the browser know it's online again? How often does it check?

* 'bandwidth' also can indicate "an estimation of the current bandwidth in MB/s…" Again, how does this estimation take place? Would it be an active test for capacity (which can have undesirable side effects) or a passive, configured value from the OS / environment? I know that it's attractive to abstract this out and let implementations decide, but the utility of doing so is going to be very low.

* Likewise, I wonder whether 'metered' will be able to be accurate, as it requires a fair amount of coordination between the network provider and the browser. Again, the semantics are quite vague.

* On the other hand, the physical connection *type* is interesting; e.g., ethernet / 802.11[a,b,g,n] / GPRS / EDGE / HSPA / HSPA+ / LTE / WIMAX / etc. This would require a registry of some sort, but it'd be very useful information. 

* If it could be made available to the client (which might be quite difficult for many deployments), latency and packet loss information would be fantastic. E.g., for the latter, a per-origin counters, perhaps inside a sliding window.

* If you wanted to throw the kitchen sink in, you could make visible things like "is IPSEC in use?" and "what's my local MSS"? 

Hope this helps...

--
Mark Nottingham
http://www.mnot.net/

Received on Wednesday, 26 September 2012 21:15:19 UTC