Ori.livneh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/55448


Change subject: (Bug 46474) Work around noncompliant IE9 behavior
......................................................................

(Bug 46474) Work around noncompliant IE9 behavior

The specs from the W3C specify that "if there is no previous document, this
attribute [i.e., navigationStart] must return the same value as fetchStart."
IE9 incorrectly sets the value to 0 when there is no previous document. As a
result, the values for 'loading' and 'sending' are left as epoch timestamps
(rather than time deltas). These overflow INT in MySQL, leaving us with a bunch
of 2147483647 values (equal to max. int).

Change-Id: I31ddc1b26923891899cb2e7614f4040fc0d36ecf
Solution: explicitly check if navigationStart is 0; use fetchStart if it is.
---
M modules/ext.navigationTiming.js
1 file changed, 4 insertions(+), 3 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/NavigationTiming 
refs/changes/48/55448/1

diff --git a/modules/ext.navigationTiming.js b/modules/ext.navigationTiming.js
index 8a3ef5c..6ca9b10 100644
--- a/modules/ext.navigationTiming.js
+++ b/modules/ext.navigationTiming.js
@@ -19,7 +19,8 @@
        }
 
        function emitTiming() {
-               var event = {
+               var navStart = timing.navigationStart || timing.fetchStart,
+                       event = {
                                userAgent : navigator.userAgent,
                                isHttps   : location.protocol === 'https:',
                                isAnon    : mw.config.get( 'wgUserId' ) === null
@@ -37,11 +38,11 @@
                $.each( {
                        dnsLookup  : timing.domainLookupEnd - 
timing.domainLookupStart,
                        connecting : timing.connectEnd - timing.connectStart,
-                       sending    : timing.fetchStart - timing.navigationStart,
+                       sending    : timing.fetchStart - navStart,
                        waiting    : timing.responseStart - timing.requestStart,
                        receiving  : timing.responseEnd - timing.responseStart,
                        rendering  : timing.loadEventEnd - timing.responseEnd,
-                       loading    : timing.loadEventStart - 
timing.navigationStart
+                       loading    : timing.loadEventStart - navStart
                }, function ( k, v ) {
                        if ( $.isNumeric( v ) && v > 0 ) {
                                event[ k ] = v;

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I31ddc1b26923891899cb2e7614f4040fc0d36ecf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/NavigationTiming
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>

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

Reply via email to