From d4b41e64bfb123aff57f54ad4c5f6157367d7ce3 Mon Sep 17 00:00:00 2001 From: Michael Geers Date: Mon, 2 Mar 2026 08:45:47 +0100 Subject: [PATCH] Safari: ensure ws reconnect on reopen (#27849) --- assets/js/views/App.vue | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/assets/js/views/App.vue b/assets/js/views/App.vue index 3b2cd5029..8ebc5a2b3 100644 --- a/assets/js/views/App.vue +++ b/assets/js/views/App.vue @@ -111,11 +111,13 @@ export default defineComponent({ mounted() { this.connect(); document.addEventListener("visibilitychange", this.pageVisibilityChanged, false); + window.addEventListener("pageshow", this.pageShowHandler); }, unmounted() { this.disconnect(); this.clearReconnectTimeout(); document.removeEventListener("visibilitychange", this.pageVisibilityChanged, false); + window.removeEventListener("pageshow", this.pageShowHandler); }, methods: { clearReconnectTimeout() { @@ -123,11 +125,18 @@ export default defineComponent({ window.clearTimeout(this.reconnectTimeout); } }, - pageVisibilityChanged() { - if (document.hidden) { + pageShowHandler(event: PageTransitionEvent) { + if (event.persisted) { this.clearReconnectTimeout(); this.disconnect(); - } else { + this.connect(); + } + }, + pageVisibilityChanged() { + // disconnect in any case to ensure fresh connection + this.clearReconnectTimeout(); + this.disconnect(); + if (!document.hidden) { this.connect(); } },