use visibilitychange events to suspend/resume cloud push fix #4