From 17986773f86db0fb8c65388d895510cbaf35710d Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Thu, 4 Feb 2021 06:24:53 -0800 Subject: [PATCH] feat: remove chaining from trace viewer preview (#5265) --- src/cli/traceViewer/snapshotServer.ts | 31 +++++++++++---------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/src/cli/traceViewer/snapshotServer.ts b/src/cli/traceViewer/snapshotServer.ts index 99de2a93f4..a6a5d5dd11 100644 --- a/src/cli/traceViewer/snapshotServer.ts +++ b/src/cli/traceViewer/snapshotServer.ts @@ -89,25 +89,19 @@ export class SnapshotServer { let next = document.createElement('iframe'); document.body.appendChild(next); next.style.visibility = 'hidden'; + const onload = () => { + let temp = current; + current = next; + next = temp; + current.style.visibility = 'visible'; + next.style.visibility = 'hidden'; + }; + current.onload = onload; + next.onload = onload; - let nextUrl; - window.showSnapshot = url => { - if (!nextUrl) { - showPromise = showPromise.then(async () => { - const url = nextUrl; - nextUrl = undefined; - const loaded = new Promise(f => next.onload = f); - next.src = url; - await loaded; - let temp = current; - current = next; - next = temp; - current.style.visibility = 'visible'; - next.style.visibility = 'hidden'; - }); - } - nextUrl = url; - return showPromise; + window.showSnapshot = async url => { + await showPromise; + next.src = url; }; @@ -437,6 +431,7 @@ export class SnapshotServer { response.setHeader('Access-Control-Allow-Origin', '*'); response.removeHeader('Content-Length'); response.setHeader('Content-Length', content.byteLength); + response.setHeader('Cache-Control', 'public, max-age=31536000'); response.end(content); return true; } catch (e) {