Fix crash when browser doesn't report page change measurement

pull/21833/head
Luke Barnard 2018-05-03 14:08:10 +01:00
parent 6bf1eb105a
commit 22f2d6f292
2 changed files with 10 additions and 3 deletions

View File

@ -164,9 +164,13 @@ class Analytics {
}
trackPageChange(generationTimeMs) {
if (typeof generationTimeMs !== 'number') {
throw new Error('Analytics.trackPageChange: expected generationTimeMs to be a number');
if (typeof generationTimeMs === 'number') {
this._paq.push(['setGenerationTimeMs', generationTimeMs]);
} else {
console.warn('Analytics.trackPageChange: expected generationTimeMs to be a number');
// But continue anyway because we still want to track the change
}
if (this.disabled) return;
if (this.firstPage) {
// De-duplicate first page
@ -175,7 +179,6 @@ class Analytics {
return;
}
this._paq.push(['setCustomUrl', getRedactedUrl()]);
this._paq.push(['setGenerationTimeMs', generationTimeMs]);
this._paq.push(['trackPageView']);
}

View File

@ -413,6 +413,10 @@ export default React.createClass({
performance.clearMarks('riot_MatrixChat_page_change_start');
performance.clearMarks('riot_MatrixChat_page_change_stop');
const measurement = performance.getEntriesByName('riot_MatrixChat_page_change_delta').pop();
// In practice, sometimes the entries list is empty, so we get no measurement
if (!measurement) return null;
return measurement.duration;
},