-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CI 3890] switch beforeunload with visibilitychange #346
base: master
Are you sure you want to change the base?
[CI 3890] switch beforeunload with visibilitychange #346
Conversation
@@ -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) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happened/happens when beforeunload/visibilitychange registers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
beforeunload/visibilitychange changes the pageUnloading
value and if the page is unloading than we wouldn't send events and wait for the next page to send those events from the
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for working on this change!
The changes make sense to me, but I also left a comment around the visibilitychange
listener. Let me know what you think. Would love to @esezen's thought as well since he mentioned the hidden change previously.
It seems like the following tests are failing as well. 🤔

helpers.addEventListener('beforeunload', () => { | ||
this.pageUnloading = true; | ||
helpers.addEventListener('visibilitychange', () => { | ||
if (document.visibilityState === 'hidden') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
visibilityState=hidden
based on what MDN says can mean the "document is either a background tab or part of a minimized window, or the OS screen lock is active".
Would it make sense to add in logic to add in some additional logic here to call send()
if the page becomes visible again? 🤔
if (document.visibilityState === 'visibile') {
this.send();
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry I somehow completely missed the notification for this one. I don't see any reason not to. Good call
No description provided.