Jdlrobson has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/336670 )

Change subject: Track document visibility in reading depth schema
......................................................................

Track document visibility in reading depth schema

When document becomes hidden/visible calculate milliseconds paused
and subtract this from totalLength upon logging pageUnloaded

Bug: T155639
Change-Id: I762ec3fc91decf3cffa869dbd783faf62f01329a
---
M modules/ext.wikimediaEvents.readingDepth.js
1 file changed, 28 insertions(+), 1 deletion(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikimediaEvents 
refs/changes/70/336670/1

diff --git a/modules/ext.wikimediaEvents.readingDepth.js 
b/modules/ext.wikimediaEvents.readingDepth.js
index 4f716fe..b28ab2e 100644
--- a/modules/ext.wikimediaEvents.readingDepth.js
+++ b/modules/ext.wikimediaEvents.readingDepth.js
@@ -8,11 +8,32 @@
  */
 ( function ( $, mw, conf, user, exp ) {
 
-       var msPaused = 0,
+       var pausedAt,
+               msPaused = 0,
                perf = window.performance,
                // This copies logic in mw.now for consistency.
                // if not defined no events will be logged.
                from = perf && perf.timing && perf.timing.navigationStart;
+
+       /**
+        * Pause the timer of the user's session based on information that they
+        * have navigated away from the page.
+        */
+       function pause() {
+               if ( !pausedAt ) {
+                       pausedAt = mw.now();
+               }
+       }
+
+       /**
+        * If paused resume the time of the user's session
+        */
+       function resume() {
+               if ( pausedAt ) {
+                       msPaused +=  mw.now() - pausedAt;
+                       pausedAt = null;
+               }
+       }
 
        /**
        * Log an event to the Schema:ReadingDepth
@@ -85,6 +106,12 @@
        if ( isEnabled() ) {
                $( window ).on( 'beforeunload', function () {
                        logEvent( 'pageUnloaded' );
+               } ).on( 'visibilitychange', function () {
+                       if ( document.hidden ) {
+                               pause();
+                       } else {
+                               resume();
+                       }
                } );
                logEvent( 'pageLoaded' );
        }

-- 
To view, visit https://gerrit.wikimedia.org/r/336670
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I762ec3fc91decf3cffa869dbd783faf62f01329a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikimediaEvents
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to