Four properties, one answer
Switch tabs, click into another app or move the pointer off the page and most sites can tell. Anti-Blur answers document.hasFocus(), document.hidden and visibilityState as though you never left, and never delivers the blur and visibilitychange events that would say otherwise.