API видимости не работает после window.open в Chrome

Пытался использовать API видимости, но у ребенка не работает. Минимальный пример для воспроизведения:

<script>

document.onvisibilitychange = () => {
      console.log(document.visibilityState);
    }

if (!window.opener) {
    window.open(window.location.href, '_blank');
}

</script>

После этого родительское окно по-прежнему печатает "видимый" - "скрытый", но дочернее окно печатает "скрыто" только один раз при обновлении.

Он отлично работает в последней версии браузера Opera, но не в Chrome.

Если честно, когда я пришел к этому минимальному воспроизведению, я застрял и понятия не имел, куда копать. Есть идеи, что может быть не так?

1 ответ

Я тоже наткнулся на этот вопрос. Я думаю, что эта ошибка появилась в Chrome 84. Я тестировал ее в версии 83, и она работала, как ожидалось. Текущая версия Canary-Build (версия 86) также работает.

Другие вопросы по тегам