Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Zhang <waikatozhang@gmail.com>2021-09-22 08:48:59 +0300
committerGitHub <noreply@github.com>2021-09-22 08:48:59 +0300
commite39f2ee65befc883dac4c06b0232f4ead485ac74 (patch)
tree161277daa58787929f149d89a954b0853d1b86c4 /js/piwik.js
parent0adaea428ed8b8b83f08c645ecba3eed4938e2fa (diff)
add heartbeat ping tab tracking (#18028)
Diffstat (limited to 'js/piwik.js')
-rw-r--r--js/piwik.js13
1 files changed, 12 insertions, 1 deletions
diff --git a/js/piwik.js b/js/piwik.js
index 500d003094..e280517eb2 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -112,7 +112,7 @@
"", "\b", "\t", "\n", "\f", "\r", "\"", "\\", apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, lastIndex, length, parse, prototype, push, replace,
sort, slice, stringify, test, toJSON, toString, valueOf, objectToJSON, addTracker, removeAllAsyncTrackersButFirst,
- optUserOut, forgetUserOptOut, isUserOptedOut, withCredentials
+ optUserOut, forgetUserOptOut, isUserOptedOut, withCredentials, visibilityState
*/
/*global _paq:true */
/*members push */
@@ -2894,6 +2894,14 @@ if (typeof window.Matomo !== 'object') {
}
}
+ function heartBeatOnVisible() {
+ if (documentAlias.visibilityState === 'hidden' && hadWindowMinimalFocusToConsiderViewed()) {
+ heartBeatPingIfActivityAlias();
+ } else if (documentAlias.visibilityState === 'visible') {
+ timeWindowLastFocused = new Date().getTime();
+ }
+ }
+
/*
* Setup event handlers and timeout for initial heart beat.
*/
@@ -2908,6 +2916,7 @@ if (typeof window.Matomo !== 'object') {
addEventListener(windowAlias, 'focus', heartBeatOnFocus);
addEventListener(windowAlias, 'blur', heartBeatOnBlur);
+ addEventListener(windowAlias, 'visibilitychange', heartBeatOnVisible);
// when using multiple trackers then we need to add this event for each tracker
coreHeartBeatCounter++;
@@ -6267,9 +6276,11 @@ if (typeof window.Matomo !== 'object') {
if (windowAlias.removeEventListener) {
windowAlias.removeEventListener('focus', heartBeatOnFocus);
windowAlias.removeEventListener('blur', heartBeatOnBlur);
+ windowAlias.removeEventListener('visibilitychange', heartBeatOnVisible);
} else if (windowAlias.detachEvent) {
windowAlias.detachEvent('onfocus', heartBeatOnFocus);
windowAlias.detachEvent('onblur', heartBeatOnBlur);
+ windowAlias.removeEventListener('visibilitychange', heartBeatOnVisible);
}
}