no need to watch `visibilitychange` in our case.