From 2cdf553015f0b68aec24fc7406888c0344e03864 Mon Sep 17 00:00:00 2001 From: Chris Gee Date: Thu, 24 Oct 2024 14:46:43 -0700 Subject: [PATCH 1/4] change to pagehide --- spec/mocha.helpers.js | 2 +- src/utils/request-queue.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/mocha.helpers.js b/spec/mocha.helpers.js index e3ee9060..90628f5a 100644 --- a/spec/mocha.helpers.js +++ b/spec/mocha.helpers.js @@ -21,7 +21,7 @@ const triggerResize = () => { const triggerUnload = () => { const unloadEvent = document.createEvent('Event'); - unloadEvent.initEvent('beforeunload', true, true); + unloadEvent.initEvent('pagehide', true, true); global.window.unload = () => { global.window.dispatchEvent(unloadEvent); diff --git a/src/utils/request-queue.js b/src/utils/request-queue.js index 02146c9a..cb85b4c1 100644 --- a/src/utils/request-queue.js +++ b/src/utils/request-queue.js @@ -20,7 +20,7 @@ class RequestQueue { : false; // Defaults to 'false' // Mark if page environment is unloading - helpers.addEventListener('beforeunload', () => { + helpers.addEventListener('pagehide', () => { this.pageUnloading = true; }); From fc0c47d48ca4d83060c154fe1f843b0a653a7719 Mon Sep 17 00:00:00 2001 From: Chris Gee Date: Thu, 24 Oct 2024 15:26:36 -0700 Subject: [PATCH 2/4] change to visibilitychange --- spec/mocha.helpers.js | 2 +- src/utils/request-queue.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/mocha.helpers.js b/spec/mocha.helpers.js index 90628f5a..165e5131 100644 --- a/spec/mocha.helpers.js +++ b/spec/mocha.helpers.js @@ -21,7 +21,7 @@ const triggerResize = () => { const triggerUnload = () => { const unloadEvent = document.createEvent('Event'); - unloadEvent.initEvent('pagehide', true, true); + unloadEvent.initEvent('visibilitychange', true, true); global.window.unload = () => { global.window.dispatchEvent(unloadEvent); diff --git a/src/utils/request-queue.js b/src/utils/request-queue.js index cb85b4c1..4ad7d6c4 100644 --- a/src/utils/request-queue.js +++ b/src/utils/request-queue.js @@ -20,7 +20,7 @@ class RequestQueue { : false; // Defaults to 'false' // Mark if page environment is unloading - helpers.addEventListener('pagehide', () => { + helpers.addEventListener('visibilitychange', () => { this.pageUnloading = true; }); From 14bed182d0dc441eb1a8ea425d3422b495184668 Mon Sep 17 00:00:00 2001 From: Chris Gee Date: Thu, 24 Oct 2024 15:27:32 -0700 Subject: [PATCH 3/4] update comment --- src/utils/request-queue.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/request-queue.js b/src/utils/request-queue.js index 4ad7d6c4..f0ea8860 100644 --- a/src/utils/request-queue.js +++ b/src/utils/request-queue.js @@ -182,7 +182,7 @@ class RequestQueue { if (this.options && this.options.trackingSendDelay === 0) { this.sendEvents(); } else { - // Defer sending of events to give beforeunload time to register (avoids race condition) + // Defer sending of events to give visibilitychange time to register (avoids race condition) setTimeout(this.sendEvents.bind(this), (this.options && this.options.trackingSendDelay) || 250); } } From cc40ecfdc303548e5b29d13acf912f91a619d6bd Mon Sep 17 00:00:00 2001 From: Chris Gee Date: Fri, 27 Dec 2024 08:24:39 -0800 Subject: [PATCH 4/4] Address comments --- src/utils/request-queue.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/utils/request-queue.js b/src/utils/request-queue.js index f0ea8860..7158d2e0 100644 --- a/src/utils/request-queue.js +++ b/src/utils/request-queue.js @@ -21,7 +21,9 @@ class RequestQueue { // Mark if page environment is unloading helpers.addEventListener('visibilitychange', () => { - this.pageUnloading = true; + if (document.visibilityState === 'hidden') { + this.pageUnloading = true; + } }); if (this.sendTrackingEvents) {