Merge pull request #4110 from overleaf/jpa-omit-skewed-render-latency

[frontend] PdfJsMetrics: omit render time in case we detect hidden page

GitOrigin-RevId: b1ae3b29dbb9764cf67f2f1b1e2f93c83fe67426
This commit is contained in:
Jakob Ackermann 2021-06-01 15:53:14 +02:00 committed by Copybot
parent 5988e03dac
commit e1516aab2c
2 changed files with 16 additions and 1 deletions

View file

@ -19,7 +19,11 @@ export function trackPdfDownload(response, compileTimeClientE2E) {
// The renderer does not yield in case the browser tab is hidden.
// It will yield when the browser tab is visible again.
// This will skew our performance metrics for rendering!
const latencyRender = timePDFRendered - timePDFFetched
// We are omitting the render time in case we detect this state.
let latencyRender
if (timePDFRendered) {
latencyRender = timePDFRendered - timePDFFetched
}
done({ latencyFetch, latencyRender })
}
function updateConsumedBandwidth(bytes) {

View file

@ -363,6 +363,17 @@ export default App.factory(
return
} // return from cancelled page load
const timePDFFetched = performance.now()
const visible = !document.hidden
if (!visible) {
// Flush the fetch time early, omit the render time.
if (typeof this.options.firstRenderDone === 'function') {
this.options.firstRenderDone({ timePDFFetched })
// Do not submit the actual rendering time.
this.options.firstRenderDone = null
}
}
pageState.renderTask = this.doRender(element, pagenum, pageObject)
return pageState.renderTask.promise.then(
() => {