Merge pull request #1874 from matrix-org/luke/fix-analytics-crash

Fix crash when browser doesn't report page change measurement
This commit is contained in:
Luke Barnard 2018-05-03 18:46:20 +01:00 committed by GitHub
commit b08abd3d8b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 4 deletions

View file

@ -164,9 +164,6 @@ class Analytics {
}
trackPageChange(generationTimeMs) {
if (typeof generationTimeMs !== 'number') {
throw new Error('Analytics.trackPageChange: expected generationTimeMs to be a number');
}
if (this.disabled) return;
if (this.firstPage) {
// De-duplicate first page
@ -174,8 +171,15 @@ class Analytics {
this.firstPage = false;
return;
}
this._paq.push(['setCustomUrl', getRedactedUrl()]);
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
}
this._paq.push(['setCustomUrl', getRedactedUrl()]);
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;
},