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:
Diffstat (limited to 'js/piwik.js')
-rw-r--r--js/piwik.js47
1 files changed, 40 insertions, 7 deletions
diff --git a/js/piwik.js b/js/piwik.js
index 16b7be0e56..21cd59f0e6 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -3447,37 +3447,70 @@ if (typeof window.Matomo !== 'object') {
}
function appendAvailablePerformanceMetrics(request) {
+ // note: there might be negative values because of browser bugs see https://github.com/matomo-org/matomo/pull/16516 in this case we ignore the values
+ var timings = '';
+
if (performanceAlias && performanceAlias.timing && performanceAlias
&& performanceAlias.timing.connectEnd && performanceAlias.timing.fetchStart) {
- request += '&pf_net=' + (performanceAlias.timing.connectEnd - performanceAlias.timing.fetchStart);
+
+ if (performanceAlias.timing.connectEnd < performanceAlias.timing.fetchStart) {
+ return;
+ }
+
+ timings += '&pf_net=' + (performanceAlias.timing.connectEnd - performanceAlias.timing.fetchStart);
}
if (performanceAlias && performanceAlias.timing && performanceAlias
&& performanceAlias.timing.responseStart && performanceAlias.timing.requestStart) {
- request += '&pf_srv=' + (performanceAlias.timing.responseStart - performanceAlias.timing.requestStart);
+
+ if (performanceAlias.timing.responseStart < performanceAlias.timing.requestStart) {
+ return;
+ }
+
+ timings += '&pf_srv=' + (performanceAlias.timing.responseStart - performanceAlias.timing.requestStart);
}
if (performanceAlias && performanceAlias.timing && performanceAlias
&& performanceAlias.timing.responseStart && performanceAlias.timing.responseEnd) {
- request += '&pf_tfr=' + (performanceAlias.timing.responseEnd - performanceAlias.timing.responseStart);
+
+ if (performanceAlias.timing.responseEnd < performanceAlias.timing.responseStart) {
+ return;
+ }
+
+ timings += '&pf_tfr=' + (performanceAlias.timing.responseEnd - performanceAlias.timing.responseStart);
}
if (performanceAlias && performanceAlias.timing && performanceAlias
&& performanceAlias.timing.domInteractive && performanceAlias.timing.domLoading) {
- request += '&pf_dm1=' + (performanceAlias.timing.domInteractive - performanceAlias.timing.domLoading);
+
+ if (performanceAlias.timing.domInteractive < performanceAlias.timing.domLoading) {
+ return;
+ }
+
+ timings += '&pf_dm1=' + (performanceAlias.timing.domInteractive - performanceAlias.timing.domLoading);
}
if (performanceAlias && performanceAlias.timing && performanceAlias
&& performanceAlias.timing.domComplete && performanceAlias.timing.domInteractive) {
- request += '&pf_dm2=' + (performanceAlias.timing.domComplete - performanceAlias.timing.domInteractive);
+
+ if (performanceAlias.timing.domComplete < performanceAlias.timing.domInteractive) {
+ return;
+ }
+
+ timings += '&pf_dm2=' + (performanceAlias.timing.domComplete - performanceAlias.timing.domInteractive);
}
if (performanceAlias && performanceAlias.timing && performanceAlias
&& performanceAlias.timing.loadEventEnd && performanceAlias.timing.loadEventStart) {
- request += '&pf_onl=' + (performanceAlias.timing.loadEventEnd - performanceAlias.timing.loadEventStart);
+
+ if (performanceAlias.timing.loadEventEnd < performanceAlias.timing.loadEventStart) {
+ return;
+ }
+
+ timings += '&pf_onl=' + (performanceAlias.timing.loadEventEnd - performanceAlias.timing.loadEventStart);
}
- return request;
+ return request + timings;
}
/**