Ahora hay un page visibility API para esto, y que está bien soportado por todas las versiones más recientes de los principales navegadores en Windows, Mac OS X y Linux (aunque no tengo no probado realmente todos los navegadores con una parte justa del mercado de los navegadores Linux).
La API de visibilidad de página es ahora el mejor enfoque para controlar la visibilidad; las únicas advertencias son que no puede decirle qué partes de la ventana del navegador son visibles (solo que no hay nada visible o al menos una parte), y ese soporte solo ha estado presente desde 2016 en Linux, 2015 en Mac y 2014 (posiblemente antes) en Windows.
Mientras se lanzaba la compatibilidad, un falso negativo era raro, pero se producían falsos positivos en algunas plataformas; por ejemplo, en 2014, OSX presentó versiones en miniatura de aplicaciones minimizadas en el dock, y como resultado de la forma en que esto se hizo, una aplicación no pudo determinar fácilmente si se minimizó, ya que aún se le pidió que pintara la pantalla. Linux tuvo complicaciones al saber si su aplicación estaba en un espacio de trabajo no visible, y si otra ventana estaba ocluyéndola.
El primer borrador público se publicó en junio de 2011 y alcanzó el estado de "recomendación" en mayo de 2013. En marzo de 2014, las versiones más recientes de todos los navegadores principales de Windows tenían soporte completo para el estándar. El soporte completo para todos los principales navegadores de Mac se logró en abril de 2015. Se logró el soporte de Linux para al menos Chromium en agosto de 2016 (cuando se cerró Chromium issue 293128); aunque no los he probado, espero que otros navegadores Linux hayan seguido el mismo ritmo, ya que la parte más difícil del trabajo parece haber sido ajustar el OS/GUI para sacar contratos y API para saber si su aplicación de escritorio es visible.
decir: * Si se abre una ventana emergente CHAT * ? –
Piensa que estás usando gmail, leyendo correos electrónicos, etc. Y recibiste un mensaje, en ese caso, gmail no muestra ninguna notificación de escritorio (porque la página está en primer plano) Pero si estás navegando en otros sitios mientras gmail está todavía abierto, estás advertido por una notificación de escritorio. ¿Cómo entiende Gmail su estado? –