Un par de artículos en The Guardian citan un trabajo de unos investigadores del Inria Privatics en Francia y el KU Leuven / iMinds de Bélgica titulado The leaking battery: A privacy analysis of the HTML5 Battery Status API [PDF].
Resumido en pocas palabras y sin entrar en muchos tecnicismos esto funcionaría así: existe una forma en la que una página web de cualquier servidor puede consultar al navegador web del usuario el estado de la batería del equipo sobre el que está funcionando. Esto comenzó a plantearse en 2012 como una forma de ahorrar energía a los usuarios móviles: si la página detectaba que quedaba poca batería podría eliminar ciertas «características de alto consumo» (como animaciones, vídeo, etcétera) mejorando así la experiencia en general. Ya en 2015 esto estaba implementado tanto en Firefox como Chrome y Opera.
Resulta que entre los datos que puede obtener la página está el «nivel de batería» como un número de coma flotante con dos decimales de precisión aunque originalmente es más preciso (hasta 16 decimales). Utilizando diversas fórmulas se puede calcular el porcentaje a mostrar (ej. 98%) pero también en ocasiones (ejemplo: Firefox para Linux) la capacidad total de la batería. Un valor más o menos estándar entre aparatos iguales pero que también varía de uno a otro con el uso (las baterías más viejas se pueden recargar menos). Obteniendo varias lecturas se pueden llegar a calcular los diversos valores, derivando de ellos el tiempo en segundos que tardará en descargarse totalmente, …