What is the use case for the Battery Status API [0], navigator.getBattery()? Can we remove the Battery API or perhaps restrict it to non-web content like browser extensions or privileged web apps? Chrome and Firefox support the Battery API, but neither Edge nor WebKit have signaled an intent to implement it [3].

In theory, web developers would use the Battery API to save document data before the battery dies, to ease off heavy computation when the battery is low, or to implement the Firefox OS settings app. The real world use cases, however, seem to be fingerprinting users [1] and inflating Uber prices for desperate users with low batteries [2]. Can anyone point to a real website using the Battery API for a legitimate purpose?

The BATTERY_STATUS_COUNT probe [4] reports over 200M battery API calls for Firefox 49. The USE_COUNTER2_DEPRECATED_NavigatorBattery_PAGE probe [5] reports that 6% of web pages use the Battery API, IIUC. That seems surprisingly high given the few legitimate use cases. (Could that counter be inadvertently triggered by web content that simply enumerates the navigator object's properties without actually calling navigator.getBattery()?)

I have a patch that makes the Battery API chrome-only and fixes the web-platform tests.

[0] https://developer.mozilla.org/en-US/docs/Web/API/Battery_Status_API
[1] http://randomwalker.info/publications/OpenWPM_1_million_site_tracking_measurement.pdf
[2] http://www.forbes.com/sites/amitchowdhry/2016/05/25/uber-low-battery/
[3] https://www.chromestatus.com/feature/4537134732017664
[4] https://mzl.la/2eDFvbR
[5] https://mzl.la/2eDG4Cj
[6] https://mzl.la/2eKcZ6d
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to