diff --git a/packages/html-reporter/src/index.tsx b/packages/html-reporter/src/index.tsx index 0c3f0a6dc0..149b3478ef 100644 --- a/packages/html-reporter/src/index.tsx +++ b/packages/html-reporter/src/index.tsx @@ -58,8 +58,20 @@ class ZipReport implements LoadedReport { const zipURI = await new Promise(resolve => { if (window.playwrightReportBase64) return resolve(window.playwrightReportBase64); - window.addEventListener('message', event => event.source === window.opener && resolve(event.data), { once: true }); - window.opener.postMessage('ready', '*'); + if (window.opener) { + window.addEventListener('message', event => { + if (event.source === window.opener) { + localStorage.setItem('playwrightReportBase64', event.data); + resolve(event.data); + } + }, { once: true }); + window.opener.postMessage('ready', '*'); + } else { + const oldReport = localStorage.getItem('playwrightReportBase64'); + if (oldReport) + return resolve(oldReport); + alert('couldnt find report, something with HMR is broken'); + } }); const zipReader = new zipjs.ZipReader(new zipjs.Data64URIReader(zipURI), { useWebWorkers: false });