diff options
Diffstat (limited to 'js/piwik.js')
-rw-r--r-- | js/piwik.js | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/js/piwik.js b/js/piwik.js index f3183c67a5..e8fa4b4760 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -3472,7 +3472,11 @@ if (typeof window.Matomo !== 'object') { return request; } - var performanceData = (typeof performanceAlias.getEntriesByType === 'function') && performanceAlias.getEntriesByType('navigation') ? performanceAlias.getEntriesByType('navigation')[0] : performanceAlias.timing; + var performanceData = (typeof performanceAlias.timing === 'object') && performanceAlias.timing ? performanceAlias.timing : undefined; + + if (!performanceData) { + performanceData = (typeof performanceAlias.getEntriesByType === 'function') && performanceAlias.getEntriesByType('navigation') ? performanceAlias.getEntriesByType('navigation')[0] : undefined; + } if (!performanceData) { return request; @@ -3508,13 +3512,24 @@ if (typeof window.Matomo !== 'object') { timings += '&pf_tfr=' + Math.round(performanceData.responseEnd - performanceData.responseStart); } - if (performanceData.domInteractive && performanceData.domLoading) { + if (isDefined(performanceData.domLoading)) { + if (performanceData.domInteractive && performanceData.domLoading) { - if (performanceData.domInteractive < performanceData.domLoading) { - return; + if (performanceData.domInteractive < performanceData.domLoading) { + return; + } + + timings += '&pf_dm1=' + Math.round(performanceData.domInteractive - performanceData.domLoading); } + } else { + if (performanceData.domInteractive && performanceData.responseEnd) { + + if (performanceData.domInteractive < performanceData.responseEnd) { + return; + } - timings += '&pf_dm1=' + Math.round(performanceData.domInteractive - performanceData.domLoading); + timings += '&pf_dm1=' + Math.round(performanceData.domInteractive - performanceData.responseEnd); + } } if (performanceData.domComplete && performanceData.domInteractive) { |